Google Sheets Query函数动态引用工作表及日期筛选问题
解决Google Sheets Query多表汇总时的日期筛选问题
问题根源
你当前的公式中,Col1是用字符串形式生成的日期(比如"2024/07/01"),但Query函数的date关键字要求匹配日期对象,字符串和日期对象类型不匹配,导致筛选逻辑失效。
修改后的公式
=QUERY({ ARRAYFORMULA(IF(LEN(July!A2:A), DATE(2024,7,1),)), July!A2:I; ARRAYFORMULA(IF(LEN(Aug!A2:A), DATE(2024,8,20),)), Aug!A2:I; ARRAYFORMULA(IF(LEN(Sept!A2:A), DATE(2024,9,1),)), Sept!A2:I; ARRAYFORMULA(IF(LEN(Oct!A2:A), DATE(2024,10,1),)), Oct!A2:I; ARRAYFORMULA(IF(LEN(Nov!A2:A), DATE(2024,11,1),)), Nov!A2:I; ARRAYFORMULA(IF(LEN(Dec!A2:A), DATE(2024,12,1),)), Dec!A2:I }, "Select * where (Col7 is not null or Col8 is not null or Col9 is not null) or (Col1 = date '"&TEXT(TODAY(),"yyyy-mm-dd")&"') order by Col2 ASC, Col1 DESC")
关键改动说明
- 将每个工作表对应的字符串日期(如
"2024/07/01")替换为DATE(年,月,日)函数,直接生成日期对象,确保Col1的类型和Query中date关键字要求的类型一致。 - 其余筛选、排序逻辑保持不变,现在
Col1 = date 'xxxx-xx-xx'的条件可以正确匹配对应日期的行。
内容的提问来源于stack exchange,提问作者Ryan Beymer
相关产品推荐
相关产品推荐

