2016-11-30 411 views
-1

的情況下組合列中的單元格我必須執行Power BI(DAX)中的任務,其中有用戶列表和他們的工作領域。 我必須將每個用戶對應的所有字段組合起來,找到最高的頻率組合。
以下是我打算如何做到的。 如何從「示例」文件生成「預期結果」?Power BI:在條件爲

Sample: 
    ID  Value 
    a  medicine 
    b  automobile 
    c  banking 
    d  scientist 
    a  banking 
    a  scientist 
    d  banking 

Expected Result: 
ID  Value Combi 
a  medicine|banking|scientist 
b  automobile 
c  banking 
d  scientist|banking 

回答

2

您可以連接多行值併產生通過CONCATENATEX() DAX功能分隔字符串。然後使用ADDCOLUMNS和SUMMARIZE來獲得所需的結果。

Expected Table = 
SUMMARIZE (
    ADDCOLUMNS (
     'Table', 
     "Combined Value", CONCATENATEX (
      FILTER (
       SUMMARIZE ('Table', 'Table'[ID], [Value]), 
       [ID] = EARLIER ('Table'[ID]) 
      ), 
      'Table'[Value], 
      "|" 
     ) 
    ), 
    [ID], 
    [Combined Value] 
) 

它產生:

enter image description here


打破邏輯

在我看來,最簡單的方法是在你的表來生成合並創建計算列值欄:

Combined Value = 
CONCATENATEX (
    FILTER (
     SUMMARIZE ('Table', 'Table'[ID], [Value]), 
     [ID] = EARLIER ('Table'[ID]) 
    ), 
    'Table'[Value], 
    "|" 
) 

然後,您可以根據您的表格與先前創建的計算列創建彙總表。要創建計算表,請轉到建模選項卡並單擊New Table圖標。

enter image description here

使用該表達式:

Resumed Table = 
SUMMARIZE ('Table', [ID], 'Table'[Combined Value]) 

你會得到像這樣的表:

enter image description here

雖然這兩種方法工作得很好,該建議的方式來處理這個問題直接來自Power Query或源代碼。

讓我知道這是否有幫助。