通过在行中查找值来获取列

时间:2012-10-28 20:47:23

标签: excel excel-formula

在Excel中,我查看了hlookupvlookupmatchindex,但这些功能都没有关注:

我需要在A1:Z1中找到一个文本值并获取它的列。例如,我在F1中找到了值,然后我想要一个结果F:F

编辑:这是我希望将其添加到的功能:

=COUNTIFS(Source!B:B;Result!C3;Source!AT:AT;Result!$D$2)

我需要Source!B:B,或者Source!AT:AT是一个搜索函数,它在不同工作表(源)中的表格行和列中查找特定值。

2 个答案:

答案 0 :(得分:5)

INDEX函数可以返回整列,例如假设您要在A1中搜索“x”:Z1尝试

=INDEX(A:Z;0;MATCH("x";A1:Z1;0))

注意:这不会返回像F:F这样的文本字符串,它会返回对相关列的引用,您通常会在需要整列引用的函数中使用该引用,例如: SUM,SUMIF,LOOKUP等。

已编辑:您可以在COUNTIFS函数中使用上述内容:

=COUNTIFS(INDEX(Source!A:Z;0;MATCH("x";Source!A1:Z1;0));Result!C3;Source!AT:AT;Result!$D$2)

这使得第一个范围动态(在A列和Z列之间 - 根据需要延伸)基于在Source!A1:Z1中首次找到“x”的位置,例如如果在J1中首次找到“x”,则COUNTIFS使用Source!J:J作为第一个范围 - 您可以对COUNTIFS中的任何范围执行此操作

答案 1 :(得分:2)

您可以使用此功能(它将返回E:E,然后您可以使用INDIRECT返回可用范围)。这使用“单词”作为匹配的单词并在第一场比赛时停止:

=SUBSTITUTE(
    ADDRESS(1,MATCH("words",$A$1:$Z$1,0),4),"1",
    ":"&
    SUBSTITUTE(ADDRESS(1,MATCH("words",$A$1:$Z$1,0),4),"1",""))

enter image description here

这可以通过MATCH使用ADDRESS查找范围内的匹配项位置(在本例中为5),然后使用row_numcolumn_num = 1和{{ 1}} =匹配的结果。对4参数使用abs_num可确保返回的值不会出现$。然后,用“:”替换1中的E1,并将其与相同的公式连接起来,将E:E作为字符串。然后,您可以根据该范围(使用INDIRECT)进行查找,例如:

enter image description here