對于Excel中的“數組”,我在最開始接觸的時候覺得很難,理解不了它的原理。雖然會用數組寫出來,但是很多時候完全不理解為什麼要那樣寫。後來我看了一些資料,然後重複聽老師講課,最後慢慢理解了。到現在也有幾個月的時間沒有再看,但是最近做了一些有關數組方面的例題,發現很多以前無法理解的問題,現在豁然開朗。可能是過了一段時間再去看,忽然就理解了很多以前無法理解的問題。下面我主要介紹一些我自己理解的數組運算。
在Excel中,數組可以理解為多個單元格的集合。單行數據,單列數據(一維數組),多行多列數據(二維數組),都可以是一個數組。如下圖所示:
上圖中數組1和數組2為一維數組,數組4和數組5為二維數組。
數組是要用花括号(即{})表示的,例如前面提到的數組2是{1,2,3,4},數組4是{1,4,7;2,5,8;3,6,9},在數組4的表示中,7和8後面跟的是分号,表示從下個值開始就要換行了。在Excel中,使用到的符号都要是英文格式下的。
數組分為一維數組和二維數組,另外,數組也可以進行加減乘除四種常見的運算。數組是一個比較常見而且好用的工具,在處理一些問題時,使用數組會更加方便快捷。所以我想用一種比較簡單的方法結合例子讓大家清晰地理解數組的計算方式以及數組的運算原理。
在數組中會提到維度和元素的概念,維度就是我們所說的行方向或是列方向,而元素即是我們數組中的每一個值。比如說在上面所說的數組1,它的維度為列,元素是1、2、3、4,元素的個數是4。
兩個數組經過計算,結果即為取兩個數組的行數最大值,列數最大值。例如,上面的數組1與數組2相乘,結果即為4行4列。
一個值與數組相乘時,所得結果為數組的行數與列數,例如下面的兩個例子。它的運算原理即為數值自動填充為與數組相同的行數與列數,然後再一一對應相乘即可。
一個值和數組相乘
同一緯度計算時,要保證行數是相同的,或者列數是相同的。
一維數組相乘(同一維度)
不同維度計算時,所得結果為兩個數組的行數最大值,列數最大值,例如下面的數組 a (3行1列)和數組 c (1行5列),結果即為3行5列。它的運算原理即為數組a自動填充為5列,把數組c自動填充為3行,自動填充後數組a和數組c均為3行5列,然後一一對應相乘即可。
一維數組相乘(不同維度)
如下圖所示,一維數組與二維數組相乘,最終得到的結果與原始二維數組一樣都是2行3列的數據。它的運算原理為一維數組自動填充為2行,然後一一對應相乘。下面的例子是行方向的一維數組與二維數組均有3列,隻有這樣,計算結果才是正确的。如果是列方向的一維數組與二維數組進行運算,那就要保證一維數組的行數與二維數組的行數相同,隻有這樣使用數組進行運算,結果才是正确的,不會出現錯誤。
二維數組與二維數組相乘時,要保證兩個數組的行數與列數均相等,這樣運行出來的結果才是正确的。
二維數組與二維數組相乘
總的來說,要進行數組之間運算。遵循以下幾點:
1.用花括号表示;
2.分号表示從下個數據開始要換行;
3.所有符号都要用英文格式下的;
4.用Ctrl shift enter結束出結果;
5.運行結果為兩個數組的行數最大值,列數最大值;
6.修改數組公式。選擇任意一個數組公式單元格,按F2進入編輯模式,然後修改公式後,按Ctrl Shift Enter結束編輯,得出結果。
7.删除數組公式。選擇任意一個數組公式單元格,按F2進入編輯模式,然後删除公式後,按Ctrl Shift Enter結束編輯。
數組就是單元的集合或是一組數據的值集合。可以寫一個以數組為參數的公式,即數組公式,就能通過這個單一的公式,執行多個輸入的操作并産生多個結果——每個結果顯示在單元中。數組公式可以認為是Excel對公式和數組的一種擴充,換一句話說,是Excel公式在以數組為參數時的一種應用。與單值公式的不同之處在于它可以産生一個以上的結果。一個數組公式可以占用一個或多個單元。
Excel中數組公式非常有用,尤其在不能使用工作表函數直接得到結果時,數組公式顯得特别重要,它可建立産生多值或對一組值而不是單個值進行操作的公式。輸入數組公式首先必須選擇用來存放結果的單元格區域(可以是一個單元格),在編輯欄輸入公式,然後按Ctrl Shift Enter組合鍵鎖定數組公式,Excel将在公式兩邊自動加上花括号“{}”。注意:不要自己鍵入花括号,否則,Excel認為輸入的是一個正文标簽。
在如下表格中,怎樣找出平均分高于90的少數民族。想要找出,可以用如下兩種方法,一種是普通公式求解,然後另一種用數組公式求解。
平均分高于90的少數民族,這是平均分高于90和是少數民族同時滿足的情況下,才算是符合要求的。這樣的話就要用到and函數,and函數是所有條件同時滿足的情況下,才是true。然後再用一個if函數,結果為true的符合,為false的不符合。即公式如下:
結果如下所示:
一般方法
這一題要得到的結果是一列值,所以在開始做之前要先選中E2:E11這一列單元格。平均分高于90的少數民族,這是平均分高于90和是少數民族同時滿足的情況下,才算是符合要求的。在數組公式中,and用 * 來代替,or用 來代替,所以這一題就要先用到 * ,然後再用一個if函數,結果為true的符合,為false的不符合。即公式如下:
然後不要按回車鍵出結果,要按組合鍵Ctrl shift enter 出結果。
所得結果如下:
法二數組公式
舉個簡單的例子:求出王姓女職工的工資之和
這一題要求的是工資之和,及最後的結果是一個值,所以在開始做之前不需要要選中一列單元格。王姓女職工工資之和,這是要找出王姓的,并且是女職工的工資,然後相加就可以。即公式如下:
然後不要按回車鍵出結果,要按組合鍵Ctrl shift enter 出結果。
所得結果如下:
例子結果
逐步理解如下:
第一步,先用left函數取出姓名列中的姓,然後取出=”王“的,所得為”王“的結果為true,不是為false;第二步,在性别列中,找出女性,所得為女的結果為true,不是為false;第三步,取出每個人的工資;第四步,把前三步所得結果相乘,得出的是滿足王姓女職工的工資,不滿足的即為0;第五步,把第四步得出的結果相加,得出的就是王姓女職工的工資之和。
例子逐步理解
本文章為原創:技術文章—邏輯。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!