Tableauのトラブルシューティング 01:元データの数字が表示されない・一致しない
元データにある項目が、Tableauの画面に出てこない。あるはずの数値が表示されない。あるいは、表示された数値が元データと違っている。
このとき、画面のフィルターを操作するだけでは原因にたどり着けないことがあります。元データの数字が画面に出るまでには、入力範囲の選択、加工、読込み、集計、表示という段階があるからです。どの段階で値や扱いが変わったかを確かめると、データの欠落、計算の誤り、集計方法の認識違いを分けられます。
ここでは、元データがTableauで表示されるまでの流れを踏まえ、点検のポイントを説明します。まず、データの流れとTableauが実際に使っているデータを確認します。次に、原因となった作り方を直して結果を作り直すという方針を示し、代表的な五つの原因候補と具体的な確認方法を見ます。最後に、公開・更新前に行うデータの照合と画面の確認を説明します。
1. 元データがTableauで表示されるまで
元データをそのままTableauで使う場合もあれば、Tableauの制作者がExcelやTableau Prepなどで加工し、搭載用のデータを整える場合もあります。Tableauで使うファイルやデータベースを指定して、データを読み込めるようにすることを「接続」といいます。
こうした前処理は必須の工程ではありませんが、名称の表記の揺れを揃える、金額の単位を揃える、列を整理する、年度別の表をまとめる、分類表と対応付ける、といった処理を行うことがあります。例えば「千円」と「百万円」が混じった表なら、そのまま合計する前に単位を揃える必要があります。
Tableauの「データソース」では、どのファイルや表からデータを読み、複数の表をどう組み合わせ、各列を数値・文字・日付などのどれとして扱うかを設定します。一つのExcelブックが、そのまま画面の一つの表やグラフになるとは限りません。複数のシートを組み合わせたり、必要な行だけを選んだりしてから、画面で使うデータを用意することもあります。
さらに、画面に表示する際には、どの単位で数字を足し合わせるか、どの年度や分類に絞るか、何桁まで表示するかを決めます。画面に出ている数字は、こうした処理と設定を経た結果です。
2. Tableauが実際に読んでいるデータを確認する
Tableauの画面に表示される数値は、元のExcelからその都度読み込まれているとは限りません。Tableauには、読み込んだデータを保存して使う「抽出」と、接続先へ問い合わせて使う「ライブ接続」があります。
抽出では、元データの全部または一部を、Tableauが集計や表示に使う形式に変換し、別のファイルに保存します。この保存されたデータを、Tableauでは「抽出」と呼びます。この記事では、抽出する操作と区別するために「抽出データ」と表記します。
現在の抽出データのファイル形式はHyper(拡張子は.hyper)です。抽出データに接続している画面では、このファイルに保存された値をもとに集計し、グラフを描いています。
そのため、元のExcelを修正しても、抽出データを更新しなければ、画面には修正前の数値が表示され続けることがあります。また、抽出データを作る際に行を絞ったり、あらかじめ合計したりする設定もあるため、元データのどこまでを保存したのかも確認します。Tableau公式:データの抽出
ライブ接続では、接続先のデータベースなどへ問い合わせて表示します。こちらは、どこに接続しているか、いつのデータが表示されているかを確認します。Tableau公式:データソースの更新
Tableauのファイルを受け渡すときによく使う.twbxは、画面の定義を持つワークブックと、関連するデータや画像などを一つにまとめたものです。中に抽出データが入っている場合もありますが、外部のデータベースを参照する部分が残っている場合もあります。点検では、ファイル名だけで判断せず、実際にどのデータを使っているかを確かめます。Tableau公式:ファイル形式
点検する場所を整理すると、次のようになります。
| 段階 | 確かめること |
|---|---|
| 元データ | 比較する版・シート・年度・範囲と、保存されている値 |
| 前処理 | 必要な行・列・値が残っているか。名称・単位・分類をどう揃えたか |
| 接続・抽出データの作成 | 実際に参照しているファイルや表、読込みの設定、抽出データに保存された値と更新状態 |
| 集計・表示 | 合算の単位、丸め方、フィルターの条件と処理順序、画面操作による変化 |
ライブ接続の場合は、抽出データの作成を経ずに、接続先のデータを使って集計・表示します。
3. 原因となる処理や設定を直し、結果を作り直す
一つの数字の不一致が見つかったとき、同じ処理や設定を使う別の箇所にも影響が及んでいる可能性があります。数万行のデータを扱う場合、目に留まった箇所だけを直しても、ほかの数字まで正しいかどうかは分かりません。偶然の発見に頼って修正を重ねるだけでは、安心して使えるかを判断する根拠が足りません。
個別の結果への手直しを積み重ねても、作り方の信頼性は上がりません。出来上がったデータの一部を手で直すと、次の更新でも同じ手直しが必要になったり、その修正が抜け落ちたりすることがあります。
六芸社では、表示された数字をつじつま合わせで直すのではなく、原因となった作り方を直し、元データから作り直すことを基本にしています。原因への対処を作成手順に反映し、同じ手順で結果を再現できる状態にします。
そのために、まず問題が起きた状態を残します。比較の基準となる元データ、前処理に使ったファイルや手順、Tableauファイルを保存し、調査はコピーで行います。違いが見つかった行と画面の条件も記録します。先に抽出データを更新してしまうと、何が起きていたのかを確かめにくくなるためです。
次に、元データ、前処理後のデータ、接続先の表や抽出データ、画面の表示値を順に比べ、どの段階で違いが生まれたかを特定します。原因となった処理や設定を直し、その段階から先の結果を作り直します。
前処理で行を落としていたなら、取り出す範囲を直して元データから加工し直し、抽出データも更新します。抽出データの作成時に値が変わったなら、読込みの設定を直して抽出データを作り直します。画面の集計やフィルターだけが原因なら、その設定を直して表示結果を確かめます。この場合、元データまで変更する必要はありません。
作り直した後は、同じ処理が適用される範囲全体を機械的に照合し、画面の動作を確認します。具体的な方法は第5節で説明します。
4. 原因の候補と、具体的な確認方法
ここでは代表的な五つの候補を挙げます。原因が生じる段階を分けて考えると、何と何を比べ、どの処理を直せばよいかを絞れます。
原因の候補①:前処理で行や列を取りこぼしている
例えば、Excelの表の途中に空白行があり、その下にもデータが続いていたとします。前処理で空白行より上だけを取り出すと、その下のデータはTableauに渡りません。読み取る列の範囲が途中で切れていれば、右側にある年度別の金額などが抜けることもあります。
最初に比べるのは、前処理の前後の行数と列数です。見出しや注記を除いたデータ行を数え、必要な列の名前も照合します。行や列を減らす予定のない処理なのに数が減っていれば、取り出す範囲や途中の処理を調べる手掛かりになります。
数が同じでも、一行の欠落と一行の重複が同時に起きている可能性は残ります。商品IDなど、行を識別できる値も照合し、どの行がなくなり、どの行が増えたかを調べます。意図して行を集約したり、列の並びを組み替えたりした場合は、予定した変換に合っているかを確認します。
欠落の原因が分かったら、入力範囲や前処理の手順を直して加工し直します。欠けた行だけを出来上がった表に貼り足すと、次回も同じ欠落が起こり得ます。
原因の候補②:NULLとゼロの扱いを間違えている
項目名(例えば事業名や商品名など)はあるのに、金額が空欄になっていることがあります。Tableauで「値がない」状態を表すものがNULLです。0は金額がゼロと記録されている状態で、両者は意味が異なります。
例えば、金額100の商品と金額が未入力の商品があるとき、未入力を0に置き換えれば、二商品の平均は50になります。一方、値のある商品だけを平均すれば100です。未入力が「売上なし」なのか「未報告」なのかによって、採用すべき扱いは変わります。
確認する際は、元データ、前処理後のデータ、接続先の表や抽出データについて、金額が空欄の行と0の行を別々に数え、商品IDで対応付けます。元から値がなかったのか、途中で値が失われたのか、空欄を0に置き換える処理が入っていないかを調べます。Excelの空欄が読み込まれた後にどう扱われているかも、実際の値で確かめます。
空欄と0の意味を決めたうえで、前処理の置換やTableauの計算式を直します。途中で値が失われていた場合は、次のデータ型の問題も候補になります。
原因の候補③:データ型を取り違えている
各列を数値・文字・日付などのどれとして扱うかという指定を「データ型」といいます。数値にも、整数として扱う型と、小数を扱える型があります。金額に小数があるのに整数として読み込もうとしていないか、数字に見える値が文字として保存されていないかを確認します。
Excelの画面で100と表示されていても、保存された値は100.4かもしれません。画面の表示桁数と、データとして持っている値は分けて確かめます。また、商品IDの「001」を数値として扱えば、先頭の0を保持できません。数字が並ぶ列をすべて数値型にすればよいわけでもありません。
列の型を確認するとともに、元の値と読込み後の値を商品IDなどで対応付けて比べます。小数を含む値、文字が混じる値、先頭に0があるIDなどを手掛かりに、どの種類の値で違いが出ているかを調べます。
型が合わないときの結果は、ファイル形式や読込み方によって変わります。空欄になる、値が変わる、エラーになるといった可能性があるため、設定と実際の値の両方を確認します。型や変換処理を直したら、その処理で作ったデータや抽出データを作り直して照合します。Tableau公式:データ型
原因の候補④:合算の単位や、丸めるタイミングが違っている
データが欠けていなくても、集計の仕方によって画面の数字は変わります。次は説明用の架空の表です。
| 商品ID | 商品名 | 金額 |
|---|---|---|
| A01 | りんご | 100 |
| A02 | りんご | 20 |
商品名でまとめれば120、商品IDごとに表示すれば100と20です。どちらを表示するかは、その画面で何を確かめたいかによって決まります。別々の商品として確認したいなら、同じ名称でも商品IDで分ける必要があります。
小数の丸め方にも同じような注意が必要です。0.4と0.4をそれぞれ整数に四捨五入してから足すと0になります。先に足して0.8を四捨五入すると1になります。ExcelとTableauを比べる際は、丸める桁数に加え、足し合わせる前と後のどちらで丸めたかも揃えます。
また、画面上の小数を非表示にするだけなら、計算には元の小数が使われる場合があります。計算に使った値と、画面に見えている値の両方を確認します。
比較の基準にする合算単位と丸め方を決め、元データからその条件で計算した値を、Tableauの結果と照合します。前処理ですでに合算や丸めを行っていれば、その手順から直します。Tableauの計算式や表示設定に原因があれば、その設定を直します。
原因の候補⑤:フィルターが意図した順番で適用されていない
「ある地域の売上上位10商品」と「全地域の売上上位10商品のうち、その地域で売れた商品」は、同じ一覧になるとは限りません。地域で絞ってから順位を決めるのか、全体で順位を決めた結果に地域の条件をかけるのかで、対象が変わります。
Tableauでは、フィルターの種類によって処理の順序が決まります。画面で条件をクリックした順に計算されるとは限りません。例えば、地域の通常のフィルターと商品名の上位10件のフィルターを併用しても、地域内の上位10商品にならない場合があります。地域の絞込みを先に行うため、「コンテキストフィルター」という設定を使う方法があります。Tableau公式:演算の順序
確認では、まず何を求めたいのかを決めます。地域内の上位10商品なら、元データをその地域に絞り、商品ごとの売上を集計して順位を付けます。その商品一覧と金額を、Tableauの表示結果と比べます。見えている件数や合計だけでなく、対象の商品が一致するかも確認します。
原因がTableau上のフィルター設定にある場合は、元データを変更する必要はありません。設定を直し、複数の地域や条件で表示結果を確かめます。
5. 公開・更新の前に行う点検
ここまでの原因は、画面を見た人がたまたま違いに気づいて初めて分かることもあります。数万行のデータを扱うなら、そうした発見を待つだけでは不十分です。不具合を直したときだけでなく、初めて公開するときや、元データを更新するときにも、照合と画面確認を作成手順に組み込みます。
比較の基準と対象を決める
比較の基準にする元データと、公開・更新するTableauの版を揃えます。対象の年度・行・列、単位の換算、空欄の意味、合算単位、丸め方を明らかにします。意図して除外する行があれば、その条件も残します。
データを機械的に照合する
元データ、前処理後のデータ、接続先の表や抽出データを、商品IDや年度などで対応付けます。Excelで二つの表を横に並べ、同じ商品のセル同士を比較するイメージです。前処理で単位を換算した場合などは、その処理を反映した値と比べます。
この比較をプログラムで行い、対象範囲全体について、行数と必要な列、IDの欠落や重複、NULLと0の件数、金額や分類の一致を調べます。不一致の一覧には、対応するID、比較前後の値、違いの内容を残します。人が一行ずつ読み合わせる必要はありません。
照合の基準は、元データと、あらかじめ決めた集計条件から用意します。作成に使った処理をそのまま繰り返して同じ結果が出たとしても、処理自体の誤りは見つかりません。例えば商品IDごとの金額を元データから別に集計し、作成したデータの金額と比較します。
画面の集計と動作を確かめる
データの照合に続いて、確認する画面と操作の条件を決めます。年度や分類を選んだとき、グラフをクリックして別のグラフが絞り込まれたときなどについて、元データから求めた対象と金額を、実際に表示された結果と比べます。過去に不具合が出た条件も含めます。
数字だけを並べた点検用のシートがあれば、値を一覧で確かめやすくなります。ただし、グラフをクリックしたときの絞込みなど、画面固有の動作は、その画面でも確認します。
点検の範囲と結果を残す
報告には、対象件数、一致件数、不一致件数とその内容、確認した画面と操作条件を残します。例えば「対象年度の全商品について金額を照合した」「年度と分類を指定した三つの条件で表示を確認した」と書き分けます。「全件確認した」という報告には、何の全件なのかが分かる説明が必要です。
照合の条件とプログラムを残しておけば、更新のたびに同じ確認を実行できます。データ構成や集計方針が変わったときは、比較の条件も見直します。
元データとの照合で確かめられるのは、数字が意図した処理を経て画面に届いているかどうかです。元データ自体の誤記や集計方針に疑問が見つかった場合は、その資料や業務を担当する人と確認します。点検の結果は、確認できたこと、必要な修正、判断が必要な点に分けて残します。
続く第2回「開けるのに、直せない」では、使う人と作る人が別の場合に、発注と引継ぎで揃えておきたいものを説明します。