* 挑出重复的行

Excel表格有4列。第2-4 列作为一个整体,存在重复的情况。


A B C D
1 # Product Non Conf Date
2 1 Apple Worms 4-Mar-24
3 3 Apple Worms 4-Mar-24
4 2 Pear Worms 4-Mar-24
5 7 Pear Worms 5-Mar-24
6 11 Pear Worms 6-Mar-24
7 10 Orange Worms 6-Mar-24
8 12 Orange Worms 6-Mar-24
9 9 Apple Rotten 6-Mar-24
10 13 Apple Rotten 7-Mar-24
11 4 Pear Rotten 4-Mar-24
12 5 Orange Rotten 5-Mar-24
13 6 Orange Rotten 5-Mar-24
14 8 Orange Rotten 6-Mar-24
15 14 Orange Rotten 7-Mar-24

请在保持原有顺序的情况下,挑出重复的行,形成新表格。


F G H I
1 # Product Non Conf Date
2 1 Apple Worms 4-Mar-24
3 3 Apple Worms 4-Mar-24
4 10 Orange Worms 6-Mar-24
5 12 Orange Worms 6-Mar-24
6 5 Orange Rotten 5-Mar-24
7 6 Orange Rotten 5-Mar-24

使用 SPL XLL,输入公式:

=spl("=?.group@u(~.to(2,)).select(~.len()>1).conj()",A2:D15)

Picture1png

函数 group 对表格进行分组,@u 表示保持原有顺序。~ 表示当前成员,to(2,) 表示从第 2 到最后一个子成员。

来源:https://stackoverflow.com/questions/78105588/vba-collect-consecutive-similar-cells-in-the-row