更新: 更清楚我在寻找什么。我想要有两个不同的输出。
----------------------
由于某种原因,VLOOKUP 或该函数中的某些差异无法正常工作。我随机列出了一份清单来模拟我的情况。我有一个很大的列表,我想检查该项目是否在较短的列表中可用。我有一个情况,我只是想检查一下是否可用。或者在另一种情况下,如果可用,显示 x 列同一行的文本。我没有将最后一个包含在本示例中,因为它也不起作用。如果我也能获得该代码的帮助,我将不胜感激。
除了短表在 Sheet2 之外,所有表格都在 Sheet1 中。
大表:(表1,在sheet1中 -> 黄色是表2中的内容)
姓名1 | 姓名2 | 信息1 | 信息2 |
---|---|---|---|
20412 | 132 | 绿色 | 苹果 |
75557 | 100 | 红色 | 水 |
84242 | 229 | 粉色 | 苹果 |
35828 | 407 | 红色 | 鸡蛋 |
49052 | 931 | 蓝色 | 鸡蛋 |
82247 | 657 | 粉色 | 水 |
12840 | 291 | 蓝色 | 水 |
10117 | 649 | 粉色 | 鸡蛋 |
71444 | 298 | 绿色 | 水 |
30180 | 912 | 粉色 | 水 |
12189 | 270 | 绿色 | 水 |
15267 | 239 | 蓝色 | 水 |
25988 | 475 | 蓝色 | 鸡蛋 |
96528 | 120 | 蓝色 | 苹果 |
41453 | 776 | 红色 | 啤酒 |
63700 | 895 | 红色 | 水 |
50723 | 366 | 红色 | 苹果 |
78113 | 681 | 蓝色 | 啤酒 |
28698 | 846 | 绿色 | 水 |
37998 | 484 | 绿色 | 啤酒 |
32781 | 337 | 绿色 | 啤酒 |
68340 | 593 | 蓝色 | 水 |
46335 | 921 | 红色 | 鸡蛋 |
55532 | 389 | 粉色 | 水 |
87567 | 723 | 绿色 | 水 |
15967 | 704 | 蓝色 | 啤酒 |
24392 | 766 | 绿色 | 苹果 |
87966 | 431 | 蓝色 | 苹果 |
48426 | 981 | 粉色 | 苹果 |
短表:(表2,在sheet2中)
名称1_可用 | 名称2_可用 |
---|---|
75557 | 229 |
49052 | 407 |
71444 | 298 |
30180 | 270 |
15267 | 475 |
63700 | 895 |
15967 | 681 |
87966 | 593 |
当我使用 VLOOKUP 时,似乎第一行有效,第二行无效。在我的真实文件中,我经常注意到两者都不起作用。这是否与无法向左看或在之前的表格中有关? 使用的公式:(在Sheet1中)
First column: =VLOOKUP(Table1[@Name1];Table2;1;FALSE)
Second column: =VLOOKUP(Table1[@Name2];Table2;2;FALSE)
我(手动)将正确的值标记为绿色,将错误的值标记为红色。第二列确实有绿色,但当然不起作用。
当我想查找它并放置“是”或“否”是否有匹配时,也无法正常工作:(再次手动标记为绿色和红色)
First column: =IF(ISNA(VLOOKUP(Table1[@Name1];Table2[@[Name1_available]];1;FALSE));"No";"Yes")
Second column: =IF(ISNA(VLOOKUP(Table1[@Name2];Table2[@[Name2_available]];1;FALSE));"No";"Yes")
为什么它没有像我认为的那样工作。我想我在某处读到它不能向后看(之前的列或表),这是真的吗?为什么?有没有可以在整个 Excel 文件中工作的替代方案?
这是
=VLOOKUP(Table2[@Name1_available];Table1;3;FALSE)
所发生情况的视觉效果(应用于第二个表的“Kolom1”。)
[@Name1_available]
指的是公式左侧的单元格(在本例中为表2),它是要查找的值。
查找数组是
Table1
,但它实际上只会在第一列[Name1]
中查找,返回数组由3
确定,在本例中是[Info1]
。所以这里返回了Red
。
如果您忘记第一个参数中的
@
,您将生成一个SPILL error
,如果您在第二个参数中添加@
,您将仅在查找数组中查看1个值。
另外:如果您想返回查找列左侧的结果,您可以使用
INDEX/MATCH
组合。
第二点:使用
=XLOOKUP()
需要指定查找列(或行),在表之外使用它可以返回多行。