Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

Tableau Prep での Lookup 表計算

公開日: Jun 19, 2023
説明

Tableau Prep で LOOKUP 表計算を使用して、分析のために別の行の値を参照することができません。

Cause

Tableau Prep で LOOKUP 計算を使用するには、製品のバージョンが 2023.2 以降である必要があります。  これよりも前のバージョンでは、LOOKUP は使用できませんでした。
解決策
1. Tableau Prep バージョン 2023.2 以降にアップグレードします。  Tableau Prep バージョン 2023.2 以降では、分析のために LOOKUP() 計算を使用して別の行の値を参照できるようになりました。詳細については、「Get Previous Value (以前の値を取得する)」を参照してください。

2. Tableau Prep バージョン 2023.1 以前を使用している場合は、次の回避策を確認します。

オフセット値を見つけるには、シフト自己結合を使用します。次の例では、サンプル データ セット "Superstore (スーパーストア)" を使用して、前日の総売上高を見つけます。ワークブックと Prep フローはどちらも、この記事の「添付ファイル」セクションからダウンロードできます。
  1. Tableau Prep で "Superstore (スーパーストア)" に接続します。詳細な手順については、「データに接続する」を参照してください。
  2. 集計ステップを作成します。詳細な手順については、「Aggregate and group values (値の集計とグループ化)」を参照してください。
  3. [集計 1] で、[注文日] を [グループ化したフィールド] に、[売上高] を [集計フィールド] にドラッグします。
  4. クリーニング ステップを作成し、それに "行番号の作成" という名前を付けます。
  5. [行番号の作成] クリーニング ステップで、次の操作を行います。
    1. 次のような数式を使用して、"行番号" という名前の計算フィールドを作成します。 
    2. { ORDERBY [Order Date] ASC : ROW_NUMBER() }
    3. [売上高] の名前を "1 日あたりの売上高" に変更します。
  6. クリーニング ステップを作成し、それに "行番号 + 1" という名前を付けます。 
  7. [行番号 + 1] クリーニング ステップで、次の操作を行います。
    1. 次のような数式を使用して、"行番号 + 1" という名前の計算フィールドを作成します。
    2. [Row Number] + 1
    3. [1 日あたりの売上高] の名前を "前日の 1 日あたりの売上高" に変更します。
    4. [行番号] を削除します。
  8. [行番号 + 1] クリーニング ステップを [行番号の作成] クリーニング ステップにドラッグし、[結合] にドロップします。
  9. [結合 1] で、次の操作を行います。
    1. 結合句を [行番号] = [行番号 + 1] に更新します。
    2. ベン図をクリックして [左] 結合を作成します。 
  10. 結合から新しいクリーニング ステップを作成し、それに "フィールドの削除" という名前を付けます。
  11. [フィールドの削除] クリーニング ステップで、[行番号]、[行番号 + 1]、[注文日-1] の各フィールドを削除します。
  12. [フィールドの削除] クリーニング ステップを [行番号の作成] クリーニング ステップにドラッグし、[結合] にドロップします。
  13. [結合 3] で、Tableau は自動的に [注文日] = [注文日] で結合します。
  14. [結合 3] の後にクリーニング ステップを追加し、それに "マージ結合フィールド" という名前を付けます。
  15. [マージ結合フィールド] クリーニング ステップで、[注文日] と [注文日-1] をマージします。
  16. データを出力し、Tableau Desktop でその出力に接続します。
  17. 右側のデータ ペインで [前日の 1 日あたりの売上高] を右クリックし、[既定のプロパティ] > [集計] > [平均] の順に選択します。
  18. [1 日あたりの売上高] に対して手順 17 を繰り返します。
その他のリソース
  • Tableau Desktop での表計算がより優れた解決策になる場合があります。表計算は動的です。添付のワークブック内の "Table Calculations Example (表計算の例)" ワークシートで [行] シェルフに [カテゴリー] が追加された場合は、カテゴリーごとの前日の売上高を返すように表計算が自動的に更新されます。逆に、Prep フローからの出力は静的です。つまり、出力を変更するには、Prep フローを更新する必要があります。
  • この例では、1 日あたり複数のレコードが存在するため、始まりの集計ステップが必要です。基になるデータ内の以前のレコードから値を返すことが目標である場合、集計ステップは必要ありません。また、手順 17 と 18 も必要ありません。
  • Tableau Prep では、同じ日のすべてのレコードに対して総売上高の値を返すため、既定の集計を平均に変更するための手順 17 と 18 が必要です。そのため、SUM([Previous Sales Per Day]) は、その日の注文の数だけ複製されます。この複製を処理する方法は複数存在します。別の解決策については、「LOD 計算を使用して重複データを削除する」を参照してください。
  • [注文日] = [注文日 + 1] のような、何かの値に対するシフト自己結合も考えられます。ただし、欠落した日付が存在する場合は、これにより NULL が作成されます。この解決策で、代わりに [行番号] = [行番号 + 1] で結合したのはこのためです。 
ナレッジ記事番号

001471487

添付ファイル

recreate LOOKUP in Prep.tflx

1001 KB

LOOKUP recreated in Prep_v2022.1.twbx

1683 KB

 
読み込み中
Salesforce Help | Article