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

在Excel中,我研究了hlookuphlookupmatchindex但是这些函数都没有这样做:

我需要在A1:Z1find文本值并获取它的列。 例如,我在F1find了这个值,然后我想要一个结果F:F

编辑:这是我希望它被添加到的function:

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

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

INDEX函数可以返回整列,例如假设你想在A1:Z1中search“x”try

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

注意:这不会像F:F那样返回一个文本string,它会返回一个引用,这个字段通常在一个需要整列引用的函数中使用,例如SUM,SUMIF,LOOKUP等。

编辑:你可以在COUNTIFS函数中使用上面的这个:

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

这就使得第一个范围是dynamic的(在第A列和第Z列之间 – 根据需要扩展),基于在Source中首先find“x”的地方!A1:Z1,例如如果在J1中首先find“x”,那么COUNTIFS使用Source!J: J表示第一个范围 – 您可以在COUNTIFS中的任何范围内执行此操作

你可以使用这个(它会返回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","")) 

在这里输入图像说明

这是通过使用MATCH来查找在您的范围(在本例中为5)中出现的位置,然后使用ADDRESS ,其中row_num = 1和column_num =匹配结果。 对abs_num参数使用4可以确保返回的值不包含$ 。 然后用E1replaceE11 ,并用相同的公式连接起来,给出E:E作为string。 然后,您可以根据该范围(使用INDIRECT )进行查找,如下所示:

在这里输入图像说明