【发布时间】:2019-02-15 17:50:56
【问题描述】:
我有一堆由身份证号和姓名组成的数据。
图片 1
{=IF(ISERROR(INDEX($A$2:$B$12;SMALL(IF($A$1:$A$16=$E$1;ROW($A$1:$A$12));ROW(1:1));2));"";INDEX($A$1:$B$12;SMALL(IF($A$1:$A$16=$E$1;ROW($A$1:$A$12));ROW(1:1));2))}
以前(图 1)我成功地能够从仅包含一个名称的列名称中返回具有名称值的多个值。我正在使用索引函数数组公式来解决这个问题。
但是,当我在该名称列中有多个名称时,我被卡住了。我想要做的是在不修改该列的情况下返回多个 Id Number 值,其中包含多个名称,在 Names 列中用“逗号”分隔。预期结果如图 2 所示。
图片 2
问题是:
- 我想根据 Names 从 ID Number 列中获取值 包含名称的列
- 我想自动获取多个值,就像显示在 图 1
- 如果有两个 ID Number 值相同,则将其删除或不显示在结果中。
我不介意你们对我采取的任何方法。我将感谢您提供的任何解决方案。非常感谢。
【问题讨论】:
-
您需要使用
Find()公式在单元格中查找匹配项,而不是使用Index()来查找匹配项,而不是匹配完整的单元格。要检查是否存在匹配项,您可以查看Find()产生的结果是否大于 0。 -
为什么
John只匹配1a232而它也出现在其他行中? -
而 Marrie 的 ID 应该只出现一次,因为她重复的是同一个号码?
-
我编辑了图片2。谢谢你提醒我。
标签: excel indexing match vlookup