google-sheets-formula - 在 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 表格,“查询数据”选项卡,单元格 D2,您可以替换13742433282
为"&MODE('Raw Data'!B:B)&"
.
另外,我不确定您的OR
语句是否需要括号,因为查询中有几个OR
和AND
。我认为你可能会更好地简化它:
=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
。
推荐阅读
- linux - How to Do a For Loop Instead of a While Loop in Shell Scripting
- c - 将 execvp 与输入文件一起使用到程序并将输出重定向到新文件
- .net-core - 添加 nuget 包时出现 Asp.Net Core 错误
- java - 如何在来自servlet的json响应中发送带有一些数据的图像
- laravel - “页面已过期,请刷新并重试。”
- r - Remove rows with specific NA column
- c++ - 在 C++ 中将用分号分隔的文件中的整数分隔为不同的数字
- php - PHPmailer附件图像文件发送而不保存文件
- nginx - NGINX 将非安全子域重定向到主域
- c++ - 为什么不能从`std::filesystem::path`迭代器构造`std::filesystem::path`?