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

如何修正VLOOKUP函数异常,实现同日期采购产品及数量提取?

解决Excel跨表按日期提取产品及数量的问题

原公式的核心问题

你用的VLOOKUP公式只能返回第一个匹配日期的产品,无法提取同一日期下的所有产品和对应数量,这是得不到预期结果的关键原因。


方法1:动态数组公式(Excel 365/2021及以上版本)

这种方法会自动溢出所有匹配结果,无需手动下拉填充:

  1. 在「Event Data」的A17单元格输入公式(提取产品名称):
    =FILTER(transaction!D$2:D$2215, transaction!A$2:A$2215='Event Data'!B2)
    
    注:假设transaction表的A列是日期,D列是product_name(对应你原公式的第4列)
  2. 在「Event Data」的B17单元格输入公式(提取对应数量):
    =FILTER(transaction!E$2:E$2215, transaction!A$2:A$2215='Event Data'!B2)
    
    注:假设transaction表的E列是数量列,可根据实际列位置调整

方法2:传统数组公式(旧版Excel)

如果你的Excel不支持动态数组,用以下方法:

  1. 在「Event Data」的A17单元格输入数组公式,输入完成后按Ctrl+Shift+Enter确认:
    =INDEX(transaction!D$2:D$2215, SMALL(IF(transaction!A$2:A$2215='Event Data'!B2, ROW(transaction!A$2:A$2215)-ROW(transaction!A$2)+1), ROW(A1)))
    
  2. 在「Event Data」的B17单元格输入对应数量的数组公式,同样按Ctrl+Shift+Enter确认:
    =INDEX(transaction!E$2:E$2215, SMALL(IF(transaction!A$2:A$2215='Event Data'!B2, ROW(transaction!A$2:A$2215)-ROW(transaction!A$2)+1), ROW(A1)))
    
  3. 选中A17和B17单元格,下拉填充到出现#NUM!为止,若想隐藏错误值,可给公式套上IFERROR:
    =IFERROR(INDEX(transaction!D$2:D$2215, SMALL(IF(transaction!A$2:A$2215='Event Data'!B2, ROW(transaction!A$2:A$2215)-ROW(transaction!A$2)+1), ROW(A1))),"")
    

关键注意事项

  • 确保transaction表的日期列(A列)和「Event Data」的B2单元格日期格式完全一致,避免因格式不匹配导致筛选失败
  • 公式中的列号(D、E)和行范围(2:2215)需根据你的实际数据位置调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:25:08