Chapter 13. 函式 (八):QUERY › 13.1 QUERY 基本用法
13.1 QUERY 基本用法
QUERY 是用 Google 視覺化 API 搜尋語言 完成的,可以輕鬆的針對結構化資料進行各種分析。本章將由淺入深的介紹 QUERY 的各項語法,並在最後一節的進階應用示範如何處理複雜的資料,讓大家之後使用 Google Sheets 進行資料分析,或是之後學習使用 SQL 處理更大量的資料時更得心應手!另外 QUERY 是 Google Sheets 獨有的函式,Excel 目前沒有此功能,將不特別使用 Appendix 說明之。
Google 視覺化 API 搜尋語言是一套由 Google 開發的語言,其語法和 SQL 非常類似,因此若之前有使用過 SQL 的話應該可以非常得心應手學習此章的內容,而實務上 QUERY 也相較於其他函式直覺不少,而且可以只使用一個函式就完成複雜的操作與計算。在了解 Google 視覺化 API 搜尋語言之前,先來看看 QUERY 的用法:
語法 | QUERY (資料, 查詢, [標題]) |
輸入 |
|
輸出 | 資料 依據 查詢 整理後的輸出,會占用多格儲存格 (所以是陣列公式)。 |
接下來各節將會介紹各項 查詢 的語法,會使用第 1 章的會員資料檔和交易記錄檔進行各項示範,兩檔案已分別被命名為會員資料 (A:I)、交易記錄 (A:J)。本節將先介紹 select、匯總函式及四則運算三種語法 ,使用方法如下:
語法 | 說明 |
select | select 欄位 [, 欄位...] 放在最開頭,後面接要選取的欄位,選取方式有以下兩種:
|
匯總函式 | sum / avg / count / min / max (欄位) 可以在 select 選擇的欄位中使用上述的匯總函式,但因為匯總後會變成單一值,因此不能將特定欄位與匯總欄位同時選取,例如 sum(A)、avg(C)。 |
四則運算 | 執行跨欄位內容計算,僅適用於數值欄位,例如 select A+B。 |
以下使用四個範例說明上述語法的使用方式:
- 選取所有會員資料
公式
=QUERY(會員資料,"select *")
解說
直接使用 "select *" 即可。
- 計算交易記錄 J 欄的總和
公式
=QUERY(交易記錄,"select sum(J)")
解說
輸出會出現 sum 售價,後續章節會說明如何更改或移除輸出的表頭名稱。
- 選取交易記錄的 H、I、J、I × J 四欄
公式
=QUERY(交易記錄,"select H,I,J,I*J")
解說
四則運算可以與一般的欄位一起輸出。
- 計算交易記錄的 I × J 欄的總和
公式
- 方法一:=SUM(QUERY(交易記錄,"select I*J"))
- 方法二:=QUERY(QUERY(交易記錄, "select I*J"), "select sum(Col1)")
解說
因為匯總函式不能和四則運算一起使用,在此可用上述兩種方式解決:
- 方法一:使用 QUERY 計算各列 I × J 欄的值,再使用 SUM 將 QUERY 輸出的陣列加總,會輸出 83,694。
- 方法二:使用兩層 QUERY 完成,內層的 QUERY 先各列 I × J 欄的值,外層 QUERY 再將內層計算的結果加總,但因為內層輸出的結果並沒有欄位名稱,因此使用 Col1 代替,會輸出第一列表頭為 sum product(數量售價),第二列為 83,694。
在這一節介紹了如何選取欄位,並對欄位進行簡單的計算後,下一節將介紹如何對資料進行篩選,再執行下一步的計算與欄位選取。