WEB-zarashi ~サクラエディタときどき雨~

パソコン操作の作業効率をUPさせる小技を中心に!なんだかサクラエディタ(正規表現)系の記事が多くなってきた気はする。

<Googleデータポータル>CASE文を使ってデータをまとめる方法(旧 データスタジオ)

f:id:webzarashi:20201103082030p:plain

Googleデータポータルでデータをまとめたい

Googleデータポータルを使ってグラフの作成などをしていると、検索クエリをカテゴリごとに集計したい、ランディングページをカテゴリごとに集計したい、参照元メディアを好きな条件でまとめたい、などなどグループ化してデータを見たいことが多々あると思います。そんなときに便利なのが、計算フィールドで使用できる関数のCASE文です。CASE文を使用すれば、さまざまな条件のもとにデータを集計できるため、作業の効率化や分析のしやすさがグッとあがります。以下では、CASE文を使った参考例をいくつかご紹介します。

 

新規フィールドを作成する方法

対象のグラフでのみ使用する新規フィールド

データをまとめるなど、本来のデータには存在しない項目は新規フィールドを用いて作成します。対象のグラフにのみ新規フィールドを追加する場合は、下図の赤枠のディメンションを追加→フィールドを作成→新規フィールド画面から、任意の名前と計算式を入力します。対象のグラフでのみ使用できる新規フィールドのため、汎用性は低いです。

f:id:webzarashi:20201103074949p:plain

f:id:webzarashi:20201103075727p:plain

f:id:webzarashi:20201103075803p:plain

 

レポート内で自由に使用できる新規フィールド

レポート内で自由に使用できる新規フィールドを追加する場合は、下図の赤枠のフィールドを追加→新規フィールド画面から、任意の名前と計算式を入力します。別の方法では、上部メニューの「リソース」から追加済みのデータソースの管理→(対象のデータソースの)編集→フィールド追加でも同様に新規フィールドを作成可能です。

f:id:webzarashi:20201103080653p:plain

f:id:webzarashi:20201103080543p:plain

 

CASE文を使ってデータをまとめる方法

CASE文の構文について

CASE
 WHEN 条件① THEN 結果①
 WHEN 条件② THEN 結果②
 WHEN 条件③ THEN 結果③
 ...
 ELSE 結果④
END

条件:グルーピングしたいデータの条件を入力します

結果:条件の結果としてなにを出力したいのかを入力します

※ELSEは省略可。WHEN条件にあてはまらないすべての結果を出力。

 

条件に一致する場合の例(条件式=)

CASE
 WHEN メディア = "organic" THEN "自然検索"
 WHEN メディア = "cpc" THEN "広告"
 WHEN メディア = "(none)" THEN "ダイレクト"
 WHEN メディア = "referral" THEN "リファラー"
 WHEN メディア = "social" THEN "SNS"
 WHEN メディア = "sns" THEN "SNS"
 ELSE "その他"
END

メディア名が完全にWHEN条件に一致する場合に、THENの結果を出力します。

※文字列は""で囲うのがルール

※"Social"、"SNS"ともに"SNS"としたい場合は、条件を2つ並べればOK

 後述のOR条件を用いて計算式を表現してもOK

※WHEN条件に一致しないとしたい場合は、「=」を「!=」に変更

 

さまざまな条件を組み合わせたいとき(AND条件、OR条件)

CASE
 WHEN メディア = "organic" AND 参照元 = "google" THEN "Google検索"
 WHEN メディア = "organic" AND 参照元 = "yahoo" THEN "Yahoo検索"
 WHEN メディア = "organic" THEN "自然検索"
 WHEN メディア = "cpc" THEN "広告"
 WHEN メディア = "(none)" THEN "ダイレクト"
 WHEN メディア = "referral" THEN "リファラー"
 WHEN メディア = "social" OR メディア = "sns" THEN "SNS"
 ELSE "その他"
END

メディア名(参照元)が完全にWHEN条件に一致する場合に、THENの結果を出力します。

 

複数の条件を組み合わせたいとき(IN関数)

CASE
 WHEN 地域 IN ("Hokkaido") THEN "北海道"
 WHEN 地域 IN ("Aomori", "Iwate", "Miyagi", "Akita", "Yamagata", "Fukushima") THEN "東北地方"
 WHEN 地域 IN ("Tokyo", "Kanagawa", "Chiba", "Saitama", "Ibaraki", "Tochigi", "Gunma") THEN "関東地方"
 WHEN 地域 IN ("Yamanashi", "Nagano", "Niigata", "Toyama", "Ishikawa", "Fukui","Aichi", "Shizuoka", "Gifu") THEN "中部地方"
 WHEN 地域 IN ("Osaka", "Hyogo", "Kyoto", "Shiga", "Nara", "Wakayama", "Mie") THEN "関西地方"
 WHEN 地域 IN ("Okayama", "Hiroshima", "Shimane", "Tottori", "Yamaguchi") THEN "中国地方"
 WHEN 地域 IN ("Tokushima", "Ehime", "Kagawa", "Kochi") THEN "四国地方"
 WHEN 地域 IN ("Fukuoka", "Kumamoto", "Kagoshima", "Saga", "Nagasaki", "Oita", "Miyazaki", "Okinawa") THEN "九州地方"
 ELSE "その他"
END

地域がIN関数の条件に完全に一致する場合に、THENの結果を出力します。

 

~を含むなどの条件作成(REGEXP_MATCH関数:正規表現)

CASE
 WHEN REGEXP_MATCH(参照元/メディア, "google / organic" ) THEN "Google検索"
 WHEN REGEXP_MATCH(参照元/メディア, "yahoo / organic" ) THEN "Yahoo検索"
 WHEN REGEXP_MATCH(参照元/メディア, ".*organic.*" ) THEN "自然検索"
 WHEN REGEXP_MATCH(参照元/メディア, ".*cpc.*" ) THEN "広告"
 WHEN REGEXP_MATCH(参照元/メディア, ".*none.*" ) THEN "ダイレクト"
 WHEN REGEXP_MATCH(参照元/メディア, ".*referral.*" ) THEN "リファラー"
 WHEN REGEXP_MATCH(参照元/メディア, ".*social.*|.*sns.*" ) THEN "SNS"
 ELSE "その他"
END

参照元/メディアがWHEN条件に一致する場合に、THENの結果を出力します。

※REGEXP_MATCH関数では、正規表現を使用できます

※"google / organic"のように、文字列のみを指定した場合は完全に一致

※".*cpc.*"などに使用している、「.*」は~を含むの条件

 例えば、

 ".*cpc" → "google / cpc"は一致、"google / cpc2020"は不一致、"cpc2020"は不一致

 "cpc.*" → "google / cpc"は不一致、"google / cpc2020"は不一致、"cpc2020"は一致

 ".*cpc.*" → "google / cpc"は一致、"google / cpc2020"は一致、"cpc2020"は一致

※".*social.*|.*sns.*"で使用している、「|」はOR条件を表す

 前述のAND条件、OR条件を使用しても表現可能

 REGEXP_MATCH(参照元/メディア, ".*social.*" ) OR REGEXP_MATCH(参照元/メディア, ".*sns.*" )と同等

※否定したい場合はREGEXP_MATCHの前にNOTを付与

 NOT WHEN REGEXP_MATCH(参照元/メディア, ".*cpc.*" ) THEN "広告ではない"

※2つのバックスラッシュ文字(\\)で特殊文字をエスケープ

 例えば、「.」を「.」のまま認識させたい場合

 WHEN REGEXP_MATCH(参照元/メディア, "\\.cpc.*" ) THEN "広告?"

 

▼詳しくはこちら、REGEXP_MATCH(データポータル公式ヘルプ)▼ 

REGEXP_MATCH - Data Studio Help

 

まとめ

CASE文×REGEXP_MATCH関数は非常に使い勝手が良いので、覚えておくと便利です。とはいえ、私も毎回ヘルプを見たり、過去に作成した計算フィールドを覗きにいったりと、まったく覚えきれていません(笑)自分のためにこの記事を書いたようなものですね。いくつかのケースの参考事例をまとめているので、みなさんも困ったときはこのサイトを覗きに来てください。

 

以上、「<Googleデータポータル>CASE文を使ってデータをまとめる方法(旧 データスタジオ)」でした。

 

スポンサーリンク