【问题标题】:Excel 2010 index match - multiple criteriaExcel 2010 索引匹配 - 多个条件
【发布时间】:2015-02-27 00:42:51
【问题描述】:

我不熟悉使用索引/匹配,但遇到了一些麻烦。我有两张工作表,一张带有表格act,另一张带有表格waact 包含 7,199 行; wa 有 25,099 行。

我正在尝试匹配订单号和日期,以便将文档号从 wa 拉到 act。订单号将完全匹配,但act 上的日期略小于wa 上的日期。

我的公式是:

=INDEX(WA[BillingDocumentNumber],(MATCH([@[Customer PO Number]],WA[PO],0)+MATCH([@[GL Posting Date]],WA[CostPostedOn],-1)))

根据我对wa 数据的排序方式,我得到了以下结果:

  1. 返回 494 个文档编号(有时正确;有时从应返回的单元格正下方的 wa 单元格中提取)其余的 #N/A
  2. 大约 1400 个文档编号(我认为都是不正确的),其余为 #N/A#REF

谁能帮助我?我没有VBA的实际知识,但我是我公司的常驻Excel“专家”(对我来说似乎很有趣),所以我是面临解决这个问题的任务的人......我已经梳理了现有的论坛,但我还没有找到任何似乎为我的问题提供(非 VBA)解决方案的方法。任何想法将不胜感激!

感谢您的宝贵时间。

【问题讨论】:

  • 试图理解这个问题。您能否列出每个表中的列以及您要匹配的列。
  • 如果订单号是唯一的,即一个条目,你可以用VLOOKUP代替吗?
  • 订单号不是唯一的——订单号在数据集中可能出现多次,每次都有不同的日期。

标签: excel-formula


【解决方案1】:

这是我未经测试的建议解决方案:

{=CONCATENATE(IFERROR(IF(AND(WA[PO]=@[Customer PO Number],WA[CostPostedOn]>@[GL Posting Date]),WA[BillingDocumentNumber],""),""))}

使用 CTRL + SHIFT + ENTER 作为数组公式输入。

这将在一个文本字符串中返回与采购订单号匹配且执行日期早于 wa 日期的所有结果。您可以修改第二个条件并在 AND 中添加第三个条件以创建日期范围(即 WA[CostPostedOn]>=@[GL Posting Date]+7WA[CostPostedOn]<=@[GL Posting Date]-7)。

当您使用数组时,当您将其扩展到 7,000 多个公式时可能会出现一些性能问题。可悲的是,您不能使用 2 个条件来执行 VLOOKUP

希望这会有所帮助。干杯,

【讨论】:

  • 感谢您的建议!我会试试这个。
猜你喜欢
  • 1970-01-01
  • 2019-10-22
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-04
  • 2011-11-26
  • 2017-04-21
  • 2021-03-05
相关资源
最近更新 更多