2011年11月2日 星期三

Excel中如何使用陣列公式

如果你曾寫過程式,對「陣列」(Array)這個名詞一定不陌生

如果你曾使用過Excel製作複雜的計算,那你應該也碰過很麻煩的撰寫函式的過程,甚至可能難到你不能用一般函數來解決,那麼原因十之八九是因為陣列的關係

如下範例1,如果設計了這樣的表格,那麼你應該知道總銷售額的寫法…每一行都要寫,這裡當然沒什麼問題。但是萬一業務代表變多了…車型也不只二種,那麼惡夢就來了。
image
試一試用陣列處理吧:

方式和一般建立公式有點不同,我們的目的是要在E2:E11這寫欄位裡分別顯示該項目銷售數量和單位價格的乘積,所以
第一步:先選E2:E11,也就是你想要顯示的欄位處
第二步:在fx(公式輸入欄位)填「=C2:C11*D2:D11」
第三步:按下Ctrl+Shift+Enter…不是按Enter喔
 image

結果出來了…有別於一般建立公式…鏓銷售額這個欄位上的每一個公式都是顯示 {=C2:C11*D2:D11},多了一個大括號…如果不熟悉的人會以為他是表計算順序…但這大括號可是括在等號的左邊,所以意義不同…看到這種括號,要修改的話可先具備足夠的陣列觀念…不然一定搞不懂他的用意。
再來是透過陣列的建置,因為同一種計算公式只套用一個陣列,和平常我們每個欄位一種計算內容比較起來相對省去了很多儲存空間…
image

一旦按下Ctrl+Shift+Enter,就宣告了這些欄位的命運啦,所以陣列公式又被稱為「CSE 公式」,因為您是按 CTRL+SHIFT+ENTER 鍵,將公式輸入您的活頁簿。下圖所示,只更改其中一個欄位可是不允許的…而修改其中一個欄位也會牽一髮動全身,只要修改的話一定要再按一次CSE重新宣告形成陣列。(哈哈,這也是額外的保障啦,如果使用者不知道陣列的話,他就算在陣列儲存格上誤按也不會有什麼影響,不過要提醒使用者,跳出警告視窗的話,只有按ESC才有辦法跳出來)
 image

如果你的欄位已經錯縱複雜到和資料表相當…欄和列必須常常交錯計算,那麼我建議你更要學習陣列,他會讓你在撰寫計算式時事半功倍。

和其他函數的搭配…或許上面的例子你不需要各別計算每個銷售人員的各車種銷售量,老闆只想知道總銷售額,那麼我們在B13 儲存格中可以輸入=SUM(C2:C11*D2:D11),然後一樣CSE,就可得到答案;這和你在E13處輸入=SUM(E2:E11)是一樣的結果…
附帶一提,陣列也是可以用在單一儲存格上,所以用法非常彈性。image

好了,上面就是基本的陣列使用方法,也大概提供了使用陣列的優點,其實也有比較有問題的地方。陣列不能在途中插入空白列,所以適合已經規劃好的格式,不過可以向下延伸啦。

1 則留言:

  1. 請問陣列公司是不是不能跨檔案,也就是我設陣列公式在B檔去抓A檔,一開始設好後,數值有正確計算出來,但後來我再開啟B檔,陣列公式就會出現#REF!,請問這是為何?有解嗎?

    回覆刪除

Related Posts Plugin for WordPress, Blogger...
// Dnow Function