Excel 工作表函数:如何引用动态列?

Excel 工作表函数:如何引用动态列?

注意:尝试不使用 VBA

假设我在 C1 中有单词“Hello”

从另一个单元格,比如说 A1,我想返回 C:C,因为在第一行 1:1 中包含单词“Hello”

在 A1 中我可以输入:

=MATCH("Hello",1:1,0)

这将返回 3,因为它位于第三列。但是,我需要的是 C:C 格式

ADDRESS 函数可以使用列号 3 返回特定单元格,但不能返回整个列。

最终,我想使用 COUNTIF(dynamicWholeColumn,criteriaCell)

有人有什么想法吗?干杯。

答案1

您可以使用字符串函数操纵 ADDRESS 的输出,将其转换$C$1$C:$C。但是,如果您将其放入 COUNTIF,最好使用 OFFSET 和 MATCH 的输出。

=COUNTIF(OFFSET($A:$A,0,MATCH("Hello",1:1,0)-1),"Hello")

答案2

如果您使用下面的函数,它将为您提供行字母。

=CHAR(<COLUMN NUMBER>+64)

因此,如果您使用以下内容,您将获得您的列字母 C。

=CHAR(MATCH("Hello",1:1,0)+64)

因此,您需要做的就是将它与自身连接起来以获得您要查找的内容,C:C。

=CONCATENATE(CHAR(MATCH("Hello",1:1,0)+64),":",CHAR(MATCH("Hello",1:1,0)+64))

相关内容