2007年1月3日 星期三

[EXCEL] 顯示陣列公式的內容-MAXIF 和 MINIF

 
  相關函數IF() / MAX() / MIN()

  陣列公式雖然好用,但是在公式撰寫和除錯時也比較麻煩,最主要的原因,就是因為陣列公式的運算過程是在 Excel 內部進行,如果出了問題,從外面不容易看出錯誤的地方。因此,能夠顯示出陣列公式運算過程中的陣列內容,對於理解陣列公式的原理,撰寫公式和除錯,都有很大的幫助

##CONTINUE##
  要顯示陣列內容,有三個步驟,假設陣列大小是 10,則
  1. 先反白選擇 10 個空白儲存格,如 D2:D11
  2. 滑鼠游標移到上方的編輯列,輸入公式
  3. CTRL+SHIFT+ENTER 完成輸入
  如此,則陣列內容將會依序顯示在 D2 到 D10 內。如果少了第一個步驟,則出現的內容只是陣列的第一個元素而已,第二到第十個元素內容都無法看見。

  舉例來說,如上表,A2:A11 是原始資料,C2:C3 是 SUMIF() 和 COUNTIF() 的結果。現在,如果我們想做出類似 MAXIF() 或 MINIF() 的功能,也就是先用 IF() 過濾原始資料之後,再選出過濾之後的最大值或最小值,應該怎麼做?

  利用陣列公式的原理,我們可以建立一個陣列,來暫時存放過濾之後的內容值,再根據陣列內容值找出最大值或最小值即可。上表中的 D2:D11,就是以「小於 10」為條件,過濾出來的結果,公式為

{=IF(A2:A11<10,a2:a11,"")}

  你可以看見所有十個元素的內容值。

  整合 MAX() 和上面的陣列公式,在 C3 輸入完整陣列公式

{=MAX(IF(A2:A11<10,a2:a11,""))}

  就可以達成類似 MAXIF() 的功能了。

  MINIF() 的公式?看懂了 MAXIF(),MINIF() 一定不成問題的,對吧!

  注意:D2:D11 一旦形成一個陣列公式之後,就不能單獨修改或刪除某一個元素,而必須全體一併修改或一併刪除才行,否則會出現上表中的警告訊息。

0 意見: