Excel 2010索引匹配 - 多个条件

时间:2015-02-27 00:42:52

标签: excel-formula

我是使用索引/匹配的新手,我遇到了一些麻烦。我有两个工作表,一个包含表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
  3. 任何人都可以帮助我吗?我没有VBA的实际知识,但我是常驻Excel"专家" (对我来说很有趣)在我的公司,所以我是面对解决这个问题的人...我已经梳理了现有的论坛,但我还没有找到任何似乎提供(非VBA)解决我的问题。任何想法将不胜感激!

    感谢您的时间。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

在使用数组时,虽然将此扩展为7,000多个公式时可能会出现一些性能问题。遗憾的是,你无法通过2个条件进行VLOOKUP

希望这会有所帮助。欢呼声,