Excel 根据指定列将每行复制出多行

例题描述

在 Excel 中有一张产品数量表,第一列为产品序号,第二列为产品剩余数量。初始数据如下:

Item ID

Qty Remaining

Invoice No

00001

2

40404

00002

9

50505

00003

0

60606

现在需要根据产品的剩余数量,也就是 Qty Remaining,将 Item ID 的值重复 n 遍,除第一行为原始行,其他补齐的行只保留 Item ID 的值,且 00003 的数量为 0,则新表中不再有该记录,期望结果如下:

Item ID

Qty Remaining

Invoice No

00001

2

40404

00001



00002

9

50505

00002



00002



00002



00002



00002



00002



00002



00002



实现步骤

使用插件 SPL XLL

在空白单元格写入公式:

=spl("=E(?).news(#2;'Item ID',if(#==1,'Qty Remaining',null):'Qty Remaining',if(#==1,'Invoice No',null):'Invoice No')",A1:C4)

如图:

..

返回结果:

..

简要说明:

根据第二列的数量,将每条记录重复 n 次,产生新的序表,其中二三列的值用 if 表达式,第一行时取原值,其他补齐行则用 null 值。

问答搜集

https://stackoverflow.com/questions/63711340/excel-return-cells-value-based-upon-another-cell