[英]Convert Spotfire calculated column to PowerBi
我正在將 Spotfire 儀表板轉換為 Power BI,並且正在努力研究如何轉換我的計算列之一:
CASE
WHEN MostCommon(If([Language]="English (UK)",[Training title])) OVER ([Internal Course Code]) IS NULL THEN MostCommon(If([Language]="Dutch (The Netherlands)",[Training title])) OVER ([Internal Course Code])
ELSE MostCommon(If([Language]="English (UK)",[Training title])) OVER ([Internal Course Code])
END
情況:一些課程有多種語言版本。 所以[培訓名稱]不同,但內容相同,只是語言不同。 但是系統將其視為不同的課程。 在我的可視化中,我想將課程組合在一起(不考慮語言)。 這可以通過 [內部課程代碼] 列來完成。 但是,[內部課程代碼] 對最終用戶沒有意義,因此我想創建一個新列,其中我在 [內部課程代碼] 旁邊包含 [培訓標題]。 由於內部課程代碼有不同的標題,我想顯示 (1) 英文標題。 在某些情況下沒有英文標題,那么我想顯示荷蘭文標題。
在 Spotfire 中,我使用了 OVER 函數。 有沒有人建議如何在 PowerBI 中寫下這個?
非常感謝任何幫助或指導!
示例數據和所需的 output:
內部課程代碼 | 培訓名稱 | 語言 | 期望 OUTPUT |
---|---|---|---|
100 | 樂觀 101 | 英語(英國) | 樂觀 101 |
100 | 初學者的樂觀主義 | 荷蘭語(荷蘭) | 樂觀 101 |
100 | 樂觀,就業模式 | 法語(法國) | 樂觀 101 |
139 | 數字化轉型 | 荷蘭語(荷蘭) | 數字化轉型 |
169 | 公開假釋 | 法語(法國) | 演講技巧 |
169 | 演講技巧 | 英語(英國) | 演講技巧 |
169 | 主持人 | 荷蘭語(荷蘭) | 演講技巧 |
186 | 玻璃制品 leiderschap | 荷蘭語(荷蘭) | 玻璃制品 leiderschap |
81 | Beïnvloeden | 荷蘭語(荷蘭) | 影響力 |
81 | 影響者 | 法語(法國) | 影響力 |
81 | 影響力 | 英語(英國) | 影響力 |
給你 go。確保將自定義列中的#"Changed Type" 更改為上一步的名稱。
源表:
結果:
自定義列:
自定義列代碼:
let rows =
Table.SelectRows(#"Changed Type", (x)=> x[Internal Course Code] = _[Internal Course Code] and (Text.StartsWith(x[Language], "English") or Text.StartsWith(x[Language], "Dutch"))),
sorted = Table.Sort(rows, {"Language", Order.Descending})
in sorted[Training Title]{0}
全量查詢
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("jZFBS8QwEIX/ytCTQg+twrpeRVdEUEE9rXvINm/bwemkJOn+LX+Ef8y0orBo6Z5CmPe9Ny9Zr7OyKCjLs8cucsuhpbIoh/uN1sKhoZPX+1PKNvkfIWjvnKctalaFD8Psuo9VQl4a0ANiAy9GbZjgc2qdBdm3vijOLtB24ngQrDx0cFl5oxV+4PPLMYBrjkZAMQ3DzvnWRMZ89GKkn5Kz9SAx1Bnvkg2Uun4rXE0H/6IBGlOaU3p+Z5Ew8UoHeiTL+e2Wi0FzKyY0EAtPAk5HqBrTzdLL8buu8Pmhe3GwRwR+I3e6kz41TnlT5Q+FrPU/nTdf", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Internal Course Code" = _t, #"Training Title" = _t, Language = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Internal Course Code", Int64.Type}, {"Training Title", type text}, {"Language", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each let rows =
Table.SelectRows(#"Changed Type", (x)=> x[Internal Course Code] = _[Internal Course Code] and (Text.StartsWith(x[Language], "English") or Text.StartsWith(x[Language], "Dutch"))),
sorted = Table.Sort(rows, {"Language", Order.Descending})
in sorted[Training Title]{0})
in
#"Added Custom"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.