一起來認識數組公式(最基礎)(3)

上接:一起來認識數組公式(最基礎)(2)第三部分:數組公式的計算學習繼續,在對數組有了基本的認識後,這貼我們將通過一些例子來講一講數組公式是怎麼計算的。1、行列數相同數組的運算

3-1.jpg (43.9 KB)2009-12-11 17:19數組1+數組2,這是一個多單元格的數組公式,第一個數組的第一個元素與第二個數組的第一個元素相加,結果作為數組公式結果的第一個元素,然後第一個數組的第二個元素與第二個數組的第二個元素相加,結果作為數組公式結果的第二個元素,接著是第三個元素……直到第N個。

3-2.jpg (29.55 KB)2009-12-11 17:19這是橫向的一維數組的計算,原理同上。

3-3.jpg (46.55 KB)2009-12-11 17:19這是二維數組與二維數組進行計算,生成一個新的二維數組的多單元格數組公式。同樣的計算過程,第一個數組的第一行的第一個元素與第二個數組的第一行的第一個元素相乘,結果為數組公式的結果的數組的第一行的第一個元素,接著是第二個,第三個……直到第N個。規律很簡單:兩個同行同列的數組計算是對應元素間進行運算,並返回同樣大小的數組。正如穿鞋要穿合腳的才走得了路一樣,在公式或函數中使用數組時,運算對象或參數的數組維數要匹配,否則計算會出錯。教室里,第一排的有8個 同學,第二排有9個同學,老師說:「第一排和第二排的同學交換作業,互相檢查。」第二排的第9個同學和誰交換?這就是數組的不匹配。數組不匹配時,工作就 不能完成了。你可以試著改一改數組的參數試試。2、數組與單一的數據的運算

3-4.jpg (30.96 KB)2009-12-11 17:19這相當於在E42單元格輸入公式=A42*$C$42,然後下拉複製公式實現。

3-5.jpg (26.44 KB)2009-12-11 17:19等同於在B56輸入公式「=B52+$B$54」,然後右拉複製公式實現。

3-6.jpg (37.39 KB)2009-12-11 17:19等同於在C67單元格輸入公式「=A60+$E$60」然後右拉下拉複製公式實現。不難看出:一個數組與一個單一的數據進行運算,是將數組的每一元素均與那個單一數據進行計算,並返回同樣大小的數組。3、單列數組與單行數組的計算

3-7.jpg (91.74 KB)2009-12-11 17:19兩個數組相加,查看結果是幾行幾列:在任意單元格輸入公式「=A80:A83+B87:E87」,抹黑公式,按F9鍵,可看到公式的計算結果為數組 「{110,210,310,410;120,220,320,420;130,230,330,430;140,240,340,440}」通看看分號 與逗號,我們知道這是一個四行四列的數組,選擇一個四行四列的單元格,輸入公式「=A80:A83+B87:E87」,三鍵結束,可看到返回的結果為:

3-8.jpg (35.53 KB)2009-12-11 17:19相當於在E80輸入公式「=$A80+B$87」右拉下拉複製公式的結果。單列數組與單行數組的計算:A、計算結果返回一個多行列的數組;B、返回數組的行數同單列數組的行數相同、列數同單行數組的列數相同。C、返回數組中第R行第C列的元素是單列數組的第R個元素和單行數組的第C個元素運算的結果。4、行數(或列數)相同的單列(或單行)數組與多行多列數組的計算(1)單列數組的行數與多行多列數組的行數相同時:

3-9.jpg (46.51 KB)2009-12-11 17:19(2)單行數組的列數與多行多列數組的列數相同時:

3-10.jpg (44.89 KB)2009-12-11 17:19計算規律同單行單列的數組計算的規律大同小異:A、計算結果返回一個多行列的數組;B、返回數組的行、列數與多行多列數組的行列數相同;C、單列數組與多行多列數組計算時,返回的數組的第R行第C列的數據等於單列數組的第R行的數據與多行多列數組的第R行第C列的數據的計算結果;D、單行數組與多行多列數組計算時,返回的數組的第R行第C列的數據等於單行數組的第C列的數據與多行多列數組的第R行第C列的數據的計算結果。=======留給你的思考題=======講到這裡,我們可以暫停一下進度。課間休息,插播一段廣告:你可以喝杯水,聽聽音樂,然後我們來看幾個例子:圖1:

3-11.jpg (52.41 KB)2009-12-11 17:19圖2:

3-12.jpg (50.09 KB)2009-12-11 17:19圖3:

3-13.jpg (46.46 KB)2009-12-11 17:19上面的三張圖,第一個公式是我們前面講的例子,第二個公式是在第一個公式的基礎上對參與計算的數組區域進行了修改,但是,兩個不同參數的公式,返回的結果 卻都是一樣的。這裡我只是舉了三個例子,你可以把前面我們講過的公式里的數組參數都修改修改,什麼情況下,會返回相同的結果呢?它們又有什麼共同的地方? 知識總是光顧那些善於總結和發現的人。否則,踩著別人的腳印走,想要看到別人沒看到的風景,你要等到猴年馬月?好了,我也仿小學老師的口氣問問大家:「為什麼兩個不同的公式,返回的結果都是一樣的呢?從上面的圖,你發現了什麼?把你的發現說給你的夥伴聽一聽。」這就是你今天的作業,如果你是真心想想學數組公式的,記得跟貼回復!5、行、列數不相等的數組計算(1)行數不相等的單列數組與與多行列數組的計算

3-14.jpg (36.17 KB)2009-12-11 17:19(2)列數不相等的單行數組與多行多列數組的計算

3-15.jpg (35.7 KB)2009-12-11 17:19(3)行、列數不相同的兩個多行多列數組的計算

3-16.jpg (38.38 KB)2009-12-11 17:19有了對前面例子的分析,再來看這三個例子就相對簡單了。它們的計算規則和前面都是一樣的,不難看出:A、公式返回一個多行多列數組;B、返回數組的行數與參與計算的兩個數組中行數較大的數組的行數相同,列數與較大的列數的數組相同;C、返回數組的大於較小行數數組行數、大於較大列數數組列數的區域的元素均為#N/A。有效元素為兩個數組中對應數組的計算結果。需要提醒一點的是,對會返回#N/A的數組,在進行再計算和處理時,考慮對#N/A值作相應的處理!比如我們想對上面數組與數組2相加後的結果進行求和:

3-17.jpg (48.19 KB)2009-12-11 17:19正確的公式(數組):=SUM(IF(ISNA(A213:B216+D213:F215),0,A213:B216+D213:F215))通過ISNA函數對返回的數組裡的各個元素進行了判斷和處理,把把有的#N/A值替換成數值0,最後再用SUM函數對所有數值進行求和。我們說,數組計算時,得注意行列數的匹配,其實如果了解了數組的計算原理後,能正確處理那些返回的#N/A值的話,很多時候,並不會出錯的。
推薦閱讀:

認識正確的服藥時間
認識金庸金大俠
商家挖的這些坑,你認識幾個
這些才幾歲卻有不俗演技的小朋友,你認識哪些?
抗衰老?你必須先認識這幾個成分

TAG:公式 | 認識 | 數組 | 基礎 |