* 挑出重复的行
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)
函数 group 对表格进行分组,@u 表示保持原有顺序。~ 表示当前成员,to(2,) 表示从第 2 到最后一个子成员。
来源:https://stackoverflow.com/questions/78105588/vba-collect-consecutive-similar-cells-in-the-row
英文版 https://c.scudata.com/article/1724988183910