google-sheets-formula - 使用范围时无法比较查询公式中的日期列
问题描述
我有一个从多个工作表中获取数据的公式。除了日期,其他东西都可以正常工作。
=QUERY({
iferror(indirect(if(E1,"January!A:I","")),{"","","","","","","","",""});
iferror(indirect(if(F1,"February!A:I","")),{"","","","","","","","",""});
iferror(indirect(if(G1,"March!A:I","")),{"","","","","","","","",""});
iferror(indirect(if(H1,"April!A:I","")),{"","","","","","","","",""});
iferror(indirect(if(I1,"May!A:I","")),{"","","","","","","","",""});
iferror(indirect(if(J1,"June!A:I","")),{"","","","","","","","",""});
iferror(indirect(if(E3,"July!A:I","")),{"","","","","","","","",""});
iferror(indirect(if(F3,"August!A:I","")),{"","","","","","","","",""});
iferror(indirect(if(G3,"September!A:I","")),{"","","","","","","","",""});
iferror(indirect(if(H3,"October!A:I","")),{"","","","","","","","",""});
iferror(indirect(if(I3,"November!A:I","")),{"","","","","","","","",""});
iferror(indirect(if(J1,"December!A:I","")),{"","","","","","","","",""})}, "Select * where Col2 <>'' AND Col1 = date '2020-01-02'" )
一月份的工作表有数据,但我仍然无法显示查询结果。
更新:一些月表可能存在也可能不存在,即使在 E1 Fq G1 等中选择了 true
2 月表丢失,如果在 F1 中选择了 true,则应该不会出错,所以我使用 iferror 的间接公式
解决方案
其实我不知道为什么有时它不能比较日期。此外,我不明白为什么我不能在查询中嵌套 iferror 并使用大括号处理范围。
最后,我决定制作一个小表格,在其中检查工作表是否存在(独立于带有复选框的表格)。
如果两个条件都满足,Query 使用范围。如果不是,它使用一行空白单元格。
我的解决方案在这里:
https://docs.google.com/spreadsheets/d/1rBOpxZx3IztLKkWPKyUDf-GMW1HqcENHDRDKQfm7_oQ/edit?usp=sharing
我使用的公式如下所示:
=QUERY({
if(E1+M2=2,{January!A1:I},{"","","","","","","","",""});
if(F1+M3=2,{Febryary!A1:I},{"","","","","","","","",""});
if(G1+M4=2,{March!A1:I},{"","","","","","","","",""});
if(H1+M5=2,{April!A1:I},{"","","","","","","","",""});
if(I1+M6=2,{May!A1:I},{"","","","","","","","",""});
if(J1+M7=2,{June!A1:I},{"","","","","","","","",""});
if(E3+M8=2,{July!A1:I},{"","","","","","","","",""});
if(F3+M9=2,{August!A1:I},{"","","","","","","","",""});
if(G3+M10=2,{September!A1:I},{"","","","","","","","",""});
if(H3+M11=2,{October!A1:I},{"","","","","","","","",""});
if(I3+M12=2,{November!A1:I},{"","","","","","","","",""});
if(J3+M13=2,{December!A1:I},{"","","","","","","","",""})}, "Select * where Col1 < date '2020-12-02' and Col1 is not null" )
列 M 包含测试是否存在工作表。
推荐阅读
- r - 更改两轴图 Y 的比例 - ggplot2
- excel - Excel VBA 保存对话框运行时错误 1001
- gradle - 获取库中的根项目名称
- javascript - 反应的codepen错误
- css - 从 SVG 文件中删除不必要的状态行
- apache-kafka - 我用的是卡夫卡吗?
- angular - 寻找 Angular e2e tslint 规则集
- java - 无法为从 logstash JDBC 输入插件创建的索引创建弹性搜索的映射
- excel - 如何将单元格的地址提供给 excel vba 中的 vlookup 函数?
- django - Django-filters:单个查询字符串中的多个 ID