【发布时间】:2021-08-12 02:20:51
【问题描述】:
【问题讨论】:
标签: excel powerbi powerquery
【问题讨论】:
标签: excel powerbi powerquery
因为您的测量 ID 在每个系列中都是数字且连续的
[Index]-[Measurement ID]
如果实际数据中的测量 ID 不符合该模式,则创建一个与该模式匹配的等效索引应该相对容易,然后使用相同的算法
现在,当您进行 Pivot 时,您将获得想要的结果。
M 码
let
Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{
{"Measurement ID", Int64.Type}, {"Measurement Result", type number}}),
#"Added Index" = Table.AddIndexColumn(
#"Changed Type", "Index", 1, 1, Int64.Type),
#"Added Custom" = Table.AddColumn(#"Added Index", "Custom",
each [Index]-[Measurement ID]),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Index"}),
#"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Removed Columns", {
{"Measurement ID", type text}}, "en-US"),
List.Distinct(Table.TransformColumnTypes(#"Removed Columns", {
{"Measurement ID", type text}}, "en-US")[#"Measurement ID"]), "Measurement ID", "Measurement Result"),
#"Removed Columns1" = Table.RemoveColumns(#"Pivoted Column",{"Custom"})
in
#"Removed Columns1"
如果您的测量 ID 列不在指定的模式中
要创建我们的自定义系列,我们可以使用(在插入索引列之后),
#"Added Custom" = Table.AddColumn(#"Added Index", "sequence",
each if [Measurement ID] = #"Added Index"[Measurement ID]{0} then [Index] else null),
#"Filled Down" = Table.FillDown(#"Added Custom",{"sequence"}),
#"Removed Columns" = Table.RemoveColumns(#"Filled Down",{"Index"}),
【讨论】:
您似乎希望 Power Query 隐含地知道测量 ID 4 属于第二组数据?
除非您指定每个测量值属于第一组、第二组还是第三组,否则它不会为您执行此操作。
你可以:
例如,使用第三个选项,您的表格可能类似于:
| Set | ID | Result |
|---|---|---|
| 1 | 1 | a |
| 1 | 2 | b |
| 1 | 3 | c |
| 1 | 4 | null |
| 2 | 1 | d |
| 2 | 2 | e |
| 2 | 3 | f |
| 2 | 4 | g |
| 3 | 1 | h |
| 3 | 2 | i |
| 3 | 3 | j |
| 3 | 4 | null |
关于您的数据的信息不足,因此需要将详细信息和正确的解决方案留给您。
【讨论】: