Excel - 间接公式

Excel - 间接公式

有关 Excel 间接公式的另一个问题。

我有列 E1:J202 填充以下内容之一:

  • 绿色的
  • 琥珀色
  • 红色的

如果填充了新行或新列,我该如何使用间接公式分别计算上述内容?

注意:每次我在 Excel 中添加新列时(即:如果我插入新列 [K]),我希望系统从 F1:K202 而不是 E1:J202 计算绿色、琥珀色和红色单元格。

答案1

使用索引:

=COUNTIFS(INDEX(1:202,1,MATCH(1E+99,1:1)-5):INDEX(1:202,202,MATCH(1E+99,1:1)),"green")

它将找到具有真实日期的最后一列,然后创建一个包含该日期和其左边 5 列的范围。

如果“日期”实际上是文本而不是真实日期,则使用以下命令:

=COUNTIFS(INDEX(1:202,1,MATCH("zzz",1:1)-5):INDEX(1:202,202,MATCH("zzz",1:1)),"green")

答案2

抱歉,我在第一个回答中没有看清问题。

尝试使用以下公式:

=COUNTIFS(INDIRECT(ADDRESS(1,5)&":"&ADDRESS(202,(COLUMNS($A$1:WZG1)-16221))),"green")

如果你在左侧column A或右侧添加一列,这将崩溃column WZF

答案3

如果整个范围单元格都已填充,则使用以下公式获取填充范围内的最后一个单元格:

=ADDRESS(COUNTA(E:E),COUNTA(1:1)-COUNTA(A1:D1)+4)

如果 A1:D1 中的所有单元格也都已填充,则公式可能是

=ADDRESS(COUNTA(E:E),COUNTA(1:1))

在您的间接地址中使用此地址:

=COUNTIFS(INDIRECT("E1:"&ADDRESS(COUNTA(E:E),COUNTA(1:1)-COUNTA(A1:D1)+4)),"Green")

或者,如果 A1:D1 中的所有单元格都已填充,

=COUNTIFS(INDIRECT("E1:"&ADDRESS(COUNTA(E:E),COUNTA(1:1))),"Green")

当然,您可以使用任何其他行和/或列进行最后一个单元格检测。

相关内容