You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Query函数获取各产品最新成本数据列表?

Google Sheets:提取每个产品的最新成本记录

问题场景

我有一份包含产品、日期和历史成本的列表,需要生成新列表,提取每个产品的最新成本记录。

原始数据

产品日期成本
A07/02/202310.50
A08/05/202311.20
B09/02/202330.10
B10/02/202330.30

期望输出

产品日期成本
A08/05/202311.20
B10/02/202330.30

尝试过的公式及问题

我使用了以下QUERY公式,但仅能获取全局最新日期对应的产品记录,无法覆盖所有产品:

=query(H4:J8;"SELECT H,I,J WHERE I = date '"&TEXTO(MAX(I4:I);"YYYY-MM-DD")"&'")

得到的结果仅包含B产品的最新记录,缺少A产品的条目。

解决方案

方法1:QUERY子查询匹配每组最大日期

通过子查询先获取每个产品的最大日期,再关联原始数据提取对应成本:

=QUERY(H4:J8; "SELECT H, MAX(I), J WHERE H IS NOT NULL GROUP BY H, J HAVING MAX(I) = (SELECT MAX(I) FROM H4:J8 WHERE H = Col1)")

方法2:FILTER+MAXIFS组合筛选

利用MAXIFS获取每个产品的最新日期,再用FILTER匹配对应行:

=FILTER(H4:J8; I4:I = MAXIFS(I4:I; H4:H; H4:H))

该公式会自动为每个产品筛选出对应最新日期的记录。

方法3:SORTN分组去重(保留每组最新记录)

先按日期降序排序,再用SORTN按产品分组,保留每组第一条记录(即最新日期的条目):

=SORTN(SORT(H4:J8; 2; FALSE); 9^9; 2; 1; TRUE)
  • SORT(H4:J8; 2; FALSE):将数据按日期列(第2列)降序排列,让每个产品的最新记录排在组内首位
  • SORTN(..., 9^9, 2, 1, TRUE):按产品列(第1列)分组,每组保留1条记录

内容的提问来源于stack exchange,提问作者Matias Marcet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:51:02