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

Excel中如何用MAX(INDEX获取匹配查询条件的右侧单元格数据

Excel:根据查询条件提取最大日期对应的成本数据

我需要在Excel中根据Sheet2的search query,查找Sheet1中对应查询条件的最大日期,并获取该日期所在行右侧相邻的成本数据。尝试使用公式 =OFFSET(MAX(INDEX((D16='Sheet1'!B$2:B$7500)*'Sheet1'!C$2:C$7500,)),0,1) 时出现引用错误,无法提取目标数据。


样本数据

Sheet1样本数据

search querydatecost
10033628811 July 2023-£200.00
10002514311 July 2023-£50.00
10030136911 July 2023-£5,771.40
10028064511 July 2023-£500.00
10013822411 July 2023-£50.00
10033628830 June 2023-£3,000.00
10033628826 June 2023-£999.51
10028064520 June 2023-£167.36
10028064520 June 2023-£332.64
10002514314 June 2023-£50.00
10013822412 June 2023-£50.00
10033628807 June 2023-£200.00
10033628806 June 2023-£700.00
10033628802 June 2023-£1,500.00
10030136902 June 2023-£3,000.00
10013822412 May 2023-£50.00
10033628809 May 2023-£200.00
10002514308 May 2023-£50.00
10033628804 May 2023-£700.00
10033628813 April 2023-£200.00
10002514312 April 2023-£50.00
10033628804 April 2023-£700.00
10033628813 March 2023-£804.44
10002514311 March 2023-£50.00
10033628807 March 2023-£700.00
10033628806 March 2023-£200.00
10002514310 February 2023-£50.00
10033628806 February 2023-£200.00
10033628806 February 2023-£982.00
10033628806 February 2023-£700.00
10002514317 January 2023-£50.00
10033628809 January 2023-£200.00
10002514306 January 2023-£50.00
10033628805 January 2023-£982.00

Sheet2样本数据(原公式已移除等号)

search queryDate公式
100025143MAX(INDEX((A2=Sheet1!A$1:A$7335)*Sheet1!B$1:B$7335,))
100138224MAX(INDEX((A3=Sheet1!A$1:A$7335)*Sheet1!B$1:B$7335,))
100280645MAX(INDEX((A4=Sheet1!A$1:A$7335)*Sheet1!B$1:B$7335,))
100301369MAX(INDEX((A5=Sheet1!A$1:A$7335)*Sheet1!B$1:B$7335,))
100336288MAX(INDEX((A6=Sheet1!A$1:A$7335)*Sheet1!B$1:B$7335,))
100283819MAX(INDEX((A7=Sheet1!A$1:A$7335)*Sheet1!B$1:B$7335,))
100281696MAX(INDEX((A8=Sheet1!A$1:A$7335)*Sheet1!B$1:B$7335,))
100149591MAX(INDEX((A9=Sheet1!A$1:A$7335)*Sheet1!B$1:B$7335,))
100099054MAX(INDEX((A10=Sheet1!A$1:A$7335)*Sheet1!B$1:B$7335,))

问题原因

你之前用的公式错误在于:MAX(INDEX(...))返回的是日期的数值结果,不是单元格的引用位置,因此OFFSET无法基于这个数值进行偏移操作,导致引用错误。


解决方案

方法1:XLOOKUP(适用于Excel 365/2021及以上版本)

在Sheet2的成本列(比如C2单元格)输入以下公式,下拉填充即可:

=XLOOKUP(MAX(INDEX((A2=Sheet1!A$2:A$7500)*Sheet1!B$2:B$7500,)),Sheet1!B$2:B$7500,Sheet1!C$2:C$7500,"无数据",0,1)
  • 如果同一查询条件下有多个相同的最大日期,公式会返回最后一个匹配行的成本;若要返回第一个匹配行,把公式最后一个参数1改成-1。
  • "无数据"是无匹配结果时的提示文本,可根据需求修改。

方法2:INDEX+MATCH组合(兼容所有Excel版本)

如果使用旧版Excel,可使用以下公式:

=IFERROR(INDEX(Sheet1!C$2:C$7500,MATCH(MAX(INDEX((A2=Sheet1!A$2:A$7500)*Sheet1!B$2:B$7500,)),Sheet1!B$2:B$7500,0)),"无数据")
  • 这个公式会返回第一个匹配最大日期行的成本。
  • IFERROR用来处理无匹配结果的情况,避免显示错误值。

内容的提问来源于stack exchange,提问作者Kyle Johal-Hansen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:34:59