【问题标题】:Need to cross reference two lists of Vendor Names/Numbers in Excel需要在 Excel 中交叉引用两个供应商名称/编号列表
【发布时间】:2016-02-11 15:17:43
【问题描述】:

我在总共四列中有两个供应商名称/编号列表。我附上了一张样本数据的图片

..

我需要做的是,如果 D 列中的供应商名称在 B 列中,我需要提取两个供应商编号,以便比较两者并创建交叉引用列表。

因此,在我的示例中,我需要拉 A2/B2 与 C3/D3 进行比较。

我该怎么做?

【问题讨论】:

  • 我必须挖掘我以前的 VLOOKUP 回复之一,以便我可以将它们作为重复项关闭。
  • @ScottHoltzman 我知道这些功能可能会有所帮助,但不知道如何利用它们。我尝试了 VLOOKUP,但列不匹配,相同的供应商名称可能在任何地方,这给我带来了麻烦
  • 但是@Jeeped还有另一部分,OP想要一个匹配名称的列表,然后他可以使用查找。

标签: excel excel-formula compare ms-office excel-2013


【解决方案1】:

要获取匹配列表,请使用以下数组公式:

=IFERROR(INDEX($B$2:$B$5,SMALL(IF(COUNTIF($D$2:$D$5,$B$2:$B$5),ROW($1:$4)),ROW(1:1))),"")

作为一个数组需要用 Ctrl-Shift-Enter 确认。

我把它放在F2并复制下来。

然后引用该列,我使用了以下两个公式:

=IF(F2<>"",INDEX(A:A,MATCH(F2,B:B,0)),"")
=IF(F2<>"",INDEX(C:C,MATCH(F2,D:D,0)),"")


编辑

对于大量数据,忘记第一个公式,并使用 Existing D 列作为后面两个公式的参考:

=IFERROR(INDEX(A:A,MATCH(D2,B:B,0)),"")
=IFERROR(INDEX(C:C,MATCH(D2,D:D,0)),"")

然后按E列降序排序:

【讨论】:

  • 只是等待 OP 说他/她的 30K 行计算时间太长。
  • @Jeeped 仅仅因为它会进行 2^30000 次计算,没有理由抱怨。 :) 是的,这需要一两秒钟。
  • 哈,是的,这就是我所处的位置。想检查我的公式.. 我要更改哪些部分才能使其适用于 30,000 多行?这是我目前拥有的:
  • =IFERROR(INDEX(B:B,SMALL(IF(COUNTIF(D:D,B:B),ROW($1:$50000)),ROW(30159:30159)))," ")
  • @ScottCraner 看起来一切正常。感谢所有帮助,非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多