知識庫

以清單顯示維度成員,而不是以個別列或標記來顯示


發佈時間 : 03 Sep 2015
上次修改日期 : 20 Jul 2023

問題

如何以清單顯示維度的所有成員,而不是以個別列或標記來顯示。例如,為每個類別將子類別串連到以逗號分隔的清單中。 

環境

Tableau Desktop

答案

選項 1:在 Tableau Deskop 中使用表計算

步驟 1:建立計算
  1. 建立一個名稱類似於「建立清單」的導出欄位,計算方法如下所示:
    IF FIRST()= 0
    THEN MIN([Sub-Category])
    ELSE PREVIOUS_VALUE("") + ", " + MIN([Sub-Category])
    END
  2. 建立一個名稱類似於「子類別清單標籤」的導出欄位,計算方法如下所示:
    WINDOW_MAX([Create the list] )

    編輯附帶的工作簿中的計算欄位,了解有關這些計算的工作方式的其他說明。
步驟 2:建立長條圖檢視
  1. 將 [類別] 與 [子類別] 拖曳至「列」架
  2. 將 [銷售額] 拖曳到欄架
  3. 將 [子類別] 拖曳至標記卡片上的「色彩」
    附註:檢視中必須包含 [Sub-Category],計算才能正常運作。如果最終檢視不應包括工具提示中列出的維度,請參見「進階選項 1」工作表/索引標籤,以取得附加範例工作簿中的其他指示 - list dimenion values_v2018.1.twbx
  4. 將 [子類別清單] 拖曳至標記卡片上的「工具提示」
  5. 在「工具提示」上的 [子類別清單] 按一下滑鼠右鍵,並選取「計算依據」>「子類別」
附註:如果將其他維度新增至檢視,則可能需要更新「計算依據」設定。有關如何使用「計算依據」設定控制表函數輸出的詳細說明,請參閱使用表計算轉換值

選項 2:使用 Tableau Prep

  1. 新增步驟
  2. 在「清除 1」中的 [子類別] 按一下滑鼠右鍵,並選取「重複欄位」
  3. 新增彙總
  4. 在「彙總 1」中,執行以下動作:
    1. 將「類別」新增至「分組欄位」
    2. 在「其他欄位」的清單中尋找「子類別」,按一下「GROUP」,並選取「最小值」(這會將 MIN(Sub-Category) 新增至「彙總欄位」)
    3. 在「彙總欄位」中的 MIN(Sub-Category) 按一下滑鼠右鍵,並選取「重新命名」。將其重新命名為「子類別(第一個)」之類的名稱
    4. 將 MAX(Sub-Category-1) 新增至「彙總欄位」
    5. 將 MAX(Sub-Category-1) 重新命名為「子類別(最後一個)」之類的名稱
  5. 將「彙總 1」拖曳至「清除 1」上,然後將「彙總 1」拖曳至「聯結」上
  6. 從「聯結 1」新增一個步驟
  7. 在「清除 2」中,使用以下公式建立名稱為「篩選的子類別」的導出欄位
    IF [Sub-Category] != [Sub-Category (first)]
    AND [Sub-Category] != [Sub-Category (last)]
    THEN [Sub-Category]
    END
  8. 在「清除 2」中,複製 [Filtered Sub-Category]
  9. 在「清除 2」中,移除 [類別 1] 與 [子類別]
  10. 重複步驟 3-9,以視需要建立多個欄位。在此範例中,具有最多子類別的類別有 9 個子類別,因此,Prep 流程需要 5 個彙總步驟才能建立 10 個欄位,以便不會遺漏任何子類別。
  11. 在最後一個「清除」步驟中,使用以下公式建立名稱類似「分組的子類別」的導出欄位:
    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。
  12. 輸出資料
這篇文章是否解決了問題?