有关 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")
当然,您可以使用任何其他行和/或列进行最后一个单元格检测。