在Google Sheets中使用QUERY flatten函数转换数据格式遇问题求助
解决方案
可以用Google Sheets的ARRAYFORMULA+FLATTEN+QUERY组合公式实现格式转换,直接在目标表格的A2单元格输入以下公式(根据你的原始数据结构调整列范围):
=ARRAYFORMULA( QUERY( { FLATTEN(FILTER(原始数据!A2:A, 原始数据!C2:C<>"")), FLATTEN(FILTER(原始数据!B2:B, 原始数据!C2:C<>"")), FLATTEN(原始数据!C2:E), FLATTEN(FILTER(原始数据!F2:F, 原始数据!C2:C<>"")), FLATTEN(FILTER(原始数据!G2:G, 原始数据!C2:C<>"")) }, "select Col1,Col2,Col3,Col4,Col5 where Col3 is not null", 0 ) )
公式说明
FLATTEN(原始数据!C2:E):把原始数据中C到E列的多列产品数据拆成单列,实现一行变多行FLATTEN(FILTER(...)):重复提取每行对应的日期、单号、金额、备注,和拆分后的产品一一对应QUERY:过滤掉产品列为空的无效行,只保留有效数据
如果你的原始数据列范围有变化,比如产品列是C到D,就把原始数据!C2:E改成原始数据!C2:D即可。
内容的提问来源于stack exchange,提问作者BC_
相关产品推荐
相关产品推荐

