首页 > 解决方案 > 在 Google 表格查询中使用“模式”功能

问题描述

我正在使用 Google 表格中的查询功能来提取数据。我需要添加条件以仅根据特定列的模式提取数据。模式随数据而变化,因此使用模式功能使其动态化将使生活更轻松。当我在 Mode 值中硬编码时,这有效。我尝试了几种不同的变体,但是当嵌套在我的查询公式中时,无法让 Mode 函数工作。

这是我目前的公式。

=QUERY('2 - 添加原始 AZ 付款报告'!A8:AA4005,"select C WHERE ((C = 'Refund') AND AA <> 0 AND B = 13742433281) OR C = 'Order' OR C = 'Adjustment ' OR C = '退款退款'",0)

13742433281 是硬编码模式。理想情况下,如果它可以与 Google 表格查询一起使用,我会用 Mode 函数替换该值。

这是一个指向 Google 表格的链接,其中包含我现在使用的查询以及带有硬编码模式的所需查询。本质上,我想用模式公式替换硬编码的模式值。

https://docs.google.com/spreadsheets/d/126IfGStccfzKLGW7dH-7TpbMbPSZXW3Of69RZ61jb8Q

任何帮助将不胜感激。

标签: google-sheets-formulagoogle-sheets-api

解决方案


查看您的 Google 表格,“查询数据”选项卡,单元格 D2,您可以替换13742433282"&MODE('Raw Data'!B:B)&".

另外,我不确定您的OR语句是否需要括号,因为查询中有几个ORAND。我认为你可能会更好地简化它:

=QUERY('Raw Data'!A2:D400,"select D WHERE B = "&MODE('Raw Data'!B:B)&" AND (C like 'Refund' OR C like 'Order' OR C like 'Adjustment' OR C like 'Chargeback Refund')",0)

这基本上得到了 B 始终是模式的行'Raw Data'!B:B

C 的值是以下任何一种:

退款,订单,调整,退款退款

如果您希望查询仅查找 C 中有值的行,则可以改用它:

=QUERY('Raw Data'!A2:D400,"select D WHERE B = "&MODE('Raw Data'!B:B)&" AND C IS NOT NULL ",0)

此外,您可能不需要将范围限制为D400. 可能是'Raw Data'!A2:D


推荐阅读