繁体   English   中英

将 Spotfire 计算列转换为 PowerBi

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM