QUERY 函式大解析(十):怎麼處理有大小寫區別的資料

更新於 發佈於 閱讀時間約 6 分鐘
今天假設有個表格長這樣:
我想找到居住地是「台北」的姓名資料,預計會得到前三列(章OO、謝OO、余OO)的值。可是,如果我們按照之前學的 WHERE 表達式,寫下:
=QUERY(資料!A:B, "SELECT A, B WHERE B = 'Taipei'")
你會得到的結果只會有一筆:
這是因為 Google QUERY 會辨識字母的大小寫(case-sensitive),只會把符合「Taipei」這個拼寫規則的資料回傳給你,其他大小寫的組合就不會回傳了。
那如果我想要無視大小寫,把居住地是「Taipei」的資料都全部回傳回來,也就是含有任何大小拼寫可能的資料回傳回來:
  • Taipei
  • TAIPEI
  • taipei
  • TaIpEi
  • tAiPeI
  • ... 等 N 個排列組合
這樣的話要怎麼辦呢?把全部拼寫的可能性一個個列出來的確是可以,但是也太麻煩了:
WHERE B = 'TAIPEI' OR B = 'TAIPEi' OR B = 'TAIPeI' OR B = 'TAIpEI'...
除了再回頭把資料整理得更好一點,我還有什麼方法嗎?——有!今天想跟你分享怎麼無視字母大小寫,照樣能執行 WHERE 語法的妙招。
如果還不熟悉什麼是 SELECT 和 WHERE 的話,歡迎你回到 QUERY 函式大解析(二):WHERE 複習一下,再過來看看喔!
我在方格子上寫了一系列使用 QUERY 的教學文章,也歡迎你來看看:

UPPER 大寫濾鏡、LOWER 小寫濾鏡

在之前的 QUERY 函式大解析(七):簡易日期時間控制術,我們提到了一種叫純量函式(Scalar Function)」的東西,簡單來說你可以把這個函式想像成一種濾鏡,把資料透過去濾鏡後就是另一種顏色或形狀。比如說:
  • 我有個資料叫 apple,用「大寫濾鏡」就可以把 apple 轉成 APPLE。
  • 我有個資料叫 TEA,用「小寫濾鏡」就可以把 TEA 變成 tea。
跟風一下~
那麼我們這次會用到的,就是這些濾鏡裡面的大寫濾鏡小寫濾鏡了,大寫的叫 UPPER()小寫的叫 LOWER()
使用的方法很簡單,只要在欄位字母放到括號裡面,就會轉換大小寫了。像是:
把回傳的 A 欄跟 B 欄轉換成大寫:
"SELECT UPPER(A), UPPER(B) ... "
把回傳的 A 欄跟 B 欄轉換成小寫:
"SELECT LOWER(A), LOWER(C) ... "
假如我們現在有這樣的資料:
用 UPPER() 把 A2 以下所有的資料轉換成大寫的話:
LOWER() 轉換成小寫,也是一樣的道理:

解法:WHERE + 濾鏡

了解上面這兩個濾鏡的運作方法後,我們離答案就越來越近了!除了 SELECT,我們也當然可以把濾鏡放在 WHERE 語句裡面:
A 欄資料一律轉換成大寫後,
只要 A 欄任何資料符合「ABC」,就把所有資料回傳:
"SELECT * WHERE UPPER(A) = 'ABC' ..."

C 欄資料一律轉換成小寫後,只要符合「xyz」,
只要 C 欄任何資料符合「xyz」,就把所有資料回傳:
"SELECT * WHERE LOWER(C) = 'xyz' ..."
換句話說,在執行 QUERY 的時候,UPPER(A) 跟 LOWER(C) 會先把搜尋範圍內的資料先一律轉換成大小寫,再跟等號後面的文字比較。
那麼,回到我們的問題,要怎麼無視大小寫,取得「Taipei」的資料?
(這裡是教學表格的「資料」工作表唷)
我們用 UPPER 濾鏡把 B 欄的資料都轉成大寫,再讓它等於「TAIPEI」,問題是不是就解決了?來寫個語法看看:
=QUERY(資料!A:B, "SELECT A, B WHERE UPPER(B) = 'TAIPEI'")
嗚喔喔喔喔,成功了!當然,如果你想要用 LOWER() 也可以,記得把後面的關鍵字也改成小寫「taipei」就好。另外經過實測後,發現幾件事:
1) WHERE 的其他搜尋方法也適用
這邊說的其他方法有 contains、starts with、ends with、match、like 這些,也都可以搭配剛剛提到的 UPPER() 和 LOWER() 的技巧。
例如,想找到含有「Taipei」的資料(例如台北跟新北,Taipei、New Taipei):
=QUERY(A:B, "SELECT * WHERE UPPER(B) contains 'TAIPEI'")
又或是以台(Tai)開頭的資料:
=QUERY(A:B, "SELECT * WHERE UPPER(B) starts with 'TAI'")
都可以成功篩選到資料的!
2) 其他有變音符號的字母(ä、ü、ö、è、ç、ž...)也適用。
3) 經實測有大小寫的字母系統都似乎可以用(拉丁字母、西里爾字母、希臘字母、科普特字母、亞美尼亞字母等),如果你發現其他文字有大小寫、卻不能用的話,歡迎跟我說!
我一樣把這次的教學試算表放在這裡,歡迎複製一份到你的雲端硬碟上,一起練習吧!

如果你喜歡這次的文章,歡迎你透過這些方法支持我:
・按下愛心、按下儲存
・留言告訴我你的想法
・加入喜特先生的官方沙龍,即時看到我發布的教學
・付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
・追蹤喜特先生的 Facebook
・按這邊小額贊助我的創作!
想要看更多文章,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!
我是喜特先生,Mr. Sheet,我們下個教學見!
此篇文章會顯示動態置底廣告
為什麼會看到廣告
avatar-img
14.6K會員
148內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
喜特先生官方沙龍 的其他內容
相對參照、絕對參照是新手必定要了解的重要觀念,歡迎來看看瞧瞧唷!
上次說完了 ARRAYFORMULA 的基本原理,這次來看看怎麼應用它們!一起來看看!
或許 ARRAYFORMULA 是個聞風喪膽的函式,但是你懂了它、它就會幫你!一起來看看 ARRAYFORMULA 是什麼吧!
什麼,IMPORTRANGE 的進階應用還有第二招!來看看 IMPORTRANGE 可以怎麼跟 QUERY 結合,進一步篩選即時匯入的資料。
在今天的這篇教學,我想列舉五種試算表變慢的可能原因、還有相對應的解決方案!如果你遇到這樣的問題,或許這篇教學可以幫你從龜速深淵中拉出來,邁向健康順暢的喜特人生!
有個可以在 Google 試算表上做單位換算的函式,叫做「CONVERT」,來看看到底怎麼快速轉換單位、免手算吧!
相對參照、絕對參照是新手必定要了解的重要觀念,歡迎來看看瞧瞧唷!
上次說完了 ARRAYFORMULA 的基本原理,這次來看看怎麼應用它們!一起來看看!
或許 ARRAYFORMULA 是個聞風喪膽的函式,但是你懂了它、它就會幫你!一起來看看 ARRAYFORMULA 是什麼吧!
什麼,IMPORTRANGE 的進階應用還有第二招!來看看 IMPORTRANGE 可以怎麼跟 QUERY 結合,進一步篩選即時匯入的資料。
在今天的這篇教學,我想列舉五種試算表變慢的可能原因、還有相對應的解決方案!如果你遇到這樣的問題,或許這篇教學可以幫你從龜速深淵中拉出來,邁向健康順暢的喜特人生!
有個可以在 Google 試算表上做單位換算的函式,叫做「CONVERT」,來看看到底怎麼快速轉換單位、免手算吧!
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
※ 什麼是WHERE? 使用 WHERE來設定條件,可以幫助我們縮小查詢結果的範圍,取得想要的結果。 ※ 語法: ※ 解析順序: From:先看是哪一張table→table裡面符合Where指定條件的record→再看Select指定的是那些欄位→再根據那個欄位進行排序。 ※ 使⽤⽅
Thumbnail
※ 語法 SELECT select_list FROM table_name​ ※ 解析順序 From:從哪裡拿? SELECT:要 "拿什麼" 資料? ※ 使用場景: Single column(單一欄位): Multiple column(多個欄位): All colu
Thumbnail
這篇文章主要是介紹了SQL查詢效能調校的方法,針對索引最佳化做了整理和分享,並提供了一些注意事項和建議。
Thumbnail
在POWER QUERY從0到1 #6,就有介紹過資料合併這個功能。 #6 從0到1的POWER QUERY 資料合併 神似VLOOKUP但比他好用100倍 資料合併很神似函數的VLOOKUP,但除了單純以VLOOKUP方式查找合併資料之外,總共有6種不同的合併方式。 用一個簡單的範例來做
Thumbnail
在POWER QUERY從0到1 #9 樞紐資料行的功能是將長資料轉換成寬資料,使數據可以快速分析。 而所謂的取消資料行樞紐,就是把寬資料轉換成長資料的一個過程,也就是資料的正規化。 如下圖所示,左邊的圖為二維結構,屬於寬資料,每列可能包含多筆數據(1.2.3月),右邊的圖屬於長資料,每列都
Thumbnail
這篇文章介紹了一個在 Excel 中將郵遞區號加上括號的公式,並分析了公式的原理。這是一篇對於 Excel 公式拆解感興趣的人有價值的文章。
Thumbnail
BigQuery 是 Google 推出的無伺服器資料倉儲方案,內建有查詢引擎(類似於 SQL),查詢引擎除了可以方便管理外,也能夠在短時間內對數 TB 的數據進行撈取。相較於其他的資料倉儲解決方案相比,它的成本較低,但如果你的資料量太大有可能成本還是超出你的預期
Thumbnail
在Dcard有人求救一個問題:想要將layer與panel的資料提出出來,如下圖。 這個題目是很經典的需求,就是多條件查找,多條件查找有蠻多種不同的解決方法,甚至版本不同解法也是天壤之別哦。 準備動作 在寫函數之前,記得要先觀察一下我們想要提取的資料有什麼樣的規則,可以發現A欄中只
Thumbnail
※ 資料庫與 SQL ※ 題目: 請寫出 SQL 讀取 people table 中所有 gender 是 M 而且 age 大於 18 的資料。 ※ 解答: SELECT * FROM people WHERE gender = 'M' AND a
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
※ 什麼是WHERE? 使用 WHERE來設定條件,可以幫助我們縮小查詢結果的範圍,取得想要的結果。 ※ 語法: ※ 解析順序: From:先看是哪一張table→table裡面符合Where指定條件的record→再看Select指定的是那些欄位→再根據那個欄位進行排序。 ※ 使⽤⽅
Thumbnail
※ 語法 SELECT select_list FROM table_name​ ※ 解析順序 From:從哪裡拿? SELECT:要 "拿什麼" 資料? ※ 使用場景: Single column(單一欄位): Multiple column(多個欄位): All colu
Thumbnail
這篇文章主要是介紹了SQL查詢效能調校的方法,針對索引最佳化做了整理和分享,並提供了一些注意事項和建議。
Thumbnail
在POWER QUERY從0到1 #6,就有介紹過資料合併這個功能。 #6 從0到1的POWER QUERY 資料合併 神似VLOOKUP但比他好用100倍 資料合併很神似函數的VLOOKUP,但除了單純以VLOOKUP方式查找合併資料之外,總共有6種不同的合併方式。 用一個簡單的範例來做
Thumbnail
在POWER QUERY從0到1 #9 樞紐資料行的功能是將長資料轉換成寬資料,使數據可以快速分析。 而所謂的取消資料行樞紐,就是把寬資料轉換成長資料的一個過程,也就是資料的正規化。 如下圖所示,左邊的圖為二維結構,屬於寬資料,每列可能包含多筆數據(1.2.3月),右邊的圖屬於長資料,每列都
Thumbnail
這篇文章介紹了一個在 Excel 中將郵遞區號加上括號的公式,並分析了公式的原理。這是一篇對於 Excel 公式拆解感興趣的人有價值的文章。
Thumbnail
BigQuery 是 Google 推出的無伺服器資料倉儲方案,內建有查詢引擎(類似於 SQL),查詢引擎除了可以方便管理外,也能夠在短時間內對數 TB 的數據進行撈取。相較於其他的資料倉儲解決方案相比,它的成本較低,但如果你的資料量太大有可能成本還是超出你的預期
Thumbnail
在Dcard有人求救一個問題:想要將layer與panel的資料提出出來,如下圖。 這個題目是很經典的需求,就是多條件查找,多條件查找有蠻多種不同的解決方法,甚至版本不同解法也是天壤之別哦。 準備動作 在寫函數之前,記得要先觀察一下我們想要提取的資料有什麼樣的規則,可以發現A欄中只
Thumbnail
※ 資料庫與 SQL ※ 題目: 請寫出 SQL 讀取 people table 中所有 gender 是 M 而且 age 大於 18 的資料。 ※ 解答: SELECT * FROM people WHERE gender = 'M' AND a
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為