陣列函式入門講座之一
1、陣列公式的實現方法:
在論壇中常可以看到許多在頭尾帶有「
{}」的公式,有些朋友把這些公式直接複製貼上到單元格中,但沒有出現正確的結果,
這是為什麼呢?
其實這些都是陣列公式,陣列公式的輸入方法是將公式輸入後,不要直接按回車鍵(
enter
),而是要同時按
ctrl+shift+enter
,這時電腦自動會為你新增「
{}」的。
在論壇上,為了告訴大家這是陣列公式,故在公式的頭尾都加上了「
{}」。如果不小心按回車了,可以用滑鼠點一下編輯欄中的公式,再按
ctrl+shift+enter。2
、陣列公式的原理(自編):
陣列公式,說白了就是同時對一組或幾組數同時處理,然後得到需要的答案。運用陣列公式的最重要的原理是數於數之間一一對應
下面舉一列說明一下(例1):
a1:a10
有下列一排數:
3214
3425
3621
3312
1216
第一問:求大於
20的數的和(此題亦可用
sumif
函式來處理,這裡為的是講清陣列公式的原理)。
答案為:
181,公式為
,excel
處理的原理:
首先由if
函式進行判斷,一一對應,如果大於
20,則為本身,否則為
false
。經過if
函式的處理,原來的
a1:a10
處理後變成:
32false
3425
3621
33false
false
false
然後用sum
函式進行求和,
sum函式忽略文字。
第二問:求大於
20的數的個數(此題亦可用
countif
函式來處理,這裡為的是講清陣列公式的原理)。
答案為:
6,公式為
,excel
處理的原理:
首先由if
函式進行判斷,如果大於
20,則為
1,否則為
false
。經過if
函式的處理,原來的
a1:a10
處理後變成:
1false11
111false
false
false
然後用sum
函式進行求和
,亦可用
count
函式進行計數。
第三問:求大於
20的數的個數減去小於等於
20的數的個數的值。
答案為:
1,公式為
,excel
處理的原理:
首先由if
函式進行判斷,如果大於
20,則為
1,否則為
-1。經過
if函式的處理,原來的
a1:a10
處理後變成:1-1
1111
1-1-1-1
然後用sum
函式進行求和。
陣列函式入門講座之二(上)
10
月23日給大家出了三道題,其實就題目的難度來說,如果既會用函式,又懂些陣列公式使用的話,那麼我想這些題目應該都能解決的。下面通過對這幾道題目的分析,來講講陣列公式的運用。
第一題:求1到
1000
的和。1+2+3+4+...+997+998+999+1000=
?這題,思路非常簡單,就是如何生成乙個1到
1000
這樣子的陣列,然後全部加起來。所以,如果要用陣列公式的話,你就得先問自己,到底需要乙個怎樣的陣列才能達到目的。那麼,接下來,就要考慮,通過什麼函式,才能達到這個目的。就這題來說,就會使用
row()
函式,乙個取得引用行號的函式,
=row(1:1000)
,通過這個函式就能生成這樣乙個陣列
,然後用
sum()
進行求和,就得到答案了。額外提醒大家的是,通過
sum()
這個函式,出來的結果就是乙個值,不會是陣列的。(
column()
函式也可以,這裡就不講了)。
答案:
(
chenjun
兄另一種使用
indirect()
的做法,是為了避免行範圍有行刪除、插入,這是在實際使用中出現問題地解決辦法,這次暫不討論
)。第二題:
求在1到
1000
中,是7
的倍數的數的和,包括
7在內。
7+14+21+28+...=
?這題,是在上題的基礎上,演變而來的,也就是乙個陣列的處理的問題。既然得到了1到
1000
這樣子的陣列,那麼如何得到
7的倍數的數的陣列?方法很多,下面一一講解:用的最多的方法是:
因為是求和,把不符合條件的數字,變成
0,然後求和,就可以了,
excel
是如何處理的,請看看陣列講座一。把公式寫的標準化一些:
其中,mod(row(1:1000),7)
是對row(1:1000)
生成的陣列
的再處理,再生成的陣列,從表面上來看新生成的陣列
,一點用都沒有,但實際上包含了
能不能被
7整除的資訊,即如果是
1,那麼對應的這個數不能被
7整除,而如果是
0的話,能被
7整除,這樣
if(mod(row(1:1000),7)=0,row(1:1000),0)
再次生成乙個我們都想要得陣列,那就是
,這樣在用
sum()
就能得到索要的答案了。
從上面可以看出,在陣列公式中,如果有
if()
參與,條件是陣列公式,對或錯有乙個是陣列,或都是陣列的話,需要一一對應。這例中,對是陣列,他就和條件一一對應,才會產生
的結果。
其他的方法:
思路:直接生成乙個
7倍數的陣列,然後做乙個
<1000
的判斷,再求和。
思路:使用
weekday()
將陣列轉化為乙個以
作為輪迴的陣列,正好和
7的倍數相呼應(當然如果用
也是可以的)。然後除以
7後,再
trunc()
後,變成
這樣的陣列,然後和
相乘,得出結果。
這裡,需指明的是,我在用
weekday()
的時候,忽略了乙個引數,那是預設值,星期一是
1,以此類推;而
trunc()
也忽略了乙個引數,預設值為
0,即取整。
所以,思路從某種程度上講,決定公式的使用方法,有些人排出來的公式很複雜,有些人很簡單,就是這個道理。大家在平時學用公式的時候,不僅要學習函式的使用方法,更主要的是要學習思路,不要只求結果,不求過程。
最後一題,我想詳細分析一下,加上最近有點忙,準備放在下週末,請大家諒解。
excel if in函式 EXCEL入門IF函式
if英文意思是 如果 假如這麼樣,就那麼樣。if it rains tomorrow,i ll stay at home.如果明天下雨,我就呆在家裡。excel中的if函式同樣表示假設,但它多考慮了一步。if 明天是否下雨,下雨呆家裡,不下雨出去浪 判斷條件 明天是否下雨 結果1 是 呆在家裡 結果...
大連公尺可多 Excel講座
主辦單位 大連公尺可多種子公司 擁有270多年歷史的法國威馬種業公司 vilmorin 成立於1743年。她一直致力於開發 生產和銷售創新優質的蔬菜和樹木種子,為專業使用者服務。源於法國的威馬公司,植根歐洲,放眼全球。如今已發展成為一家國際化的種子企業,在五大洲建立了6家分公司,在10多個國家設立了...
陣列元素相乘 Excel 小技巧 陣列入門
陣列,簡單理解為具有某種聯絡的多個元素的組合。舉個例子,初三一班裡有35位同學 元素 那這35位同學可以統一用初三一班直接命名,別人說初三一班,其實質意義就是裡面的35位同學。目錄頁 1.單列單行 vs 單列單行 方向分布 橫向 縱向 例1 例2 例3 2.單列多行 vs 單列單行 例4 3.多列單...