繁体   English   中英

在具有多个匹配项的Excel列中查找单个值

[英]Looking for a single value in an Excel column with multiple matches

我有一个客户编号列表,我需要搜索一个帐户列表,以找出该客户文件中是否有特定的帐户编号。

我的原始表是这样的

原版的

我的帐号列表如下所示

  • 217 1008
  • 218 1008
  • 219 1008
  • 217 2009
  • 218 2009
  • 219 2009
  • 218 3015
  • 219 3015
  • 217 4017
  • 219 4017

预期结果如下所示

结果

最初,我将客户和帐号连接在一起,然后进行了VLOOKUP,但是我敢肯定有更好的方法。 也许使用VBA代替工作表中的公式。 谁能帮我吗?

如果您的客户和帐户列表位于单独的单元格中,则可以使用Countifs()

在此处输入图片说明

正如@pnuts所说,数据透视表将为您提供结果表,但是如果您有大量客户/帐户,它将很快变得笨拙。 除非您不想修改数据,否则将CONCATENATEd值设为VLOOKUP是一个好方法。

如果您仅对少量的客户/帐户进行一次单次检查,也许仅对数据使用自动过滤器可能是一个更简单的解决方案?

如果您的客户和帐户在同一列中,则可以使用此方法来尝试MATCH行和列标题(带空格)的串联:

=IF(NOT(ISERROR(MATCH($C4&" "&D$1,$A$2:$A$11,0))),"X","")

例如:

在此处输入图片说明

我将假设结果中显示的表格从A1单元格开始,因此您的公式将在B3中键入并向右和向下复制。 我还将假设您的帐户列表在Acct命名范围内。

=IF(MATCH($A3&" "&B$14,Acct)>0,"X","")

在您的示例中,将其复制到B3:E5中的所有单元格中。

这是使用Index/Match的另一种方法。 使用“文本到列,空格分隔符”将217 1008列分成两部分。 然后说它们在J1:J10的范围内( 217, 218, etc. ),在K1:K10的范围内是1008, 1009, etc.

=IF(NOT(ISERROR(INDEX($J$1:$J$10,MATCH($A2&B$1,$J$1:$J$10&$K$1:$K$10,0)))),"X","")
(使用CTRL + SHIFT + ENTER输入数组)

其中A2是您的217数字下降的开始,而B1是1008开始右拐。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM