Looker Studioの注意点 データ取込み方法が違うと未入力セルの扱いが違います

2023.11.27

データアナリティクス事業本部の武田です。

今日は、未入力のセルのあるデータをLooker Studioに取り込んだ時の動作の違いについて比較のお話です。 未入力ならNULLだろうと思っていたのですが、どのように取り込んだかによって、Looker Studio内での扱いが違いました。

NULLと空文字と0の違い

NULLと空文字の違いについて、コーディングを経験したことのある方なら、「よくあること」として認識されていると思いますが、そもそもそんな概念は初めてとケースも多いため、あらためて解説します。

NULL=なにも存在しない状態、何も値が入っていないセル

空文字=長さ0の文字列のこと、
Excelだと””(ダブルクオテーション2つ)、MySQLだと''(シングルクオテーション2つ)

0=数字の0、数字の0が入っているのでNULLではない。

(似ている概念で、「空白」がありますが、空白にはスペースが入っていますので、未入力ではありません。空白はスペースという文字が入っています。)

NULLや空文字は、Excelでの取り扱いとDBの世界(BIツール含め)の取り扱いには、違いがあります。

Excelでは、何も入ってない未入力のセルは、自動的に0として扱われます。(0かどうかの条件分岐の関数を入れると、TRUEが返ってきます。)

DBの世界では、何も入ってない未入力のセルは、NULLとして扱われます。0ではありません。(0かどうかの条件分岐の関数を入れると、FALSEが返ってきます。)

用意したデータ

データは、Tableauをインストールした時についてくるサンプルスーパーストアのデータを加工したものです。地域に未入力セルを用意しました。

比較したいこと

CSV、Googleスプレッドシート、DB(BigQuery)、Google Cloud Strageに置いたCSVの4パターンで、 未入力セルがどのように違うのかを比較します。

下記の計算フィールドを使って比較しました。

IFNULL(地域, 'NULL')

NULLを判定する計算式:もし地域カラムがNULLだったら、文字列として「NULL」を返す。

IF(地域='','空文字',地域)

空文字を判定する計算式:もし地域カラムがNULLだったら、文字列として「空文字」を返す。

結果

計算フィールドで変換した結果をLooker Studioのテーブルで表示したのが下記です。一番下の行が未入力セルを集計したものです。

CSVから取り込んだ場合、NULLとして表示されています。

Googleスプレッドシートから取り込んだ場合、空文字として表示されています。

DB(BigQuery)から取り込んだ場合、NULLとして表示されています。

Google Cloud Strageに置いたCSVから取り込んだ場合、空文字として表示されています。

結果を一覧表にまとめました。

CSV Googleスプレッドシート DB(BigQuery) Google Cloud Strageに置いたCSV
NULL 空文字 NULL 空文字

(補足) CSVデータを直接Looker Studioに取り込んだ時、数量をデフォルト文字列として認識されてしまっていました。 手動で数値に変更したのですが、文字列として認識された時点で、未入力セルを空文字にしているのではないかと推測しています。 ちなみに、オーダー日も本来は日付型ですが文字列になってしまっており、ちょっと面倒です。

ふりかえり

同じ未入力セルなのに、取り込む方法によって「空文字」で扱われてしまうという結果になりました。 CSVデータ取込み時に自動で認識されたデータ型が「文字列」になっていることが影響していそうだなという気がしています。 未入力セルが入っていると、自動的に「文字列」になってしまいました。

今度は、メジャー(集計するカラム、例えば数量や売上のセル)にNULLが入った時に、集計ではどう扱われるかを検証してみたいと思います。

お知らせ

12/1(金)に下記のウェビナーに登壇します。

Amazon QuickSight×Amazon Redshiftのデモをお見せしながら、ダッシュボードを改善のポイントを説明します。