1

在 Excel 中,我查看了hlookup, vlookupmatchindex这些函数都没有执行以下操作:

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

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

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

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

4

2 回答 2

5

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

=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 中的任何范围执行此操作

于 2012-10-29T08:46:35.203 回答
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",""))

在此处输入图像描述

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

在此处输入图像描述

于 2012-10-28T20:56:09.263 回答