ナレッジベース

ディメンション メンバーを個別の行やマークではなくリストで表示する


発行: 03 Sep 2015
最終修正日: 20 Jul 2023

ご質問

ディメンションのすべてのメンバーを個別の行やマークではなくリストで表示する方法。たとえば、サブカテゴリを連結してカテゴリごとのカンマ区切りリストにして表示します。 

環境

Tableau Desktop

回答

オプション 1: Tableau Deskop の表計算を使用する

ステップ 1: 計算の作成
  1. "Create the list (リスト作成)" などの名前を付けて、次のような計算の計算フィールドを作成します。
    IF FIRST()= 0
    THEN MIN([Sub-Category])
    ELSE PREVIOUS_VALUE("") + ", " + MIN([Sub-Category])
    END
  2. "Sub-Category List Label (サブカテゴリ リスト ラベル)" などの名前を付けて、次のような計算の計算フィールドを作成します。
    WINDOW_MAX([Create the list] )

    これらの計算の仕組みに関する追加の注記については、添付のワークブックで計算フィールドを編集してください。
ステップ 2: 棒グラフ ビューの作成
  1. [Category (カテゴリ)] および [Sub-Category (サブカテゴリ)] を [行] シェルフにドラッグします
  2. [Sales (売上)] を [列] シェルフにドラッグします
  3. [Sub-Category (サブカテゴリ)] をマーク カードの [色] にドラッグします
    注: 計算が正しく実行されるように、[Sub-Category (サブカテゴリ)] を計算のビューに含める必要があります。ツールヒントでリストされているディメンションを最終ビューに含めるべきではない場合は、添付のサンプル ワークブック (list dimenion values_v2018.1.twbx) の "Adv Option 1 (詳細オプション 1)" ワークシート/タブの追加の説明を参照してください。
  4. [Sub-Category List (サブカテゴリ リスト)] をマークカードの [ツールヒント] にドラッグします
  5. [ツールヒント] で、[Sub-Category List (サブカテゴリ リスト)] を右クリックし、[次を使用して計算] > [Sub-Category (サブカテゴリ)] を選択します
: さらにディメンションをビューに追加している場合は、[次を使用して計算] 設定の更新が必要な場合があります。[次を使用して計算] 設定を使用してテーブル関数の出力を管理する方法の詳細については、「表計算を使用して値を変換する」を参照してください。

オプション 2: Tableau Prep を使用する

  1. ステップを追加します
  2. [Clean 1 (クリーニング 1)] で [Sub-Category (サブカテゴリ)] を右クリックし、[フィールドの複製] を選択します
  3. 集計を追加します
  4. [Aggregate 1 (集計 1)] で以下を実行します。
    1. [グループ化したフィールド] に [Category (カテゴリ)] を追加します
    2. [追加フィールド] のリストで [Sub-Category (サブカテゴリ)] を見つけ、[グループ] をクリックして [最小値] を選択します ([集計フィールド] に [MIN(Sub-Category) (MIN(サブカテゴリ))] が追加されます)
    3. [集計フィールド] で [MIN(Sub-Category) (MIN(サブカテゴリ))] を右クリックし、[名前の変更] を選択します。名前を "Sub-Category (first) (サブカテゴリ (最初))" などに変更します
    4. [MAX(Sub-Category-1) (MAX(サブカテゴリ 1))] を [集計フィールド] に追加します
    5. [MAX(Sub-Category-1) (MAX(サブカテゴリ 1))] の名前を "Sub-Category (last) (サブカテゴリ (最後))" などに変更します
  5. [Aggregate 1 (集計 1)] を [Clean 1 (クリーニング 1)] までドラッグし、[結合] の上にドロップします
  6. [Join 1 (結合 1)] からステップを追加します
  7. [Clean 2 (クリーニング 2)] で、"Filtered Sub-Category (フィルターされたサブカテゴリ)" という名前を付けて、次のような式を使って計算フィールドを作成します
    IF [Sub-Category] != [Sub-Category (first)]
    AND [Sub-Category] != [Sub-Category (last)]
    THEN [Sub-Category]
    END
  8. [Clean 2 (クリーニング 2)] で、[Filtered Sub-Category (フィルターされたサブカテゴリ)] を複製します
  9. [Clean 2 (クリーニング 2)] で、[Category-1 (カテゴリ 1)] と [Sub-Category (サブカテゴリ)] を削除します
  10. ステップ 3 ~ 9 を繰り返して必要な数のフィールドを作成します。この例では、1 つのカテゴリが持つサブカテゴリの数は最大で 9 個です。そのため、すべてのサブカテゴリが含まれるようにするには、Prep フローで 5 つの集計ステップを使用して 10 個のフィールドを作成する必要があります
  11. 最後の [Clean (クリーニング)] ステップで、"Grouped sub-categories (グループ化したサブカテゴリ)" のような名前を付けて、次のような式を使って計算フィールドを作成します。
    IF ISNULL([Sub-Category (first)])
    THEN ''
    ELSE [Sub-Category (first)] + ' '
    END
    
    + IF ISNULL([Sub-Category (second)])
    THEN ''
    ELSE [Sub-Category (second)] + ' '
    END
    
    + IF ISNULL([sub-category (third)])
    THEN ''
    ELSE [sub-category (third)] + ' '
    END
    
    + IF ISNULL([sub-category (third to last)])
    THEN ''
    ELSE [sub-category (third)] + ' '
    END
    
    + IF ISNULL([Sub-Category (second to last)])
    THEN ''
    ELSE [Sub-Category (second to last)] + ' '
    END
    
    + IF ISNULL([Sub-Category (last)])
    THEN ''
    ELSE [Sub-Category (last)] + ' '
    END

    上記の計算では、作成したすべてのサブカテゴリ フィールドが結合されます。サブカテゴリ フィールドに NULL 値がある場合、値と NULL 値を結合すると必ず NULL になるため、NULL を空の文字列 (引用符 (") 2 つ) に置き換える必要があります
  12. データを出力します。
この記事で問題は解決しましたか?