ねこ吸いたい

勉強と読書記録など

【Tableau Tips】データインタープリターと名前の定義

なぜか2行目から始まる表、結合されたセル…ビジュアルアナリティクスには数多の壁があります。それらの壁をどうにかしてくれる便利機能がデータインタープリターです。

 

データインタープリターとは

Tableau DesktopとTableau Prepについている、そのままでは読み取りづらい微妙なExcelファイルを分析できるよういい感じにしてくれる入力オプションです。詳しくはヘルプを参照ください。

Excel、CSV、PDF、および Google スプレッドシートからのデータ インタープリターを使用するデータのクリーニング - Tableau

 

例えば左のデータをそのまま読み込むと、右のようにタイトル行が間違ったり、結合セルがNULLまみれになってしまいます。

     

これがワンクリックで分析できる形になります。便利ですね。

 

1シートに複数表入っている場合

これでは簡単すぎるので、少し意地悪な表を用意しました。1シートに複数表を入れないでほしいですね。すると親切にも、ここに複数の表が入っていませんか?と表のありそうな範囲を提示してくれました。

 

実際のファイルと見比べて、表の範囲が間違っている場合は手修正することもできます。

上記はTableau Desktop限定なのですが、Prep Builderにもつけて!というIdea(機能要望)があります。ぜひ投票を!

Tableau Community Forums

 

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を作り始める前にデータのモレがないかチェックしておきましょう。

 

【Tableau Tips】いつでも作れる会計年度

Tableauを仕事用に使っていると、ほしい会計年度がうまく出てこないことがあります。毎回検算用Vizを作るのはつらいので、色々試した結果を残しておきます。

Tableau Desktopの「年度開始月」設定機能

そもそもTableau Desktopには年度始まりを設定する機能があります。対象の日付を右クリック > 規定のプロパティ > 会計年度の開始 で指定できます。

それでええやん、と思うじゃないですか。そうでもないのです。

  • 想定した年度より大きい

例えば年度始まりを4月にすると、2022年4月は2023年度になります。日本では2022年度と表示されてほしいところですが、Tableauは米国基準の会計年度を表示します。米国基準だと締めの月(=2023年3月)を基準に年度表示されるため、1つ大きい数字が出てくるんですね。

  • Tableau Cloud/ServerのWeb編集では設定できない(2023年1月時点)

この機能はTableau Desktopのみで使用できます。Tableau CloudやServerのWeb編集を中心に使う方やExplorerユーザの方だと、別の方法で年度を表示する必要があります。

 

1大きいなら1引けばいいじゃない

もし「会計年度の開始」を設定できた場合は、こちらのKB(KnowledgeBase)が役に立ちます。出てきた年度から1を引いてしまえばいいのです。

会計年度が予想より大きい | Tableau Software

 

うるう年を考慮する

これで解決…と思いきや、そうはいきません。そう、うるう年です。上記のKBでは対象の日付から1年引きますが、うるう日から1年引くと存在しない日付が発生してしまいます。

  1. 2020年2月29日から1を引く
  2. 2019年2月29日は存在しない
  3. 2019年2月28日に丸められる

日付単位で数値を表示したい場合、2020年2月28,29日のデータがまとめて2020年2月28日に丸められるため、この方法はそのまま使えません。逆に日付単位では見せない、月単位でいい場合は気にしなくて済む可能性があります。

 

どこでも使える会計年度計算フィールド(4月始まり)

では「会計年度の開始」が利用できず、日単位の分析もあってうるう年も気にする人はどのように会計年度を表現すればよいのでしょうか。そんなときはほしい日付を計算フィールドで作っておいて、階層化します。

  • 年度

//月が3以下なら年から1引く
IF MONTH([オーダー日])<=3
THEN YEAR([オーダー日])-1
ELSE YEAR([オーダー日])
END

  • 上期下期

IF MONTH([オーダー日])<=9 AND MONTH([オーダー日])>3
THEN "上期"
ELSE "下期"
END

  • 四半期

IF MONTH([オーダー日])<=3 THEN 4 
ELSEIF MONTH([オーダー日])<=6 THEN 1
ELSEIF MONTH([オーダー日])<=9 THEN 2
ELSE 3
END

MONTH([オーダー日])

 

できあがったら元にした日付(ここではオーダー日)を使って、検算しておきましょう。

 

まとめ

Tableau Desktopがなくても、Explorerユーザでも、計算フィールドだけでできる会計年度計算でした。

会計年度の設定自体は便利なのですが、いつでも使える計算フィールドが手元にあると安心です。

サンプルワークブック(.twbx)のDLはこちら

今さら統計検定3級を取った

きっかけ

年末年始やることがなかったので…

という本音はさておき、長年データや数字、ビジュアライズに関わる仕事をしておきながら、実は統計を履修していませんでした。本は買ったけど記号のビジュアルでウェってなって何度か投げています。

教科書で体系的に勉強するのは大変なのでまず問題集を買いました。良くない癖です。

申し込み

申し込みフェーズが地味に大変。アカウントを作るなどしなければならず、年末に都合のよい会場の空きを調べて結局1/7に申し込みました。

 

過去問を解く

過去問においては、表とグラフが読めれば8割前後取れます。65%の合格点は余裕です。

問題は冒頭にある新傾向の例題です。2021年の過去問に若干その要素があるものの、似たような問題の経験値があまり積めません。

本番は電卓ありといえど60分30問なので、時間のかかる計算問題は捨てていきます。

なお試験当日やっと過去問を1周できたので、間違えたところだけあと2周しました。あとは「統計検定3級 チートシート」でググった結果を眺めながら現地へ向かいます。

 

テストを受ける

試験形式はCBTなので、会場のPCでポチポチするやつです。自前の計算機と、配られた紙とペンが使えました。

以前他の試験でラミネート加工された用紙とぶっといペンを使うのがありましたが、今回は普通の紙で安心しました。会場やテストで違うのかな?

そんなこんなで1時間ギリギリまで奮闘しているとその場で結果が出ます。待ち時間がないので心臓に優しいですね。

 

結果

ほぼ過去問と同じような点数で合格。

というか仕事内容的に落ちたら退職レベル…なので、また時間を作って2級に挑戦したいです。


f:id:neko-suitai:20230119194752j:image