星期五, 9月 26, 2025

[Sheets] Query()

在 Google Sheets 內可以透過 Query() 來篩選結果

Query 語法

QUERY(資料, 查詢, [標題])
  • 資料:指定資料範圍
    • 一個欄位資料必須統一是一個資料型態,布林值、數值 (包含 date/time) 或字串
    • 若資料由多個資料型態混合組成,篩選出來結果可能會不如預期
  • 查詢:該查詢必須包在雙引號內,篩選條件值可以參考特定儲存格
  • 標題:資料內有 N  Row 是標題,而不是實際資料
    • 忽略或是 -1 :Sheets 自行判斷
    • 0:沒有標題
    • N:資料內有 N  Row 是標題,EX:2 代表兩個標題

應用範例

資料來源

資料存放在 QueryData Sheet 內

範例一:

=QUERY(QueryData!$A$1:$F$7, "select * where (B <> 'Eng' and F = true) or (C > "&B1&")")

資料:資料範圍以儲存格來記錄,QueryData!$A$1:$F$7 也可以寫成 QueryData!A1:F7
查詢:
  • 第一條件:部門為 Eng (字串必須以單引號包起來) 且為資深人員
  • 第二條件:參考 B1 儲存格 (需要 & 和雙引號包起來) 輸入數值來篩選薪資高於 950 
尋找出滿足任一條件的資料,查詢結果如下圖

範例二:

=QUERY(QueryData!A:F, "select A , B , C , E where A like 'Da%'")

資料:資料範圍以儲存欄 (Column) 來記錄
查詢:使用 like 進行模糊搜尋,文字前兩個字為 Da 並指定顯示姓名、部門、薪資和年紀這四個欄位就好

範例三:

=QUERY(QueryData!A2:F7, "select B, MAX(C) group by B order by MAX(C) desc label B '部門', MAX(C) '該部門最高薪資'")

找出該部門最高薪資並根據部門最高薪資來排序資料,該彙總結果會透過 Label 來顯示標題

範例四:

=QUERY(QueryData!$A$2:$F$7, "select avg(C) pivot B")

統計各部門薪資平均值並轉置結果,pivot 語法會同時兼具 group by 功能
範例五:多層次標題

該範例重點放在 Query() 第三參數,直接記錄官方文件內範例,下圖範例資料範圍內有兩 Row 標題,當
  • Query(資料 , 查詢 , 1) :資料內的第一 Row 是標題
  • Query(資料 , 查詢 , 2) :資料內的第一 和 二 Row 是標題,以一個儲存格來顯示標題文字串接

沒有留言:

張貼留言