なぜか2行目から始まる表、結合されたセル…ビジュアルアナリティクスには数多の壁があります。それらの壁をどうにかしてくれる便利機能がデータインタープリターです。
データインタープリターとは
Tableau DesktopとTableau Prepについている、そのままでは読み取りづらい微妙なExcelファイルを分析できるよういい感じにしてくれる入力オプションです。詳しくはヘルプを参照ください。
Excel、CSV、PDF、および Google スプレッドシートからのデータ インタープリターを使用するデータのクリーニング - Tableau
例えば左のデータをそのまま読み込むと、右のようにタイトル行が間違ったり、結合セルがNULLまみれになってしまいます。
これがワンクリックで分析できる形になります。便利ですね。
1シートに複数表入っている場合
これでは簡単すぎるので、少し意地悪な表を用意しました。1シートに複数表を入れないでほしいですね。すると親切にも、ここに複数の表が入っていませんか?と表のありそうな範囲を提示してくれました。
実際のファイルと見比べて、表の範囲が間違っている場合は手修正することもできます。
上記はTableau Desktop限定なのですが、Prep Builderにもつけて!というIdea(機能要望)があります。ぜひ投票を!
Excelの「名前の定義」と組み合わせる
とはいっても、読み込みたいセル範囲が定期的に変わってしまうときがあります。そんなときはExcelの「名前の定義」を使います。
Excelの「名前の定義」でセルの範囲に名前を付ける:Tech TIPS - @IT
Excelでは指定した範囲に名前をつけておくことができ、データインタープリターは定義した名前の範囲を読み込めるため、Tableau Desktop、Prep Builder側で範囲を指定する必要がなくなります。
また、この定義した範囲内に行列を挿入した場合、それらも範囲の対象になります。下に右などに項目を追加した場合は、範囲には入らないため注意しましょう。
定義した範囲を動的に変化させられるか?
名前の定義はをオフセットして動的に動かすこともできるため、例えば以下のようにNo.9以下を足してもNo.15までを表の範囲として認識させることができます。しかし、これはデータインタープリターでは読み取り対象にはなりませんでした。オフセット関数は使わず、通常通り範囲を定義しましょう。
=OFFSET(Sheet1!$B$3, 0, 0, COUNT(Sheet1!$B:$B)+1 ,4)
*B3セルを基準にして、B列にデータがあれば4行を対象に範囲を広げる。
ワークシートに動的に定義された範囲を作成する - Office | Microsoft Learn
まとめ
読み取りづらいExcelの処理方法は他にも様々ありますが、定型化したデータはまずデータインタープリターを試してみるのも一案です。
また、複数シートやファイルをまとめて読み込む場合は、シート構造が異なっていないか確認してから使うことをおすすめします。たまに最初の1シートしか読み込めてない…なんてこともありますので、Vizを作り始める前にデータのモレがないかチェックしておきましょう。