通过查找行中的值来获取列
在Excel中,我研究了hlookup
, hlookup
, match
和index
但是这些函数都没有这样做:
我需要在A1:Z1
find文本值并获取它的列。 例如,我在F1
find了这个值,然后我想要一个结果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
可以确保返回的值不包含$
。 然后用E1
replaceE1
的1
,并用相同的公式连接起来,给出E:E
作为string。 然后,您可以根据该范围(使用INDIRECT
)进行查找,如下所示: