Excel 组内多列明细拼成一行

某表格有 1 个分组列和 2 个明细列。


A

B

C

1

Object

Name

Info

2

12A

Gggtz

44456

3

12A

Gggtr

99987

4

12A

Kkkio

66543

5

12A

Bbvgf

66643

6

12A

Vvvhg

888765

7

12A

Fffgt

87

8

6F

Gggtf

232325

9

6F

Xxxde

443216

10

P23

Cccvb

5543287

11

P23

Vvvbj

5656564

12

P23

Sswec

8989764

13

P23

Llloiu

343432

现在要把组内的多列明细拼成一行,并自动生成与列数相符的列头


E

F

G

H

I

G

K

L

M

N

O

P

Q

1

Object

Name1

Info1

Name2

Info2

Name3

Info3

Name4

Info4

Name5

Info5

Name6

Info6

2

12A

Gggtz

44456

Gggtr

99987

Kkkio

66543

Bbvgf

66643

Vvvhg

888765

Fffgt

87

3

6F

Gggtf

232325

Xxxde

443216









4

P23

Cccvb

5543287

Vvvbj

5656564

Sswec

8989764

Llloiu

343432





使用 SPL XLL,输入公式:

=spl("=d=E(?).group@o(Object).(Object|(~.conj([Name,Info]))), [$[Object]|(d.max(~.len())\2).conj([$[Name] / #,$[Info] / #])] | d",A1:C13)

Picture2png

函数 E 读取表格数据。group@o 分组前不排序。$[] 表示字符串。~ 是当前成员,# 是当前成员的序号

https://www.reddit.com/r/excel/comments/1d5ntg2/how_to_copy_data_from_lines_to_rows_but_keep_it/