
另一個關於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")
當然,您可以使用任何其他行和/或列來偵測最後一個儲存格。