根据总金额和日期范围筛选前 30 名供应商的公式

问题描述 投票:0回答:1

我有这个公式,它可以在没有日期范围条件的情况下工作,但如果添加日期条件,则仅显示标题标签。

=QUERY({ARRAYFORMULA(UPPER('Line Items (V3)'!$B$1:$B$17068)), 
   'Line Items (V3)'!$E$1:$E$17068, 
   'Line Items (V3)'!$P$1:$P$17068}, 
  "SELECT Col1, SUM(Col3) 
   WHERE Col2 >= " & DATE(YEAR(TODAY()) - 5, 1, 1) & "
   GROUP BY Col1 
   ORDER BY SUM(Col3) DESC 
   LIMIT " & $B$3 & " 
   LABEL Col1 'VENDOR NAME', SUM(Col3) 'TOTAL AMOUNT' 
   FORMAT SUM(Col3) '#,##0.00'", 
  1)

尝试用此修改日期条件,但结果仍然相同:

DATE(" & YEAR(TODAY()) - 5 & ", 1, 1)
google-sheets-formula
1个回答
0
投票

查询语法

由于没有提供最小的可重复样本,我创建了自己的数据集来测试 Google Sheet 函数,这也给了我同样的错误。

Same issue error.

我想出了一个使日期条件起作用的解决方案。在 “QUERY” 公式中使用日期作为条件时,最佳做法是首先使用 “TEXT” 将其格式化为字符串 “yyyy-MM-dd”,以便能够在查询中正确解析日期。

您可以查看以下更新后的公式:

=QUERY({ARRAYFORMULA(UPPER('Line Items (V3)'!$B$1:$B$17068)), 'Line Items (V3)'!$E$1:$E$17068, 'Line Items (V3)'!$P$1:$P$17068}, 
"SELECT Col1, SUM(Col3) 
 WHERE Col2 >= date '" & TEXT(DATE(YEAR(TODAY()) - 5, 1, 1), "yyyy-MM-dd") & "' 
 GROUP BY Col1 
 ORDER BY SUM(Col3) DESC 
 LIMIT " & $B$3 & " 
 LABEL Col1 'VENDOR NAME', SUM(Col3) 'TOTAL AMOUNT' 
 FORMAT SUM(Col3) '#,##0.00'", 1)

我添加并修改了以下公式:

WHERE Col2 >= date '" & TEXT(DATE(YEAR(TODAY()) - 5, 1, 1), "yyyy-MM-dd")

我的样本数据由具有不同“日期”和金额的“供应商 A-Z”组成。

enter image description here

结果如下: enter image description here

假设“LIMIT”&$B$3“”表示应将数量限制为“前30个”。出于测试目的,我使用数字 20,因为我创建的数据有限。

请访问这些公共文档以供参考:

  1. 查询功能
  2. 文本功能
© www.soinside.com 2019 - 2024. All rights reserved.