我正在处理某个文档,该文档从Non Google表单获取数据,输出为36列,但始终会填充8个最大9列,中间有空列,我们的表单无法更改数据的显示方式输出。空列在这里,因为客户填写了特定类型的订单,因此数据被放入特定列中。
我需要查询从主表中提取数据,并仅输出特定的5个特定列(这些列将始终位于同一位置),以及2个可以在两者之间的任何位置的列。
写下每一列都不是完美的,因为我需要一次又一行地逐行提取数据(我将在最终查询输出之间添加数据),并且这样会极大地减慢文件速度,增加数百个输入每个星期。
我没有找到将过滤器和查询组合在一起以完成此工作的工作方法(删除空列[<>''且不为null]。
有人可以帮我吗?
提供文件链接:https://docs.google.com/spreadsheets/d/1SDR939yUSq9trLcxBid9AQeZUn-lNNiRr7O7pDiu888/edit?usp=sharing
答案 0 :(得分:0)
您的答案确实在标题中。您可以为每一行使用=filter([Range], [Range]<>"")
,以在所需的输出中达到此目的。过滤器功能非常适合此应用程序。
更新:
查看工作表以更好地了解问题。您需要一些here所示的通配符解决方法,作为识别日期和可配置单元格的第二个条件:=filter([Range], [Range]<>"", search("Date", [Top row]))
答案 1 :(得分:0)
在工作表“所需输出”的单元格M1中,尝试输入这个小怪兽
=Arrayformula(query({'Raw data'!A:Z\
{"Configurable list"; 'Raw data'!D2:D&'Raw data'!F2:F&'Raw data'!H2:H&'Raw data'!J2:J&'Raw data'!L2:L&'Raw data'!P2:P&'Raw data'!R2:R&'Raw data'!T2:T&'Raw data'!V2:V}\
{"Date"; ('Raw data'!E2:E&'Raw data'!G2:G&'Raw data'!I2:I&'Raw data'!M2:M&'Raw data'!O2:O&'Raw data'!Q2:Q&'Raw data'!S2:S&'Raw data'!U2:U&'Raw data'!W2:W)+0}};
"Select Col1, Col2, Col3, Col26, Col28, Col24, Col27 Where Col1 is not null format (Col28) 'dd.mm.yyyy'"))
看看这是否适合您?