在excel中IFERROR(VLOOKUP(A40,工单城市站数据透视表!AS:AT,2,0),“”)只能读取出现一次的A40,当A40在工单城市站数据透视表!AS:AT中出现两次时,想要读取多次的A40,如何在excel中如何实现
时间: 2024-09-28 07:04:49 浏览: 23
在Excel中,如果你想读取VLOOKUP函数返回值不唯一的多个匹配项,可以使用数组公式或者辅助列的方式来解决。数组公式可以查找所有匹配并返回结果,但如果直接使用IFERROR配合VLOOKUP可能会有冲突,因为IFERROR通常只处理单一错误。
一种方法是使用INDEX和MATCH函数结合,创建一个新的数组。假设你想获取每个匹配的第二列值:
1. 首先,在一个新的单元格,比如B40,输入以下公式:
```
=INDEX(工单城市站数据透视表!AS:AT,MATCH(A40, 工单城市站数据透视表!AS:AT, 0))
```
这里`MATCH`函数会找到所有与A40匹配的行号,然后`INDEX`函数根据这些行号从指定范围中提取对应的数据。
2. 如果需要所有匹配的结果,你需要复制这个公式并填充到你需要的位置。因为Excel数组公式需要通过Ctrl + Shift + Enter键激活,所以确保你在填入时按下这三个键。
另一种方法是添加一个辅助列,标记每个A40的唯一标识,然后按照这个标识进行VLOOKUP:
1. 添加一个新列,例如在A列旁边,使用ROW()函数生成一个序列。
2. 对于每一个A40,使用VLOOKUP查找它的所有匹配,并将对应的值放在新列中。
3. 然后你可以根据这个辅助列来筛选或汇总所有匹配的结果。
相关问题
在excel中IFERROR(VLOOKUP(A40,工单城市站数据透视表!AS:AT,2,0),“”)只能读取出现一次的A40,当A40在工单城市站数据透视表!AS:AT中出现两次时,想要读取两次,在excel中如何实现
在Excel中,如果你想让`VLOOKUP`函数返回A40在工单城市站数据透视表中所有匹配项的值,而不仅仅是第一次出现的,你可以使用数组公式结合`COUNTIF`函数来解决这个问题。这里提供一种方法:
假设你想查找A40在范围`工单城市站数据透视表!AS:AT`中所有出现的情况,并返回对应的所有值,可以尝试下面的公式:
```excel
=IFERROR(IF(COUNTIF('工单城市站数据透视表!AS:AT', A40) > 1,
INDEX('工单城市站数据透视表!AS:AT', MATCH(ROW(),从小到大排序后的序数数组)),
VLOOKUP(A40, '工单城市站数据透视表!AS:AT, 2, 0)),"")
```
步骤说明:
1. 将上述公式复制到一个新的单元格,记得先选中该单元格然后按Ctrl + Shift + Enter键输入,因为这是一个数组公式。
2. `COUNTIF('工单城市站数据透视表!AS:AT, A40)`计算A40在目标区域出现的次数。
3. 如果次数大于1,则使用`MATCH`函数找到当前行在排序后的所有匹配行的序数(从小到大),再用`INDEX`函数按序返回对应的值。
注意:
- 输入公式后,如果看到的是`=}`而不是对齐的`{}`,说明需要确认是否是以数组形式输入。
- 这种方法可能会导致效率降低,特别是对于大数据集,因为它会遍历整个列来查找匹配。如果性能是个问题,可能需要考虑其他数据库查询工具或者优化数据结构。
阅读全文