我遇到了这个问题,需要通过 weeknum() 和 year() 进行过滤以及通过 contains() 进行查询。结合查询和过滤功能来满足类似但更动态的日期和文本匹配需求会很有帮助。例如,如果 OP 需要按周显示此数据,则在Google Query Language中不可用。
filter 函数没有 contains 函数,因此您仅限于精确匹配文本或使用 Reg-Ex。Query Lanuague 没有 Weeknum 功能。
结合过滤器和查询在与此问题类似但具有动态时间线(没有硬设置的月份或日期,例如滚动时间线)和匹配文本不准确的情况下(当您需要使用查询中的包含函数时)可能很有用语言)。这是在 Google 表格中组合过滤器和查询的示例。
=(sum(Filter(QUERY(FB!$A:$Z, "select Q where B contains 'Apple'"), Weeknum (QUERY(FB!$A:$Z, "select E where B contains 'Apple'")) = Weeknum($A8))))
在此示例中,我查询 Facebook 广告数据导出以查找标题中包含“Apple”一词的任何帖子,并且 Weeknum() 与我的工作表上正在进行的几周相匹配,以便将来自多个来源的每周数据提取到一个表中以进行构建报告,随着时间线的运行,需要最少的更新。
它选择 Q(spend),其中 B(title) 包含 Apple,Weeknum(E) 匹配工作表当前行 (A8) 上的周数。我多次发现这很有用。在此处查询 + 过滤器示例表。
如果 OP 想要随着月份的推移动态提取此信息,如果 A 列包含月份,则公式可以被拉出,并自动从匹配月份过滤的查询数据中提取数据。
=(sum(Filter(QUERY( 'Task List'!A:Z , "select A, B, E, F, J where C contains 'Correspondence'" ), Month(QUERY( 'Task List'!A4:F , "select J where C contains 'Correspondence'" )) = Month('$A2'))))