Google Sheets技术问询:如何依据单行数值从其他工作表生成多行数据
Google Sheets 根据PCS数值生成对应重复行的方案
要实现根据每行的PCS数值生成对应数量的重复行,同时过滤掉PCS为0的条目,可以使用QUERY结合FLATTEN、ARRAYFORMULA等函数组合完成,公式如下(假设原始数据在名为Sheet1的标签页,表头在第1行,数据从第2行到第5行):
=QUERY( ARRAYFORMULA( SPLIT( FLATTEN( IF(Sheet1!B2:B5>0, REPT(Sheet1!A2:A5&"|"&Sheet1!B2:B5&"|"&Sheet1!C2:C5&"♦", Sheet1!B2:B5), "") ), "♦" ) ), "SELECT Col1, Col2, Col3 WHERE Col1 IS NOT NULL", 0 )
公式说明:
- 过滤无效行:
IF(Sheet1!B2:B5>0, ...)跳过所有PCS为0的行,避免生成无效重复内容 - 生成重复内容:
REPT(..., Sheet1!B2:B5)将每行的Code、PCS、Data用|拼接后,重复对应PCS次数,并用♦作为每行的分隔符 - 展开内容:
FLATTEN把所有重复的拼接内容转换成单列数据 - 拆分列:
SPLIT按♦拆分每个重复条目,还原成三列数据 - 筛选整理:
QUERY最终过滤掉空行,提取有效三列数据,生成目标表格
如果你的原始数据范围不同,只需调整公式中Sheet1!B2:B5、Sheet1!A2:A5等引用范围即可。
内容的提问来源于stack exchange,提问作者Marek Frick
相关产品推荐
相关产品推荐

