詳細レベル、ランク、タイル計算の作成

: バージョン 2020.4.1 以降では、Tableau Server および Tableau Cloud でフローの作成と編集を行えるようになりました。このトピックの内容は、特に記載がない限り、すべてのプラットフォームに適用されます。Web 上でのフローの作成の詳細については、Tableau Server(新しいウィンドウでリンクが開く) および Tableau Cloud(新しいウィンドウでリンクが開く) ヘルプの「Web 上の Tableau Prep」を参照してください。

計算フィールドを使用すると、データ ソースに既に存在するデータを使用して新しいデータを作成できます。Tableau Prepでは、Tableau Desktop と同じ計算タイプを多数サポートしています。計算の作成に関する一般的な情報については、「Tableau での計算の開始」(新しいウィンドウでリンクが開く)を参照してください。

: 計算フィールドを作成するときは、予約名「レコード数」を使用しないでください。この予約名を使用すると、パーミッションに関連するエラーが発生します。

バージョン 2020.1.3 以降の Tableau Prep Builder および Web 上では、FIXED 詳細レベル (LOD) と RANK および ROW_NUMBER 分析関数を使用して、より複雑な計算を実行できます。

たとえば、FIXED LOD 計算を追加してテーブル内のフィールドの粒度を変更したり、ROW_NUMBER () 分析関数を使用して重複行をすばやく検索したり、RANK () 関数のいずれかを使用して、類似するデータを持つ選択行の上位 N 個または下位 N 個の値を検索したりできます。これらのタイプの式を作成する際に、より詳しいガイド付きの操作を行いたい場合は、ビジュアル計算エディターを使用できます。

Tableau Prep Builder バージョン 2021.4.1 以降、または Web 上で、タイル機能を使用して、指定された数のバケットに行を分配できます。

: Tableau Desktop でサポートされている関数の中には、Tableau Prep ではまだサポートされていないものもあります。Tableau Prep で使用できる関数については、計算エディターの関数リストを確認してください。

詳細レベルの計算

同じ表内で複数の粒度レベルでデータを計算する必要がある場合は、それを行うための詳細レベル (LOD) 式を記述できます。たとえば、各地域の総売上高を検索する場合は、{FIXED [Region] : SUM([Sales])} のような計算を記述できます。

Tableau Prepは FIXED 詳細レベル表現をサポートし、構文 {FIXED [Field1],[Field2] : Aggregation([Field)} を使用します。

LOD 表現の式には 2 つの部分があり、コロンで区切られています。

  • FIXED [フィールド] (必須): 値を計算するフィールドです。たとえば、顧客と地域の総売上高を検索する場合は、FIXED [Customer ID], [Region]: と入力します。フィールドを選択しない場合、コロンの右側で定義された集計を実行して、その値をすべての行に対して繰り返すことになります。

  • Aggregation ([フィールド]) (必須): 計算対象と必要な集計のレベルを選択します。たとえば、総売上高を検索する場合は、SUM([Sales] と入力します。

Tableau Prep でこの機能を使用する場合は、次の要件が適用されます。

  • INCLUDE および EXCLUDE の LOD 表現はサポートされません。
  • 集計計算は LOD 表現内でのみサポートされます。たとえば、SUM([Sales]) は有効ではありませんが、{FIXED [Region] : SUM([Sales])} は有効です。
  • LOD 表現内でネストの式はサポートされません。たとえば、{ FIXED [Region] : AVG( [Sales] ) / SUM( [Profit] )} はサポートされません。

  • LOD 表現と別の式の組み合わせはサポートされません。たとえば、[Sales]/{ FIXED [Country / Region]:SUM([Sales])} はサポートされません。
  • 詳細レベル (LOD) 計算の作成

    詳細レベル計算を作成するには、計算エディターを使用して自分で計算を記述できますが、より詳しいガイド付きの操作を行いたい場合は、ビジュアル計算エディターを使用できます。このビジュアル計算エディターでは、フィールドを選択すれば Tableau Prep が計算を記述してくれます。

    計算エディター

    1. [プロファイル] ペインのツールバーで [計算フィールドの作成] をクリックするか、プロファイル カードまたはデータ グリッドで [その他のオプション] メニューをクリックし、[計算フィールドの作成][カスタム計算] の順に選択します。

    2. 計算エディターで、計算の名前を入力して式を入力します。

      たとえば、都市別の製品出荷平均日数を検索するには、次のような計算を作成します。

    ビジュアル計算エディター

    リストからフィールドを選択すると、選択に応じて Tableau Prep が計算を作成します。結果のプレビューが左側のペインに表示されるので、選択に応じた結果も途中で確認できます。

    1. プロファイル カードまたは [結果] ペインで、[その他のオプション] メニューをクリックし、[計算フィールドの作成] > [固定 LOD] を選択します。

    2. ビジュアル計算エディターで、次の操作を行います。

      • [グループ化] セクションで、値を計算するフィールドを選択します。[計算フィールドの作成] > [固定 LOD] メニュー オプションを選択したフィールドが、既定で追加されます。プラス アイコンをクリックして、計算にフィールドを追加します。これにより、式の左側の {FIXED [Field1],[Field2] : に値が設定されます。
      • [次を使用して計算] セクションで、新しい値の計算に使用するフィールドを選択します。次に、集計を選択します。これにより、式の右側の Aggregation([Field)} に値が設定されます。

        フィールドの下の図では、値の分布と各値の組み合わせの総数が示されます。データのタイプに応じて、ボックス プロット、値の範囲、または実際の値が表示されます。

        : 使用可能な集計値は、フィールドに割り当てられたデータ型によって異なります。

      • フィールドを削除するには、[グループ化] セクションのフィールドのドロップダウン ボックスで右クリック (MacOS の場合は Cmd を押しながらクリック) し、[フィールドの削除] を選択します。

      • 左側のペインで、フィールド ヘッダーをダブルクリックし、計算の名前を入力します。
    3. [完了] をクリックして、新しい計算フィールドを追加します。[変更] ペインに、Tableau Prep によって生成された計算が表示されます。[編集] をクリックすると、ビジュアル計算エディターを開いて変更を加えることができます。

ランクまたは行番号を計算する

分析関数 (ウィンドウ計算と呼ばれることもある) を使用すると、表全体またはデータ セット内の選択行 (パーティション) を対象に計算を実行できます。たとえば、選択行にランクを適用する場合は、次の計算構文を使用します。

{PARTITION [field]: {ORDERBY [field]: RANK() }}

  • PARTITION (オプション): 計算を実行する行を指定します。複数のフィールドを指定できますが、テーブル全体を使用する場合、関数のこの部分を省略することで Tableau Prep がすべての行をパーティションとみなします。例: {ORDERBY [Sales] : RANK() }

  • ORDERBY (必須): ランクのシーケンスの生成に使用する 1 つまたは複数のフィールドを指定します。

  • Rank () (必須): 計算するランクの種類または ROW_NUMBER () を指定します。Tableau Prep は RANK()、RANK_DENSE()、RANK_MODIFIED()、RANK_PERCENTILE()、および ROW_NUMBER() 関数をサポートします。

  • DESC または ASC (オプション): 降順 (DESC) または昇順 (ASC) を表します。既定では、ランクは降順で並べ替えられるため、降順を式で指定する必要はありません。並べ替え順序を変更する場合は、式に ASC を追加します。

    両方のオプションを関数に含めることもできます。たとえば、選択行をランク付けする必要があるが、行を昇順に並べ替えてからランクを降順に適用したい場合は、式にこれら 2 つのオプションを含めます。例: {PARTITION [Country], [State]: {ORDERBY [Sales] ASC,[Customer Name] DESC: RANK() }}

この機能を使用する場合は、次の要件が適用されます。

  • RANK () 関数内でネストの式はサポートされません。たとえば、[Sales]/{PARTITION [Country]: {ORDERBY [Sales]: RANK() }} / SUM( [Profit] )} はサポートされません。
  • RANK () 関数と別の式の組み合わせはサポートされません。たとえば、[Sales]/{PARTITION [Country]: {ORDERBY [Sales]: RANK() }} はサポートされません。

サポートされる分析関数

関数説明結果
RANK ()

各行に、1 から始まる整数のランクを昇順または降順で割り当てます。複数の行の値が同一である場合、値の最初のインスタンスに割り当てられたランクが共有されます。次の行のランクを計算する際、同じランクの行の数も追加されるため、ランク値が連続しない場合があります。

サンプル計算: {ORDERBY [Commission] DESC: RANK()}

RANK_DENSE()

各行に、1 から始まる整数のランクを昇順または降順で割り当てます。複数の行の値が同一である場合、値の最初のインスタンスに割り当てられたランクが共有されますが、ランク値はスキップされないため、連続するランク値が表示されます。

サンプル計算: {ORDERBY [Commission] DESC: RANK_DENSE()}

RANK_MODIFIED()

各行に、1 から始まる整数のランクを昇順または降順で割り当てます。複数の行の値が同一である場合、値の最後のインスタンスに割り当てられたランクが共有されます。Rank_Modified は Rank + (Rank + Number of duplicate rows - 1) として計算されます。

サンプル計算: {ORDERBY [Commission] DESC: RANK_MODIFIED()}

RANK_PERCENTILE()

各行に、0 から 1 までの百分位値のランクを昇順または降順で割り当てます。RANK_PERCENTILE は (Rank-1)/(Total rows-1) として計算されます。

サンプル計算: {ORDERBY [Commission] DESC: RANK_PERCENTILE()}

注:同順位の場合、Tableau Prep は SQL の PERCENT_RANK() と同様にランクを切り下げます。

ROW_NUMBER()

一意の行ごとに、連続する行 ID を割り当てます。行番号の値はスキップされません。重複する行がある状態でこの計算を使用すると、行の順序が変わっていれば、フローを実行するたびに結果が変化する可能性があります。

サンプル計算: {ORDERBY [Commission] DESC: ROW_NUMBER()}

次の例は、上記の各関数を同じデータセットに適用して比較したものです。

ランク計算または行番号計算を作成する

Rank または Row_Number の計算を作成するには、計算エディターを使用して自分で計算を記述できますが、より詳しいガイド付きの操作を行いたい場合は、ビジュアル計算エディターを使用できます。このビジュアル計算エディターでは、フィールドを選択すれば Tableau Prep が計算を記述してくれます。

: ROW_NUMBER () 計算は、ビジュアル計算エディターでは使用できません。

計算エディター

計算エディターを使用して、いずれかのサポートされる RANK () または ROW_NUMBER () 計算を作成します。サポートされる分析計算の一覧は、計算エディターで [分析] の下にある [参照] ドロップダウンに表示されます。

  1. [プロファイル] ペインのツールバーで [計算フィールドの作成] をクリックするか、プロファイル カードまたはデータ グリッドで [その他のオプション] メニューをクリックし、[計算フィールドの作成][カスタム計算] の順に選択します。

  2. 計算エディターで、計算の名前を入力して式を入力します。

    たとえば、最新の顧客注文を検索するには、次に示すような計算を作成し、番号 1 でランク付けされた顧客注文行のみを保持するようにします。

: ROW_NUMBER を使用して重複値を検索して削除する

Tableau Prep Builder の Superstore (スーパーストア) のサンプル データ セットを使用するこの例では、ROW_NUMBER 関数を使用して、フィールド [Row ID (行 ID)] の値が完全に重複するものを検索して削除します。

  1. "Sample Superstore (サンプル スーパーストア)" フローを開きます。

  2. [フロー] ペインで、[Orders West (オーダー西)] のインプット ステップとして、クリーニング ステップ [Rename States (都道府県名の変更)] をクリックします。

  3. ツールバーで [計算フィールドの作成] をクリックします。

  4. 計算エディターで新しいフィールドに「重複」という名前を付け、ROW_NUMBER 関数を使用して、式 {PARTITION [Row ID]: {ORDERBY[Row ID]:ROW_NUMBER()}} を実行し [Row ID (行 ID)] フィールドに行番号を追加します。[保存] をクリックします。

  5. 新しい計算フィールドで、フィールド値 1 を右クリック (MacOS の場合は Cmd を押しながらクリック) し、メニューから [保持] を選択します。

ビジュアル計算エディター

詳細レベル計算を作成するときと同様に、ビジュアル計算エディターを使用してランク計算を作成できます。計算に含めるフィールドを選択し、行のランク付けに使用するフィールドと計算するランクのタイプを選択します。結果のプレビューが左側のペインに表示されるので、選択に応じた結果も途中で確認できます。

  1. プロファイル カードまたは [結果] ペインで、[その他のオプション] メニューをクリックし、[計算フィールドの作成] > [ランク] を選択します。

  2. ビジュアル計算エディターで、次の操作を行います。

    • [グループ化] セクションで、値を計算する行を含むフィールドを選択します。これにより、計算のパーティション部分が作成されます。

      最初のフィールドを選択したら、プラス アイコンをクリックして、計算にフィールドを追加します。すべての行を含める場合、または選択したフィールドを削除する場合は、[グループ化] セクションのフィールドのドロップダウン ボックスを右クリック (MacOS の場合は Cmd を押しながらクリック) し、[フィールドの削除] を選択します。

    • [並べ替え] セクションで、新しい値のランク付けに使用するフィールドを選択します。[計算フィールドの作成] > [ランク] メニュー オプションを選択したフィールドが、既定で追加されます。

      プラス アイコンをクリックして計算に追加フィールドを追加し、[ランク] タイプを選択します。並べ替えアイコン をクリックして、ランクの順序を降順 (DESC) から昇順 (ASC) に変更します。

      : ランク値は、フィールドに割り当てられたデータ型によって異なります。

    • 左側のペインで、フィールド ヘッダーをダブルクリックし、計算の名前を入力します。

  3. [完了] をクリックして、新しい計算フィールドを追加します。[変更] ペインに、Tableau Prep Builder によって生成された計算が表示されます。[編集] をクリックすると、ビジュアル計算エディターを開いて変更を加えることができます。

タイルの計算

タイル機能を使用して、計算フィールドを作成することにより、指定された数のバケットに行を分配します。分配に使用するフィールドと、使用するグループ (タイル) の数を選択します。また、タイル化された行がグループに分配されるパーティションを作成するために、追加のフィールドを選択することもできます。計算エディターを使用して構文を手動で入力するか、ビジュアル計算エディターを使用してフィールドを選択すると、Tableau Prep が計算を書き込みます。

たとえば、学生データの行があり、上位 50% と下位 50% の学生を確認したい場合は、データを 2 つのタイルにグループ化できます。

次の例は、学生の成績を上位半分と下位半分に分けた 2 つのグループを示しています。このメソッドの構文は次のとおりです。

{ORDERBY [Grade] DESC:NTILE(2)}

フィールドの各値が個別のパーティションであるパーティションを作成し、パーティションごとにデータをグループに分割することもできます。

次の例では、Subject フィールドのパーティションを作成しています。科目ごとにパーティションが作成され、Grade フィールドに対して 2 つのグループ (タイル) が作成されます。次に、行は 3 つのパーティションの 2 つのグループに均等に分配されます。このメソッドの構文は次のとおりです。

{PARTITION [Subject]:{ORDERBY [Grade] DESC:NTILE(2)}}

タイル計算の作成

タイル計算を作成するには、計算エディターを使用して自分で計算を記述できますが、より詳しいガイド付きの操作を行いたい場合は、ビジュアル計算エディターを使用できます。このビジュアル計算エディターでは、フィールドを選択すれば Tableau Prep が計算を記述してくれます。

ビジュアル計算エディター

ビジュアル計算エディターを使用してタイル計算を作成すると、結果のプレビューが左側のペインに表示されます。

  1. プロファイル カードを選択して、タイル計算を作成します。

  2. [その他のオプション] メニューをクリックし、[計算フィールドの作成] > [タイル] を選択します。

    選択したプロファイル カードが ORDERBY フィールドとして追加されます。

  3. ビジュアル計算エディターで、次の操作を行います。

    • タイルのグループ化の数を選択します。タイルの既定値は 1 です。

    • [グループ化] セクションで、値を計算する行のフィールドを選択します。これにより、計算の PARTITION 部分が作成されます。1 回の計算で複数の Group by フィールドを使用できます。

      プラス アイコンをクリックして、計算にフィールドを追加します。すべての行を含める場合、または選択したフィールドを削除する場合は、[グループ化] セクションのフィールドのドロップダウン ボックスを右クリック (MacOS の場合は Cmd を押しながらクリック) し、[フィールドの削除] を選択します。

    • 左側のペインで、フィールド ヘッダーをダブルクリックし、計算の名前を入力します。

    • [並べ替え] セクションで、新しい値のグループ化と分配に使用する 1 つ以上のフィールドを選択します。少なくとも 1 つの Order by フィールドが必要です。[計算フィールドの作成] > [タイル] メニュー オプションを選択したフィールドが、既定で追加されます。

  4. 結果を並べ替えるには、次の操作を行います。

    • いずれかの計算行をクリックして、選択したグループの結果をフィルター処理します。

    • Order by フィールドを昇順または降順に変更します。

  5. [完了] をクリックして、新しい計算フィールドを追加します。

  6. [変更内容] ペインに、Tableau Prep Builder によって生成された計算が表示されます。[編集] をクリックすると、ビジュアル計算エディターを開いて変更を加えることができます。

    次の例は、行の四分位数分割を示しています。米国の 4 つの地域に基づいてパーティションが作成され、Sales フィールドのデータがパーティションに均等にグループ化されています。

計算エディター

  1. [プロファイル] ペイン ツールバーで [計算フィールドの作成] をクリックするか、プロファイル カードまたはデータ グリッドで [その他のオプション] メニューをクリックし、[計算フィールドの作成] > [カスタム計算] を選択します。

  2. 計算エディターで、計算の名前を入力して式を入力します。たとえば、学生の行を成績ごとに 2 つのグループに並べてから、科目ごとにグループ化するには、{PARTITION [Subject]:{ORDERBY [Grade] DESC:NTILE(2)}} を使用します。

    タイルの計算には、次の要素が含まれます。 

    • PARTITION (オプション): partition 句は、結果セットの行を、NTILE() 関数が使用されるパーティションに分けます。

    • ORDERBY (必須): ORDER BY 句は、NTILE() が使用される各パーティションの行の分配を定義します。

    • NTILE (必須): NTILE は、行が分割される整数です。

      : すべての行が NTILE 句で割り切れる場合、この機能は行をタイルの数に均等に分割します。行数が NTILE 句で割り切れない場合、結果のグループは異なるサイズのビンに分割されます。

    • DESC または ASC (オプション): 降順 (DESC) または昇順 (ASC) を表します。既定では、タイルは降順で並べ替えられるため、降順を式で指定する必要はありません。並べ替え順序を変更する場合は、式に ASC を追加します。

  3. [保存] をクリックします。

    生成されたフィールドには、テーブルの各行に関連付けられたタイルのグループ (ビン) の割り当てが表示されます。

フィードバックをお送りいただき、ありがとうございます。フィードバックは正常に送信されました。ありがとうございます!