MS Excel:如何使用标题中的值选择的列(第 1 行)

MS Excel:如何使用标题中的值选择的列(第 1 行)

我正在从网站导入大量数据集,并希望在新工作表上构建一些汇总统计数据。列顺序不固定,因此我希望能够(例如)计算标题为“优先级”的列中值为“1”的所有单元格。我知道这MATCH("Priority", 1:1)会给我列号,但我该如何在公式中使用它COUNT

答案1

我的答案:

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

现在解释一下:

Offset($A:$A,0,X)返回从第一个偏移量开始的整列,X在这种情况下 X = MATCH("Priority",1:1) - 1

因为MATCH("Priority",1:1)返回列号,所以我们必须减 1 才能得到正确的偏移量。

那么最后一位,1)表示我们正在寻找值 1。

希望这足够清楚,以便您可以完成其余需要的工作。

如果不是,您需要做的就是将内容替换"Priority"为您想要搜索的内容,然后将最后一个内容替换1为您要查找的内容,这样就会返回计数。

只是为了好玩,这也可以工作:

=COUNTIF(INDEX(1:1048576,0,MATCH("Priority",1:1)),1)

答案2

这是一种混乱的方法,涉及ADDRESSINDIRECT公式(假设样本数据在A1:B6

=COUNTIF(
    INDIRECT(SUBSTITUTE(ADDRESS(1,MATCH("Priority",1:1,0),4),"1","") & ":" &
             SUBSTITUTE(ADDRESS(1,MATCH("Priority",1:1,0),4),"1","")),
    1)

基本上,它所做的就是找到Priority标题中匹配的列(这里是列B),找到ADDRESS(在本例中为B1),将列号转换为字母(SUBSTITUTE),然后将其转换为实际范围(INDIRECT)。

在此处输入图片描述

相关内容