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