Tableau(タブロー)の計算式フィールドのエラーについて
Tableau(タブロー)の計算式フィールドのエラーについて
今回確認すること 計算式フィールドの基本的なエラーと対症方法
今回も初心者向けトピックです。
学習をはじめてまもなく、計算フィールドを活用することが多くなります。その計算フィールドはさまざまなルールがあり、そのルールに違反するとエラーが表示されます。ノンプログラマの方にとってはこのエラーの内容がわかりづらいまたは理解できないことが良くあります。そこで、今回、あらためて、わかりやすく整理していきたいと思います。
[計算フィールドでよく出るエラー]
- 全角スペースや全角文字が混じってしまった
- 閉じ括弧の数または位置がおかしい
- 関数の引数に、予定外の形式が入力されてしまったケース
- 大文字小文字を識別するケース
- 日付パース時でよくあるエラー
- IF関数で常連の非集計と集計エラー
- { } と ( ) と [ ] の区別がついていないケースでのエラー
全角スペースや全角文字が混じってしまった
文字列として処理する場合以外は、全角スペースや全角文字(特に全角カンマや全角のカッコ閉じなど)の使用は許容されておりません(文字列処理する場合は ” ” または ‘ ‘ で括る)。
赤字付近を見ると波線が引かれております。そして、計算エラー内容(左下の赤文字部分)は、「無効な文字」と記載されております。
全角スペースが混入)
全角カッコ閉じになっているケース)
閉じ括弧の数または位置がおかしい
関数が多用されると、閉じ括弧の数がそもそも合っていない、または、閉じ括弧の数は合っているものの位置が間違っていることがあります。特に、後者は形式的には正常と認識されてしまうことも多く、論理的な計算式の間違いに気づきにくい場合があり要注意です。
下記は、閉じ括弧自体が不足している)
形式的には正しいが論理的におかしい計算式)
正しい式はこちら。
(LOOKUP(SUM([売上]),0) – LOOKUP(SUM([売上]),-1)) / LOOKUP(SUM([売上]),-1)
関数の引数に、予定外の形式で入力されてしまったケース
関数に引数が設定されている場合は、データ型を正しく設定する必要があります。
下記は、LOOKUP関数の第一引数は、集計関数を予定しておりますため、SUM(), AVG(), COUNT(), COUNTD(), MAX(), MIN(), CORR()などの集計関数を設定する必要があります。最後のLOOKUP関数がそうなっていないケースです。
下記も良くあるケースです。
LOOKUP関数の第二引数は数値型を予定しておりますが、別のデータ型(文字列型)として入力してしまったケースです。
※ 文字列型で予定しているケースで「数値型」のデータを設定してしまうことも良くあります。
大文字小文字を識別するケース
また、関数によっては、引数の大文字小文字を区別する場合がありますので注意が必要です。
日付パース時でよくあるエラー
下記のように、対応関係がうまく取れなかったケースでは、エラーはなくても正しく表示されないケースがあります。
正しいケース) DATEPARSE(“dd.MMMM.yyyy”, “15.April.2004”)
対応関係を誤ったケース)
正しい日付フィールド記号はこちら。
IF関数で常連の非集計と集計エラー
おそらく、計算フィールドを使っていてもっとも多く出現し、もっとも理解に悩むエラーがIF関数の非集計と集計にまつわるエラーではないでしょうか。まずは、下記ケースを考えてみましょう。
IF関数の集計・非集計にまつわるよくあるエラー)
集計および、非集計の比較または、IF式の結果を混在させることはできませんというエラーがよく出ます。ひとことで片付けるならば、条件式が非集計なら、結果式も非集計で揃える。逆に、条件式が集計式なら、結果式も集計式で揃える、という指摘内容です。
- 集計式 = SUM(), AVG(), MIN(), MAX(), COUNT(), COUNTD(), CORR() などの集計関数で計算され、集計結果はひとつになる。
- 非集計 = 行単位なので対象は複数ある
条件式が非集計、結果式が集計なので、条件式が複数存在するにも関わらず、結果は一つのみということでこのままでは成立しません、ということを意味しております。
対応方法1 )非集計式で揃える
非集計式で揃える方式を採るメリットは、「合計」をあとからメジャー>平均 などに変更できる点です。
対応方法2 )集計式で揃える
条件式も集計式で揃えることで、集計結果 1:1という関係性になります。なお、MIN()やMAX()は文字列でも使用可能な集計関数です。どちらを使っても結果は同じです。
{ } と ( ) と [ ] の区別がついていないケースでのエラー
特に、FIXED関数などは、{ } を使います。( )ではありません。ただし、集計関数は()をこちらを使いますので注意が必要です。
FIXEDは{}を使い、その中の集計関数は()を使用する
正しくはこちら)
まとめ
今回は計算フィールドでよくあるエラーと対症方法について整理してみました。
過去の講座・セミナー開催でもっとも多い計算フィールドエラーは、全角 / 半角 の誤変換と閉じかっこの数が合わないです。特に、{} 、()、[] を全半角区別して入力できていないパターンが圧倒的多数です。これは、もはやTableauの問題ではなく、パソコンのタイピング能力の問題です。しっかりと入力できるように訓練しておいてください。万一、()などを入力する時に、”カッコ”と入力してからスペース変換している場合は入力方法そのものが誤っております。それは、とても時間効率が悪いやり方ですので今後は下記の入力を心がけてください。以下、効率よく変換する入力方法を記載しておきましたのでしっかりと暗記して使えるようにしておいてください。
計算フィールドは原則、半角モードで入力すること。
- ( → 半角モードにして、shift + 8
- ) → 半角モードにして、shift + 9
- { → 半角モードにして、shift + {
- } → 半角モードにして、shift + む
- [ → 半角モードにして、[
- ] → 半角モードにして、む
- ^ → 半角モードにして、へ
- $ → 半角モードにして、shift + 4
- \ → 半角モードにして、option + ¥(MAC版) 半角モードでそのまま¥(WIN版)
Tableau(タブロー)を根本からスキルアップしたいかたは、ぜひ、弊社クラスルームトレーニングをご受講くださいませ!
https://web-kaizen.co.jp/%e3%82%af%e3%83%a9%e3%82%b9%e3%83%ab%e3%83%bc%e3%83%a0%e8%ac%9b%e5%ba%a7%ef%bc%88%e3%82%b3%e3%83%bc%e3%82%b9%e5%88%b6%ef%bc%89%e3%81%ae%e3%81%94%e6%a1%88%e5%86%85/
コメントを投稿するにはログインしてください。