![使用 vlookup 匹配检查两个表中数字的存在](https://linux22.com/image/1548349/%E4%BD%BF%E7%94%A8%20vlookup%20%E5%8C%B9%E9%85%8D%E6%A3%80%E6%9F%A5%E4%B8%A4%E4%B8%AA%E8%A1%A8%E4%B8%AD%E6%95%B0%E5%AD%97%E7%9A%84%E5%AD%98%E5%9C%A8.png)
检查表
每列代表一个项目,该列下方的每一行代表该项目一个单位的 ID。在下面的例子中,我有 4 个苹果,IDS 为 1、2、4、5,还有 2 个葡萄,IDS 为 3、8
| Apple | Grape |
| 1 | 8 |
| 5 | 3 |
| 2 | |
| 4 | |
餐桌大师
每行代表一个商品及其 ID 的唯一组合。下表代表与上表相同的数据。
| 1 | Apple |
| 2 | Apple |
| 4 | Apple |
| 5 | Apple |
| 3 | Grape |
| 8 | Grape |
问题
我想向 Table Master 添加一个列,其中包含一个公式,以便我可以确认 Table To Check 中的所有内容实际上也存在于 Table Master 中,这也将阐明 Table Master 中存在但不在 Table To Check 中的任何项目,反之亦然。我曾想过用一个简单的 vlookup 匹配来做到这一点
VLOOKUP(E8,"Entire Table To Check",MATCH(F8,"Entire 1st Row in Table To Check",0),FALSE)
我希望输出是待检查表中找到的值(即项目本身的 ID,因为这就是要找到的值)。但由于某种原因,该公式有时有效,有时会产生 #N/A 结果。问题:什么是正确的公式,为什么这个公式只是部分有效?
我的结果
*New comparison column with formula above
| 1 | 1 | Apple |
| 2 | 2 | Apple |
| #N/A | 4 | Apple |
| #N/A | 5 | Apple |
| 3 | 3 | Grape |
| #N/A | 8 | Grape |
答案1
编辑:回答重新提出的问题。
EDIT2:为了避免在 INDEX() 的参考形式中列出许多区域。
此公式从 E1 向下填充,使用嵌套的 INDEX() 函数以及 MATCH() 来提供解决方案:
=IFERROR(INDEX(INDEX(A$2:C$5,,MATCH(G2,A$1:C$1,0)),MATCH(F2,INDEX(A$2:C$5,,MATCH(G2,A$1:C$1,0)),0)),"No ID Found")
工作原理:第二个 INDEX() 从数组 A2:C5 返回一列项目 ID,具体来说是与 G 列中的项目名称匹配的标题列。该列由以下公式部分给出:
INDEX(A$2:C$5,,MATCH(G2,A$1:C$1,0))
第一个 INDEX() 使用该列作为其数组,row_num 由第二个 MATCH() 提供。该 MATCH() 在第一个 INDEX() 使用的同一列项目 ID 中从 F 列中查找 ID,并使用公式的相同部分来指定该列。
最后,整个公式被包裹在 IFERROR() 中,以记录任何未找到的列出的 ID。