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

基于Supplier ID和日期批量提取Excel燃气价格的技术问询

解决燃气价格数据多条件提取问题

核心问题拆解

你遇到的问题本质是多条件匹配(Supplier ID + Gas type) + 动态列匹配(日期标题/特殊列),之前只用Supplier ID匹配会返回第一行数据,是因为没有结合Gas type生成唯一匹配键。下面分Excel版本给出具体解决方案:


方案1:Excel 365/2021(支持动态数组,推荐)

假设:

  • 输入的Supplier ID存于$P$2,目标日期存于$Q$2
  • 数据区域为$B$2:$M$1000(B=Supplier ID,C=Gas type,D1:M1=列标题,含日期和Ramp Price)

1. 提取匹配的所有Gas type

在P4单元格输入公式,自动生成所有符合条件的燃气类型列表:

=FILTER($C$2:$C$1000,$B$2:$B$1000=$P$2,"未找到匹配供应商")

2. 提取Ramp Price(同步最新日期价格)

Ramp Price需要匹配最新日期的价格,在Q4输入:

=INDEX($D$2:$M$1000,MATCH($P$2&P4,$B$2:$B$1000&$C$2:$C$1000,0),MATCH(XLOOKUP(TRUE,$D$1:$M$1<>"",$D$1:$M$1,,0,-1),$D$1:$M$1,0))
  • XLOOKUP(...):定位最后一个非空的日期列(即最新日期)
  • $P$2&P4:用Supplier ID+Gas type生成唯一匹配键,避免只取第一行数据

3. 提取目标日期对应价格

在R4输入,提取指定日期的价格(无数据时返回提示):

=IFERROR(INDEX($D$2:$M$1000,MATCH($P$2&P4,$B$2:$B$1000&$C$2:$C$1000,0),MATCH($Q$2,$D$1:$M$1,0)),"无对应价格")

4. 扩展提取J-M列其他价格

重复步骤3,替换MATCH($Q$2,...)为对应列的匹配条件即可。


方案2:旧版Excel(不支持动态数组)

方法:添加辅助列+数组公式

  1. 添加唯一键辅助列:在A列输入=B2&C2,下拉填充,生成Supplier ID+Gas type的唯一标识。
  2. 提取Gas type列表:在P4输入数组公式(输入后按Ctrl+Shift+Enter),下拉到出现#NUM!停止:
=INDEX($C$2:$C$1000,SMALL(IF($B$2:$B$1000=$P$2,ROW($B$2:$B$1000)-ROW($B$2)+1),ROW(A1)))
  1. 提取Ramp Price:输入数组公式(按Ctrl+Shift+Enter):
=INDEX($D$2:$M$1000,MATCH($P$2&P4,$A$2:$A$1000,0),MATCH(MAX(IF($D$1:$M$1<>"",VALUE($D$1:$M$1),0)),$D$1:$M$1,0))
  1. 提取目标日期价格:输入数组公式(按Ctrl+Shift+Enter):
=IFERROR(INDEX($D$2:$M$1000,MATCH($P$2&P4,$A$2:$A$1000,0),MATCH($Q$2,$D$1:$M$1,0)),"无对应价格")

注意事项

  • 确保Supplier ID、日期的格式与数据区域完全一致(比如数值/文本统一,日期格式匹配)
  • 如果Ramp Price列本身已预填最新日期价格,直接提取J列即可,无需动态匹配最新日期

内容的提问来源于stack exchange,提问作者Noah Khounsombath

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 11:54:54