[數據分析#36] Google Sheet Arrayformula 怎麼用?5 大常用函數解析

什麼是陣列函數?

一般常見的函數,像是 if()、sumifs(),這些都不是陣列函數,每次輸入函數之後,運算出來的值都只會出現在單一儲存格。

陣列函數的神奇之處就是,我們回傳的是陣列,陣列是一串數值,所以會出現在多個儲存格裡,所以你可能會發現,寫完陣列公式之後,出現了一整個報表,而不是一般常見函數的單一儲存格

先定義一下行與列

  • 行:往右的是行
  • 列:往下的是列
row (第一行)ow (第一行)ow (第一行)
row (第二行)row (第二行)row (第二行)
column (第一列)column (第二列)
column (第一列)column (第二列)
column (第一列)column (第二列)

如何在 Google Sheet 中寫出陣列?

  • 剛剛有提到,陣列是一串數值,因此如果要呼叫陣列出來,要用 { } 大括號,而不是 ( ) 平常使用的小括號
  • 範例一:寫出單行陣列,往右展開
={1, 2, 3, 4}
  • 範例二:寫出 2×2 的表格,也就是兩行兩列:分號在陣列內是跳行的意思,因此會有兩行兩列
={1, 2; 3, 4}
麼是陣列函數?google sheet array 解釋及應用
紅色為 array{} 公式處
  • 範例三:陣列 + 引用多儲存格
    • 如果引用的儲存格,中間用逗點隔開,就會跳下一列
    • 如果引用的儲存格,中間用分號隔開,就會接在同一列下面
={G19:G21,H19:H21,I19:I21}
={G19:G21;H19:H21;I19:I21}
陣列是什麼?陣列 + 多儲存格解釋
紅色為 array{} 公式處
  • 範例:陣列 + 單儲存格
    • 以 sum() 為例,一個 sum() 會回傳一個加總後的值,因此兩個 sum() 會回傳兩個加總後的值,以此類推。如果用逗號隔開,就會在同一行,如果用分號隔開,就會在同一列
    • 這裡用一個簡單的表格來完美呈現逗號跟分號的區別
={SUM(G32:G34),sum(H32:H34),sum(I32:I34)}
={sum(G32:I32);sum(G33:I33);sum(G34:I34)}
陣列是什麼?陣列 + 單儲存格解釋
紅色為 array{} 公式處

陣列的優缺點分析

優點

  1. 以數據分析師的角度,用陣列可以減少我們寫公式的次數,節省時間,例如:平常加總需要寫 100 次,現在用陣列之後,只要寫 1 次
  2. 減少寫公式的次數,降低報表的錯誤率:每一個手動就會增加報表的錯誤率,因此減少寫公式的次數,就是增加正確率,也讓維護報表的成本變低
  3. 如果有新的數據加入,陣列公式也可以自動跑出結果
  4. 如果想要對兩張 google sheet 或是不同工作表處理,可以用陣列及分號的形式:引用多工作表、多數據

缺點

  1. 比較難理解,需要花一點時間理解陣列的運作:上手之後,可以省下很多時間「逐一」檢查公式的錯誤
  2. 並不是所有熟悉的基本函數都可以用陣列:不過,幾乎都可以找到替代方法

Arrayformula 如何使用?搭配常用的函數一起使用!

  1. 如何讓非陣列公式發揮作用?Arrayformula 的公式除了可以直接打 Arrayformula() 呼叫外,也可以用 Ctrl+Shift+Enter 這三個鍵呼叫出來
  2. 只要呼叫出 Arrayformula,非陣列公式 (有些公式不支援) 就可以開始以陣列的形式處理數值

範例一:IF & ARRAYFORMULA

=ARRAYFORMULA(if('RAW Data'!E:E>18,1,0))

範例二:加減乘除 +-×÷ & ARRAYFORMULA

=ARRAYFORMULA('RAW Data'!M2:M*'RAW Data'!P2:P)

範例三:統計函數 SUM & ARRAYFORMULA

=ARRAYFORMULA(sum('RAW Data'!N2:N*'RAW Data'!P2:P))

範例四:條件函數 SUMIF & ARRAYFORMULA

  • 單一條件
=ARRAYFORMULA(sumif('RAW Data'!F:F,A:A,'RAW Data'!N:N))
  • 多條件
=ARRAYFORMULA(sumif('RAW Data'!F:F&'RAW Data'!G:G,A:A&B:B,'RAW Data'!N:N))
範例四:條件函數 SUMIF & ARRAYFORMULA

如何將多餘儲存格改為空白?

  • 方法一:加一個 IF 條件,判斷有值才運算,否則回傳空白
=ARRAYFORMULA(if(len(A:A),sumif('RAW Data'!F:F&'RAW Data'!G:G,A:A&B:B,'RAW Data'!N:N),""))
  • (推薦) 方法二:或是一開始就在 SUMIF 中加入 FILTER,只運算條件不等於空白的 (<>””)
    • 如果你還不清楚 FILTER 公式是什麼?可以看一下這篇:Google Sheet FILTER 用法,FILTER 也是在製作報表的時候,很實用的公式之一
=ARRAYFORMULA(sumif('RAW Data'!F:F&'RAW Data'!G:G,filter(A:A&B:B,A:A<>""),'RAW Data'!N:N))

SUMIFS 不支援 ARRAYFORMULA,怎麼辦?

  • 因為 SUMIFS 的公式邏輯是從一整個數列裡面,找到符合條件的選項之後加總,所以公式當初設計的邏輯,本來就只會回傳一個值為結果
  • SUMIFS 不支援 ARRAYFORMULA,可以用 SUMIF 多條件寫法代替!
=ARRAYFORMULA(sumif('RAW Data'!F:F&'RAW Data'!G:G,A:A&B:B,'RAW Data'!N:N))

範例五:查找函數 VLOOKUP & ARRAYFORMULA

  • VLOOKUP 查找單行
=ARRAYFORMULA(vlookup($A2,'RAW Data'!$A:$D,2,0))
=ARRAYFORMULA(vlookup($A2,'RAW Data'!$A:$D,3,0))
=ARRAYFORMULA(vlookup($A2,'RAW Data'!$A:$D,4,0))
  • VLOOKUP 查找多行
=ARRAYFORMULA(vlookup($A2,'RAW Data'!$A:$D,{2,3,4},0))
範例五:查找函數 VLOOKUP & ARRAYFORMULA

總結

  • Array (陣列) 在 Google Sheet 中非常實用,可以減少我們寫的公式數量
  • Arrayformula 其實不難,只要將他加上我們已經熟用的基礎公式 (IF、SUMIF、SUM…) 後,就等於學會了陣列在 Excel 或是 Google Sheet 中的作用

如何練習 Google Sheet Arrayformula 函數?

  1. 複製一份今天的 Google Sheet 教學文件
  2. 在我整理好的幾個工作表中,練習這 5 個使用範例

更多學習資源推薦

如何使用這個網站?我的數據分析文章導覽!裡面也會分享更多實用 Google Sheet 教學:本站數據分析文章導覽 及 更多 Google Sheet 實用文章教學

【1 對 1 免費諮詢】數據分析師 0~1 培訓班陪你一路到轉職成功!

hi 我是 Lisa

你也是 0 經驗、沒有相關背景,但也想要轉職數據分析師,或運用數據分析,提升在領域的專業度嗎?

-

你是否也覺得,數據分析的網路學習資源很多,但是多到不知道從哪裡開始?

學了很多工具,但學完了,問題才真正開始,不知道業界怎麼使用?又該如何面臨工作跟面試?

-

我在 2019 年從營運專員的職位轉職到數據分析師

在這之後,因為數據分析,也讓我快速建構不同領域的知識:行銷、營運、商業策略、產品、網頁

轉職過程中,花了很多時間成本摸索

我發現,學數據分析最快的方式是:

  1. 確認自己跟市場需求之間的差距:訂定轉職策略及了解數據分析師的工作方式
  2. 以業界應用的角度學習工具:包括數據工具及分析用思維架構,並且如何高效運用
  3. 建立一個商業上的真實專案,並且得到回饋:打造屬於你及貼合職缺需求的作品集和專案
  4. 打造一個高效履歷跟面談:透過高價值包裝術拿下面試、成功獲得數據行業的門票

當初如果我有這套系統思維,應該可以在短時間內轉職,馬上拿到進入業界的門票

-

現在,我想把這套完整課程分享給你

這是專門為了 0 經驗、沒有相關背景的轉職者所設計

不需要去考研究所、不需要花大錢準備出國讀書

可以用最快的時間準備轉職、拿到門票!

-

如果你正在準備轉職數據分析師,且試圖找過解決辦法卻始終治標不治本!歡迎跟我預約免費 1 對 1 諮詢,我會在諮詢時,了解你的需求並且評估我是否可以協助到你!

電子書 職場人必學的數據分析術

Lisa Wu

Hi 大家好!我是喜歡探索身心靈健康及平衡的數據分析師 Lisa Wu!這個網站會幫助你:利用數據分析 (理性) 及 身心靈平衡 (感性) 的系統,去達成人生目標!如果你對我的人生系統工具有興趣,歡迎聯繫我:couplehonest@gmail.com

This Post Has 2 Comments

Comments are closed.