見出し画像

Tableau×Excelの落とし穴にはまった話

先日実務の年次の作業でTableauにExcelファイルを読み込んだ時に落とし穴にハマりました。また来年も同じ落とし穴に落ちそうなので備忘録として書いておきます。

前提条件

毎月作成時点での緒条件を考慮した上で顧客ごとの購入金額を計算したExcelファイルを作成しています。下記の理由から、出来上がったExcelファイル=毎月のスナップショットです。

  • 条件がそこそこ複雑

  • 抽出タイミングによって変動するデータを使用している

  • 変動するデータのスナップショットがない

毎月作成されるExcelファイルはファイル名に「顧客購入金額_yyyymm.xlsx」と名前をつけるというルールがあります。
私はこのExcelファイル12ヶ月分をデータソースにして、年間の顧客の購入金額ランキングを作成します。

昨年Tableau化しました

昨年、前任者からこの業務を引き継ぎました。
引き継いだ時、この作業はAccessで集計する仕様になっていました。毎年ファイル名が変わるExcelファイルを12ファイル(手動で)インポートして、Accessで1テーブルに集約して集計するという不毛な作業工程でした。
そんな時に本当に便利なのがTableauのワイルドカードユニオンです。(本気で小躍りしました、Tableau様々♡)
という訳で、前年1年分(つまり2年前)のファイルを手元のフォルダにコピーしてきて、このフォルダ内にあるファイル全てをユニオンしたデータソースを持つTableauを作りました。
もちろん、Tableauは12ファイルをちゃんと読み込んで1年分の集計をしてくれました。念の為既存のAccessでも同じ作業をして同じ結果が出ていることを確認しました。

今年は何かがおかしい

今年も年次の作業のタイミングが来たので、昨年作ったTableauを引っ張り出してきて、データソースとなる1年分のExcelファイルもコピーしてきて、よし!準備万端!!
…と、Tableauを開いてみると、どうも売上金額が想定外の高額になってるではないですか!!!
昨年でさようならする予定だったAccessも引っ張り出してきてみて面倒臭い一連の集計をしてみましたが、どうやら倍近くに膨れ上がっているようです。これはもう思いつくのはアレだけ!ファントラップです。
でも、繋いでいるテーブルは顧客情報が登録されている顧客マスタだけで、読み込んでいるExcelも重複のないデータなので、ここでファントラップが起こる訳がない。新規のTableauを立ち上げてデータソースの接続をし直してみるもやっぱり売上は倍近くに膨れ上がっている金額になってしまいます。

あの便利機能が悪さを働いていた!

2日くらいあーでもないこーでもないと試してみた結果、悪さをしていたのはExcelの「名前の範囲」。2年前の12ファイルには名前設定がされていませんでしたが、昨年1年分のファイルにはなぜか名前の範囲が設定されていました。
TableauにExcelファイルをワイルドカードユニオンする場合、シートの指定をしてあげないと全てのシートが読み込まれます。これが、名前の範囲の部分も適用されて読み込まれて2倍になってしまっていたのです。
Excelを使う上では便利な機能ですが、今回に至ってはかなり困る!!!!急にExcelの仕様変えるのもやめてほしい!!!
最終的には読み込むシートの設定をしてあげることで解決しました。

検算は大事!

今回は検算したことで発見できた落とし穴です。もし検算をしていなかったら売上が2倍近くの状態のデータを世に出してしまうところでした。やっぱり検算は大事ですね。

この記事が気に入ったらサポートをしてみませんか?