2017-10-23 12 views
1

Tableauで集計フィールドを作成する際に問題があります。集計集計および集計結果以外の集計テーブル間違い

ID ... Status  Step1 Step2 Step3 
1  ... Accepted 1  1  1 
2  ... Waiting 1  0  0 
3  ... Discard 0  0  0 
4  ... Waiting 1  1  0 
... 

私は私の最後のステップの名前を与える計算列を作成したいのですが、ステータスが「受理」されている場合にのみ:私はそうのようなデータを持っています。それ以外の場合は、ステータスを欲しい。構文は非常に簡単です、それは次のようになります。

IF [Status] = 'Accepted' THEN (
    IF [Step3] = 1 THEN 'Step3' ELSEIF [STEP2] = 1 THEN 'Step2' ELSEIF [STEP1] = '1' THEN 'Step1' ELSE 'Step0') 
ELSE [Status] 

問題が列「ステータス」の次元であり、「ステップ」の状態が測定から来るということです。

Cannot mix aggregate and non-aggregate comparisons or results in 'IF' expressions. 

私はタブローに精通していないです。だから彼らは、私はそれが私はこのエラーを取得する理由であると思いAGG(ステップ1)、AGG(ステップ2)、... です。どのように私はこれを解決することができますか?

+0

こんにちは、[step3]指標の形式は何ですか?数値であると仮定して、文字列に変更してみてください。エラーを取り除きますか? –

+0

このコピーは実際のコードから貼り付けられていますか? step if文では、step 3&2がnumber 1と等しいならば、step 1で文字列( "1")と等しいかどうかを示しているようです。これを変更すると問題が解決されますか? – lampbob

+0

Step1の定義を表示できますか?計算されたフィールドか、データセット内の明示的なフィールドですか? –

答えて

0

ソリューション:

ちょうど集計一つに非集約関数(ステータス)を作成する関数のATTRを使用します。そしてそれらを組み合わせることが可能であり、計算が機能しています。

IF ATTR([Status]) = 'Accepted' THEN (
    IF [Step3] = 1 THEN 'Step3' ELSEIF [STEP2] = 1 THEN 'Step2' ELSEIF [STEP1] = '1' THEN 'Step1' ELSE 'Step0') 
ELSE ATTR([Status]) 
0

Tableauは自動的に数値を数値データとして解釈します。しかし、あなたの場合、それらはブール値(falseの場合は0、trueの場合は1)であり、実際には次元でなければなりません。

ステップ1、ステップ2、およびステップ3を寸法に変換します。フィールドを強調表示し、右クリックして、寸法に変換を選択します。