【发布时间】:2016-08-15 19:52:45
【问题描述】:
我已经搜索过了,但似乎找不到答案:
我使用电子表格中的查询功能从工作伙伴那里收集 cmets。有 17 位评论者,我从本周和未来十周开始查询。但是,我只想要 cmets 而不是最终结果中的空字段。我快到了,但是使用我现在使用的公式,我必须手动更新查询最后一部分中的列数,因为列数会根据 cmets 的数量而变化。这是我的公式:
=transpose(query(transpose(query(QUERY(
IMPORTRANGE("1oQVZDEKLqx6ruz2yzIzUgppkWvBEOB_Eo-a4NW1WTSQ";"Comments!A1:U");
"select Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12, Col13, Col14,
Col15, Col16, Col17, Col18, Col19 where todate(Col1) > date '"&text(today()-7;
"yyyy-mm-dd")&"' limit 10");"select * where Col2<>'' or Col3<>'' or Col4<>'' or
Col5<>'' or Col6<>'' or Col7<>'' or Col8<>'' or Col9<>'' or Col10<>'' or Col11<>'' or
Col12<>'' or Col13<>'' or Col14<>'' or Col15<>'' or Col16<>'' or Col17<>'' or Col18<>''"));
"select * where Col2<>'' or Col3<>'' or Col4<>''"))
无论两个“最内层”查询返回多少列,有什么方法可以让这个公式起作用?
这是带有queried comments 的电子表格。它从this sheet 收集 cmets(在现实生活中,这是使用 importrange-formula 从 19 张表中收集的)。
我希望我的问题可以理解,最重要的是,我的问题可以解决!
【问题讨论】:
-
您会按行还是按列组合多个导入范围调用?如果按行计算,列数是否始终相同?在您当前的查询中,您只检查第 18 列是否为空,而不是第 19 列,并且您没有拉第 20 和 21 列,这是故意的吗?
-
对不起,这是一个错误,我现在已经更正了。在此示例中,有 17 位评论者加上日期(A 列)和周数(B 列)。
-
还有评论人数,那么列数会变吗?所以你需要动态选择和过滤吗?其他问题呢
-
如果我理解正确:这是我想要做的(包含我查询的 cmets 的电子表格中的列数是静态的):从本周的 17 位评论者中收集 cmets十周后,但只有带有 cmets 的列(查询 NO 2)。然后转置后再次查询,去掉不包含 cmets 的周数。
-
所以最后一个在没有 cmets 的情况下摆脱几周的查询是困扰我的一个:我不知道我有多少列。
标签: google-sheets google-query-language