ADVERTISEMENT

【Googleスプレッドシート】Tableauに渡すデータの準備!CSVヘッダーの統一

【Googleスプレッドシート】Tableauに渡すデータの準備!CSVヘッダーの統一
🛡️ 超解決

Tableauでデータ分析を行う際、CSVファイルのヘッダー行が不統一だと、グラフやダッシュボードで正しく値が表示されず、手戻りが発生します。特に、複数のシートやファイルからデータを集める場合、列名がバラバラになっているケースが多いのです。この記事では、Googleスプレッドシートを使ってCSVのヘッダーを統一し、Tableauにスムーズに渡す準備方法を解説します。具体的な手順や関数の使い方を知ることで、データ前処理の時間を大幅に短縮できます。

【要点】GoogleスプレッドシートでCSVヘッダーを統一しTableauに備える方法

  • QUERY関数によるヘッダー指定: =QUERY(元データ!A:F, “select * label A ‘製品名’, B ‘売上'”) のようにlabel句で任意のヘッダーを付与します。
  • ARRAYFORMULA+IFを使ったヘッダー行の書き換え: 1行目に統一したい列名を手動で入力し、2行目以降に元データをコピーする数式を組みます。
  • CSVエクスポート前の最終確認: 列名に半角英数字・アンダースコアのみを使い、Tableauのデータ解釈エラーを防ぎます。

ADVERTISEMENT

なぜCSVヘッダーを統一する必要があるのか

Tableauはデータソースの列名をそのままフィールド名として認識します。ヘッダーが統一されていないと、以下のような問題が起こります。

  • 同じ意味の列なのに「売上」「sales」「売上高」と表記が異なり、Tableau上で別フィールド扱いになります。
  • 列名に全角スペースや記号(@,#など)が含まれると、計算式やリレーション作成時にエラーが発生します。
  • 複数CSVをユニオンで結合する場合、同じ列名でなければ正しく結合できません。

つまり、Tableauで効率よく分析するためには、CSVを出力する前のGoogleスプレッドシート上でヘッダーを統一しておくことが欠かせません。ここからは、具体的な方法を3つ紹介します。

CSVヘッダーを統一する3つの方法

方法1: QUERY関数でヘッダーを直接書き換える

元データのシートとは別に、出力用のシートを作り、QUERY関数で列名を指定する方法です。label句を使うと、元の列名を任意の名前に変更できます。

  1. 出力先シートを作成する
    新しいシートを追加し、セルA1に次の数式を入力します。
    =QUERY(元データ!A:Z, "select * where A is not null label A '製品名', B '売上', C '日付'")
  2. label句で列名を統一する
    select句の後にlabel句を続け、元の列名=新しい列名の形式で指定します。列が多い場合は、必要な列だけselectし、labelを付与します。
  3. 結果をCSVとしてエクスポートする
    出力シートのデータ範囲を選択し、「ファイル」→「ダウンロード」→「カンマ区切り値(.csv)」で保存します。

この方法のメリットは、元データを変更せずにヘッダーを統一できる点です。ただし、QUERY関数は大量データで重くなる場合があるので注意してください。

方法2: 手動でヘッダー行を作り、数式でデータを参照する

統一したい列名をあらかじめ手動で入力し、2行目以降にARRAYFORMULAやIMPORTRANGEでデータを引っ張る方法です。直感的でミスが少ない手法です。

  1. 出力シートに統一ヘッダーを入力する
    A1に「製品名」、B1に「売上」、C1に「日付」というように、Tableauで使いたい列名を手入力します。
  2. 2行目以降にデータをコピーする数式を入れる
    A2に =ARRAYFORMULA('元データ'!A2:A) と入力し、必要な列数分横に展開します。または =IMPORTRANGE("スプレッドシートURL", "シート名!A:Z") で別ファイルのデータを参照します。
  3. 不要な行を削除し、エクスポートする
    データが正しく表示されていることを確認し、CSVとしてダウンロードします。

この方法は元データの構造を変えずに簡単に統一できるため、初心者にもおすすめです。ただし、元データに行の追加があった場合に手動で範囲を調整する必要がある点に注意してください。

方法3: 正規表現を使ってヘッダーの表記揺れを自動修正する

元のヘッダー行に「売上」「Sales」「売上高」など複数の表記が混在している場合、正規表現で置換して統一します。スプレッドシートの「検索と置換」機能を利用します。

  1. 元データのヘッダー行をコピーする
    元データの1行目を別シートにコピーし、編集用の作業領域を作ります。
  2. 「検索と置換」で正規表現を使う
    Ctrl+Hで検索と置換ダイアログを開き、「正規表現を使用」にチェックを入れて、売上|Sales|売上高 のようなパターンを「売上」に置換します。同様に他の列も置換します。
  3. 修正したヘッダーを元データに反映する
    編集後のヘッダー行をコピーし、元データの1行目に値で貼り付けます。これで元のシート自体のヘッダーが統一されます。
  4. 全体を確認してCSV出力する
    すべての列名が目的の表記になっていることを確認し、CSVとしてダウンロードします。

この方法は、1回の作業で複数の表記ゆれを修正できるため、ヘッダーのバリエーションが多い場合に特に効果的です。正規表現に慣れていない場合は、事前にテストシートで試すことをおすすめします。

CSVヘッダー統一時の注意点とよくあるミス

列名に全角文字を使うとTableauで文字化けする

TableauはデフォルトのエンコーディングがUTF-8ですが、日本語の全角文字が正しく認識されないケースがあります。特に列名に全角スペースや記号が含まれると、フィールド名が「?」に置き換わることがあります。半角英数字とアンダースコア(_)のみを使用するのが無難です。どうしても日本語を使う場合は、先にテストインポートして問題がないか確認しましょう。

日付形式の表記が統一されていない

「2024/1/1」「2024-01-01」「2024年1月1日」など日付形式がバラバラだと、Tableauが日付として認識しない場合があります。スプレッドシートですべての日付列を一意の形式(例:YYYY-MM-DD)に変換してからCSV出力します。TEXT関数で =TEXT(A2,"YYYY-MM-DD") とすることで統一できます。また、Tableauのデータ解釈に任せる方法もありますが、事前にそろえておいたほうが後々のトラブルが少なくなります。

数値列にカンマや通貨記号が混入している

スプレッドシート上で見やすくするためにカンマ区切りや通貨記号を付けていると、Tableauに読み込んだときに文字列として認識されます。CSV出力前に、数値列の表示形式を「数値」に変更し、カンマや記号を削除します。数式で =VALUE(SUBSTITUTE(A2,",","")) のようにして数値変換する方法も有効です。

方法 メリット デメリット
QUERY関数 元データを変更せずにヘッダー統一、関数1つで完結 大量データで動作が重くなる、構文間違いに注意
手動ヘッダー+数式参照 直感的で簡単、元データの構造を保てる 元データ更新時に範囲調整が必要
正規表現置換 表記ゆれを一括修正できて強力 正規表現の知識が必要、元データを直接書き換える

ADVERTISEMENT

まとめ

GoogleスプレッドシートでCSVヘッダーを統一することで、Tableauでのデータ取り込みがスムーズになり、分析に集中できます。QUERY関数を使う方法、手動でヘッダーを作る方法、正規表現で置換する方法の3つを状況に応じて使い分けてください。特に、複数のシートやファイルを扱う場合は、出力用シートを一つ用意して統一ヘッダーを管理することをおすすめします。次のステップとして、TableauでCSVを読み込む際に「データ解釈」の設定を確認し、必要に応じてフィールドのデータ型を手動で修正すると、さらに精度の高い分析が可能になります。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。