Excel |在不同工作表中搜索表并从该行中的列中获取值

时间:2017-02-20 14:59:52

标签: excel excel-formula formula vlookup

我正试图在我的一张床单中查找一张桌子。我的表由三列和无限量的行组成。

我的桌子可以在这里看到:

enter image description here

在我的第二张表中,我希望编写一个公式,搜索表中的所有行,并在A列和B列中查找完全匹配,这意味着它必须找到列a的值为“jan”的行并且在同一行中,第二列必须具有值“y”。如果找到这个匹配,它应该返回C列的值。

我尝试研究hlookup,但这是针对水平表,所以我不相信这会起作用。我也查看了Vlookups,但只允许一个标准搜索,而不是寻找两个匹配。

请问有人在这里说清楚吗?

3 个答案:

答案 0 :(得分:0)

您可以使用索引并与多个条件匹配

=INDEX($A$1:$C$1000, MATCH("Jan"&"y", $A$1:$A$1000&$B$1:$B$1000, 0),3)

输入此公式时按 CTRL + SHIFT + ENTER

答案 1 :(得分:0)

INDEX函数的语法为

INDEX(array, row_num_in_array, [column_num_in_array])

MATCH返回逻辑匹配的索引位置

MATCH(lookup_value, lookup_array, [match_type])

将两者结合起来是一种灵活的技术,而且功能非常强大 - 匹配lookup_value中的逻辑可能是一个复杂的条件。

最简单的代码

在整个栏目上进行操作

INDEX(C:C, MATCH("Jan"&"y", A:A&B:B, 0), 1)

nb./ A:A是"所有A列和第34列的excel代码。您可以改为使用:

限制代码

在工作表的子集上操作。

INDEX($C$2:$C$1000, MATCH("Jan"&"y", $A$2:$A$1000&$B$2:$B$1000, 0), 1)

请注意,您必须使用相同的行长度数组(例如,行2:1000),否则公式将不起作用。 MATCH只知道它的lookup_array中有多少行,你需要确保它的行与INDEX数组中的行匹配

PS。道歉这与前一个答案很接近,但细节评论的时间太长了。

PPS。我错过了对第一个答案的澄清。这样可行,但不需要将所有三列用作array函数中的INDEX。毕竟,您只是从C列返回数据。

答案 2 :(得分:0)

将范围转换为表格(ctrl-t),然后使用SUMIFS根据两个标准搜索表格

=SUMIFS(Table1[Alteration],Table1[Month],"Jan",Table1[Products],"y")

这就是说“给我[Alteration] [Month] =”Jan“和[Products] ='y'......这会返回364。

您可以将标准指向包含标准的单独单元格。

请注意,如果有多个行具有相同的数据(即同时包含'Jan'和'y'的多行),则C列将汇总在一起。