Excel 每 N 列内容填成一行

Excel表格从第 2 列起,每 N 列为一组,以 N=2 为例:


A

B

C

D

E

F

G

1

ID

Type 1

Count 1

Type 2

Count 2

Type 3

Count 3

2

1

a

640

d

290

a


3

2

d

12000

a

1900

f

6000

4

3

f

48000

f

3600

e

1600

5

4

c

46000

e

3100

b

1200

6

5

e

47000

c

3400

d

1400

7

6

b

64000

b

3600

c

1200

现在要进列转行:每行的每 2 列内容填成一行,即扩展成 3 行;第 1 列 ID 保留;新增第 2 列 No 是扩展出来的行号:


A

B

C

D

1

ID

No

Type

Count

2

1

1

a

640

3

1

2

d

290

4

1

3

a


5

2

1

d

12000

6

2

2

a

1900

7

2

3

f

6000

8

3

1

f

48000

9

3

2

f

3600

10

3

3

e

1600

使用 SPL XLL,输入公式:

=spl("=?.conj(ID=~(1),~.m(2:).group((#-1)\2).(ID|#|~))",A2:G7)

1111png

~.m(2:)从当前行的第2列开始取数据直到结尾,group函数将这些数据每2列分一组。

改成每 5 列一组,只要分组时把2改成 5


https://stackoverflow.com/questions/78449082/using-power-query-to-unpivot-table