Looker Studioで週次レポートを火曜日始まりに設定する方法【サンプル・関数あり】

曜日をずらして表示する方法

LookerStudio(旧Googleデータポータル)を使用してレポートを作成するシーンは

  • 月報・月次レポートの作成
  • 週報・週次レポートの作成
  • 日報・日次レポートの作成

このようなシーンが多いのではないでしょうか。

LookerStudioとは 【初心者必見】LookerStudioとは、活用方法と事例をサンプル付きで紹介

このうち、週報を作成する際に、会社によって週の起点(始まり)が月曜だったり、火曜だったり、水曜だったりと、様々なことがほとんどです。

そうなった時に、LookerStudioのデフォルト設定の週んお始まりは、ISO(国際標準化機構)に則って、月曜日が起点となっています。

その為、通常の設定で週の起点を変更することが出来ないため、週始まりを火曜にずらすといった場合には、関数を作成する必要があります。

今回はそのやり方を完全解説していますので、是非参考にしてみてください。

使用する関数

まず、今回使用する関数は下記になります。

  • DATETIME_ADD
  • WEEK
  • DATETIME_SUB
  • CONCAT
  • CASE

それぞれの関数の意味をざっくりお伝えすると、下記の内容になります。

DATETIME_ADD

DATETIME_ADD関数は、指定の日付フィールドに指定の数だけ加算する関数です。

WEEK

WEEK関数は、ISO週の何週目かを返す関数です。

DATETIME_SUB

DATETIME_SUB関数は、指定の日付フィールドに指定の数だけ減算する関数です。

CONCAT

CONCAT関数は、()内に与えた引数の文字列を結合する関数です。

CASE

CASE関数は、IF文と同様に、複数の条件分岐を作り、条件に合致した値を返す関数です。

火曜始まりの週のディメンションを作成する

LookerStudioとスプレッドシートの表記さを確認

Lookerstudioは曜日数を0~6でカウント
Googleスプレッドシートは曜日数を1~7でカウント
LookerstudioはISO週を月曜始まりとするが、曜日数は日曜スタートとなっているというのが特徴です。

では、火曜始まりのISO週に修正する方法を考えていきます。
ポイント&作成するフィールドは3つ

  • ①12月27日が52週目の始まりとなる「week」フィールドを作成
  • ②上記52週目に該当する12月27日~1月2日の7日間の、週始まりが12月27日であるという「週始まり」フィールドを作成する
  • ③上記52週目に該当する12月27日~1月2日の7日間の、週終わりが1月2日であるという「週終わり」フィールドを作成する

①日付をずらしてISO週をずらす

まず、「日付」フィールドから1日遡る、「1日減」フィールドを作成。これに対して、week関数をあてて作成された「①week」フィールドを「日付」フィールドと並んで確認すると、12月27日が52週目の始まりという形を作ることが出来る。
1日減 : DATETIME_ADD(日付, INTERVAL -1 DAY)
week : WEEK(①1日減)

このようにして、①weekというフィールドを作成することで、12月27日火曜が、52週目の始まりになります。
あとは、この52週目という表記を、 52週目:12月27日(火曜)~1月2日(月曜) という表記にする必要があるので、
②12月27日という週始まりのフィールドと、③1月2日という週終わりのフィールドを作成していきます。

②週始まりの日付を作成

週始まりと週終わりの日付を生成する為には、曜日数1~7を利用します。
②週始まり(仮)というフィールドは、 DATETIME_SUB( 日付, INTERVAL ①曜日数(1日減) DAY) という関数で作成しています。
こうすることで、週数に応じて、日付フィールドから日数がDATETIME_DUBで減らすことができ、各日付から週数に応じた数がひかれて、週の始まりが算出されます。
ただ、これを見てみると、本来欲しい日付は12月27日ですが、12月25日が週始まりになってしまっています。

これを解消する為には、①曜日数の0から6の数字の、0の部分を、12月26日ではなく、12月27日の行に持ってくる必要があります⇒12月27日 – 0 =12月27日
そこで、下図のように、2日減というフィールドを作成します( DATETIME_ADD(日付, INTERVAL -2 DAY) )。
そしてこれに対して曜日数の関数を充てると、12月27日が0始まりの曜日数を作成できるので、これを「日付」から減算する形をとると、
12月27日~1月2日の週始まりが、12月27日になります。

③週終わりの日付を作成

週終わりも、週始まり同様の考え方で曜日数を利用し作成していきます。
ここで使用するのも、「②曜日数(2日減)」の数字を使用します。

12月27日~1月2日の週終わりは、1月2日です。
12月27日を1月2日にするには、6を足す必要があります。曜日数と合わせると、日付+(6-0)という式になります。
12月28日を1月2日にするのも、日付+(6-1)というかたちで、5日間加算すると、1月2日になります。

⇒ DATETIME_ADD( 日付, INTERVAL 6-②曜日数(2日減) DAY)

④火曜始まりのISO週の作成

これで、火曜始まりのISO週を作成するためのフィールドが揃ったので、あとはCONCAT関数でくっつけて完成です。

CONCAT(①week,”週目:”,②週始まり,”~”,③週終わり)
また、このままだと00:00:00という時間表記も入ってしまうので、DATE関数を挟んであげることで、表記を日付のみにします。

そして、ディメンションを④火曜始まりのISO週にすることで、
その週の合計数値を見ることが出来ます。

あとは、この表記だと、2022年と2023年が混在、かつ、1桁目の数値順になってしまうため、日付順になるように最終調整してあげる必要があります。

⑤20〇〇年を先頭にもってくる

〇〇年を先頭にもってくるには、下記関数を作成すれ上記のように作成できます。
concat(YEAR(②週始まり ),”年”,①week,”週目:”,DATE(②週始まり),”~”,DATE(③週終わり))

⑥00週目表記に修正する

そして、通常の表記だと、1週目~9週目が先頭に来てしまうので、01週目~09週目という2桁表記に修正します。

CASE
WHEN REGEXP_MATCH(④火曜始まりのISO週, “.10週目.” ) THEN REPLACE(④火曜始まりのISO週,”10週目”,”10週目”)
・・・※この間に全週の関数を入れます。詳細は記事下部にあるデータポータルサンプルよりご覧ください
WHEN REGEXP_MATCH(④火曜始まりのISO週, “.1週目.” ) THEN REPLACE(④火曜始まりのISO週,”1週目”,”01週目”)
ELSE “〇週目”
END

LookerStudioサンプル

Lookerstudioの関数一覧

LookerStudioでは、上記で使用した関数以外にも多くの関数が存在します。

Lookerstudioの関数を使用するメリットとしては、例えばデータソースをスプレッドシートにした場合、そのデータを加工するためにスプレッドシート上で様々な関数を作ることが有ると思いますが、その作業をLookerstudio上で行うことができます。

これにより、スプレッドシート上の関数を誤って自分で書き換えてしまったり、消してしまうということが発生しなくなります。

また、スプレッドシートでは使用できない関数もあるのでその点もメリットの一つです。

まとめ

正直かなり骨の折れる作業ではありますが、この形をとれば、何とかLookerStudioで、週の起点を火曜にスライドすることが出来ます。他の週も同様の考え方で修正することが出来ますので、是非一度試してみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です