使用COUNTIF和INDIRECT函数扩展范围

时间:2018-10-05 16:05:00

标签: excel countif

我想在excel中的COUNTIF函数中引用扩展范围,以便通过INDEX和MATCH函数的组合来标识扩展范围的起始引用。

假设我在A列中有以下数据:{1; 1; 0}。

我可以在单元格B1中使用以下COUNTIF公式来计算1和0出现在A列数据中的累积次数,如下所示:

在单元格B1中:COUNTIF($ A $ 1:A1,A1)

如果我将其从B1:B3向下拖动,此功能的结果将是:

{1; 2; 1}

这是问题:

使用INDEX和MATCH函数,我可以找到第一个“ 1”作为单元格A1出现在A列中。

如何通过引用从INDEX和MATCH标识的'A1'为COUNTIF函数的[range]参数创建“ $ A $ 1:A1”值,并为COUNTIF函数的[criteria]参数创建“ A1”值函数组合,以便当我将其向下拖动时,只要将相对的单元格引用向下拖动到列中,它就会按预期增加行值?

如果要在单元格C1中输入此公式,则单元格C1:C3中的结果值应为{1; 2; 1}

这是我尝试产生以下结果{1; 1; 1}的公式的示例。基本上,行值不会像我希望的那样递增:

=COUNTIF(INDIRECT(CELL("address",INDEX($A$1:$A$3,MATCH(1,$A$1:$A$3,0)))):INDIRECT(LEFT(ADDRESS(ROW(INDEX($A$1:$A$3,MATCH(1,$A$1:$A$3,0))),COLUMN(INDEX($A$1:$A$3,MATCH(1,$A$1:$A$3,0))),4),1)&ROW(INDEX($A$1:$A$3,MATCH(1,$A$1:$A$3,0)))),INDEX($A$1:$A$3,MATCH(1,$A$1:$A$3,0)))

希望有人能帮助我。

谢谢。

2 个答案:

答案 0 :(得分:0)

第一个使用索引,第二个作为参考

=COUNTIF(INDEX(A:A,MATCH(1,A:A,0)):A1,A1)

enter image description here

答案 1 :(得分:0)

如果您想保留大部分原始公式,请尝试

=COUNTIF(INDIRECT(CELL("address",INDEX($A$1:$A$3,MATCH($A$1,$A$1:$A$3,0)))):INDIRECT(LEFT(ADDRESS(ROW(),COLUMN(INDEX($A$1:$A$3,MATCH(A2,$A$1:$A$3,0))),4),1)&ROW()),INDEX($A$1:$A$3,MATCH(A2,$A$1:$A$3,0)))

我压缩ROW()并修改MATCH()的第一个参数,尽管似乎还有一些额外的计算。