Excel 将每组的前 3 名拼成串

分组明细表如下


A

B

C

1

Client

Location

Sales

2

ABC

New York

5,000

3


Florida

4,000

4


Texas

3,000

5


California

2,000

6


Georgia

1,000

7

XYZ

Tennessee

10,000

8


New Jersey

8,000

9


Washington

6,000

10


New York

4,000

11

DEF

Ohio

7,500

12


Colorado

5,000

13

HIJ

Virginia

8,000

要求将每组的前 3 名明细用逗号拼成串,与分组一同展示


E

F

1

Client

Top 3 Locaction

2

ABC

New York,Florida,Texas

3

XYZ

Tennessee,New Jersey,Washington

4

DEF

Ohio,Colorado

5

HIJ

Virginia

使用 SPL XLL,输入公式:

=spl("=?.group@i(~(1)).([~(1)(1),~.top(-3;~(3)).(~(2)).concat@c()])",A2:C13)

Picture1png

group@i 可按条件分组,~(1) 表示当前行的第 1 个成员,top 函数求前 N 个成员,concat@c 用逗号合并成员。

https://www.reddit.com/r/excel/comments/1d82y1w/is_it_possible_to_return_the_top_n_of_a_row_field/