Table
一. 什麼是 CASE Statement
CASE defines one or more conditions and returns a result when a condition is met. You can define a default result if none of the conditions is met.
LookerStudio 官方文件
簡單來說 CASE 會根據你寫好的條件,來分配對應到的結果,以下是一個 CASE 的簡述範例:
1 2 3 4 5 |
CASE WHEN 條件1 THEN 結果1 WHEN 條件2 THEN 結果2 ELSE 結果3 END |
要談 CASE 這個主題的話,我覺得舉例是最容易理解的,因此底下我會直接舉兩個與 LookerStudio 實際相關的例子,先帶你了解 CASE Statement 到底是用來做什麼的。
二. 常見情境
案例 1. 簡單的 CASE 用法
我們可以使用 CASE 輕鬆將星期區分成平日(weekday) 和假日(weekend),藉由此方法我們可以快速的觀察出平日和假日的使用者行為和轉換率。
案例 2. CASE 搭配正規表達式
來源媒介通常複雜又混亂,我們可以使用 CASE 搭配正規表達式,輕鬆的將來源媒介區分成自己想要的渠道分類,可以快速的觀察各渠道的表現。
三. 實作時間
案例 1. 教學 – 簡單的 CASE 範例
▍方法一
這個方法適合新手入門的寫法,把所有情況都寫下來,但語法會有點重複,如果面對條件有更多的情況話,就會建議採用方法二。
1 2 3 4 5 6 7 8 9 |
CASE WHEN 星期幾名稱 = "Saturday" THEN "weekend" WHEN 星期幾名稱 = "Sunday" THEN "weekend" WHEN 星期幾名稱 = "Monday" THEN "weekday" WHEN 星期幾名稱 = "Tuesday" THEN "weekday" WHEN 星期幾名稱 = "Thursday" THEN "weekday" WHEN 星期幾名稱 = "Wednesday" THEN "weekday" WHEN 星期幾名稱 = "Friday" THEN "weekday" END |
▍方法二
方法二多了 ELSE
的語法,所以我們只寫了 weekend 的條件,剩下都交給了 ELSE 來處理 (ELSE "weekday"
),但在 weekend 的部分還是重複寫了兩次,如果追求更完美的朋友,可以參考接下來介紹的方法三。
1 2 3 4 5 |
CASE WHEN 星期幾名稱 = "Saturday" THEN "weekend" WHEN 星期幾名稱 = "Sunday" THEN "weekend" ELSE "weekday" END |
▍方法三
這個方法使用了 or
的語法,來讓重複的部分更簡潔了。
1 2 3 4 |
CASE WHEN 星期幾名稱 = "Saturday" or 星期幾名稱 = "Sunday" THEN "weekend" ELSE "weekday" END |
以上用由淺至深的方式介紹了三種不同的寫法,大家可以熟悉一下並找到屬於自己喜歡的方式~
案例 2. 教學 – CASE 搭配正規表達式
案例二的部分,將條件的放入正規表達式 (REGEXP_MATCH(欄位, 條件)
),如果對正規表達式不熟的朋友,可以參考上一篇 LookerStudio 教學 – 正規表達式 Regular Expression 使用範例和情境,將會介紹 REGEXP_MATCH
、REGEXP_EXTRACT
和 REGEXP_REPLACE
的用法。
1 2 3 4 5 6 7 |
CASE WHEN REGEXP_MATCH(來源/媒介, "(.*organic)") then "Organic Search" WHEN REGEXP_MATCH(來源/媒介, "(.*referral)") then "Referral" WHEN REGEXP_MATCH(來源/媒介, "(google / cpc)") then "Paid Search" WHEN REGEXP_MATCH(來源/媒介, "(.*affiliate)") then "Affiliate" ELSE "Other" END |
如果在實作上有遇到問題的同學,可以參考 章節三的單元三- Google Looker Studio 常用程式語法,會有詳細的解說。
與 Looker Studio 相關系列文章
前陣子做了一個電商數據分析的 Looker Studio Dashboard 模板,可以從這邊 領取,希望對你有幫助 🙂
- [Looker Studio 教學] 入門學習指南
- [Looker Studio 教學] 進階入門的四個基礎概念
- [Looker Studio 教學] 正規表達式 Regular Expression 使用範例和情境
- [Looker Studio 教學] 常用語法 CASE Statement 教學
- [Looker Studio 教學] 實作 LinkedIn 好友儀表板
最後
對 Looker Studio 有興趣的朋友,分享一個去年發起的活動:「Looker Studio 模板」,此活動邀請了五位大大每週接棒分享免費模板,可以參考這篇文章,瞭解更多:
- Max《用四張圖表,理解 Blog 成效》
最後我是 Max,過去曾在「新加坡蝦皮」擔任資深數據分析師,為不同國家和行銷團隊建立上百張數據儀表板,如果你有 數據分析 和 視覺化儀表板 企業內訓需求,歡迎與我聯繫!
目前在 Hahow 開了一堂 Looker Studio 視覺化報表|數據分析輕鬆上手 課程,可以私訊我領取 Hahow 的 8 折優惠碼,簡單來說,我們會從觀念建立、基礎操作、進階操作、實戰訓練這樣漸進的方式,教會你所有數據分析與資料視覺化的觀念與應用💪
另外還會手把手帶大家一起完成 8 個主題性的模板,並幫助學員瞭解每張圖表背後的意義是什麼。
如果你想了解電商數據、SEO、社群的表現、內容網站,該用哪些數據該如何衡量以及解讀,那麼就千萬不能錯過「Google Looker Studio 視覺化報表|數據分析輕鬆上手」這堂課,我們課堂上見囉♥️
感謝您收看「走出 Looker Studio 新手村,進階入門的第三堂課 – 常用語法 CASE 教學」,任何問題都很歡迎透過以下私訊,我會盡快回覆您。
在〈[Looker Studio 教學] 常用語法 CASE Statement 教學〉中有 6 則留言
您好 我想請教Data studio 自訂參數 能不能設定某篩選器的數值呢
例如我想看A篩選器(某特定來源媒介)出來的電商轉換率與整體電商轉換率的比較值
我該如何設定呢?
嗨 Mason,
可以善用右鍵群組的功能(將篩選器與圖表群組),和另一張圖表保留整體的數據,這方法在不寫程式的情況下,可以快速達到你想要的效果喲
Max您好~ 有看到了您的星期幾名稱示範~
另外想請教, 我在製作各月份長條圖時 , 維度是網頁標題(已用篩選器篩出我要的) , 細分維度我選了月份 , 但是我想要調整月份裡面的值是用每個月23號做切割 (ex: 12月份= 11/24~12/23 ; 11月份= 10/24~11/23 ; 10月份= 09/24~10/23) , 像這樣該如何是好@@? 感恩~
嗨嗨 你好,
在 case when 的公式中,沒辦法直接用日期的型態來做比較,所以要先將時間轉換成 Number,再進行區隔,就可以完成囉!
case
when CAST(FORMAT_DATETIME("%m%d", 日期) AS NUMBER ) > 1124 and CAST(FORMAT_DATETIME("%m%d", 日期) AS NUMBER ) < 1223 then "12" when CAST(FORMAT_DATETIME("%m%d", 日期) AS NUMBER ) > 1024 and CAST(FORMAT_DATETIME("%m%d", 日期) AS NUMBER ) < 1123 then "11" when CAST(FORMAT_DATETIME("%m%d", 日期) AS NUMBER ) > 0924 and CAST(FORMAT_DATETIME("%m%d", 日期) AS NUMBER ) < 0923 then "9" ... else 'check' end
希望有幫助 🙂
Max
Max你好:
想請問data studio有類似vlookup的功能嗎?
舉例:
廣告素材對應到三組顯示網址,但我只要帶出其中一組網址就好,這樣可以使用哪個函式來寫比較合適呢?
嗨嗨 Xiao,
目前並沒有類似的 function,關於 Google Looker Studio 所有的函式可以參考這篇:Looker Studio Function references
希望有幫助到你 🙂
Max