以动态创建以更改数据的列为条件 [英] Conditional on columns created dynamically to change data
本文介绍了以动态创建以更改数据的列为条件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
前表
True/False | DynamicColName1 | DynamicColName2 | . | DynamicColNameX |
---|---|---|---|---|
True | 50 | 60 | . | # |
FALSE | 50 | 60 | . | # |
FALSE | 50 | 60 | . | # |
FALSE | 50 | 60 | . | # |
True | 50 | 60 | . | # |
那个.只是为了说明列可以是X长的,因为标题的动态范围。#表示它可以是任何值。在这种情况下无关紧要。
这就是我现在希望表格显示的内容。如果True/False column=False,则动态列中的值更改为0。如果为True,则保持不变
后面的表格
True/False | DynamicColName1 | DynamicColName2 | . | DynamicColNameX |
---|---|---|---|---|
True | 50 | 60 | . | # |
FALSE | 0 | 0 | . | 0 |
FALSE | 0 | 0 | . | 0 |
FALSE | 0 | 0 | . | 0 |
True | 50 | 60 | . | # |
推荐答案
添加索引、取消透视、添加IF/THEN语句,然后重新透视
完整示例代码:
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Replaced Value" = Table.ReplaceValue(Source,null,0,Replacer.ReplaceValue,List.RemoveFirstN(Table.ColumnNames(Source),1)),
#"Added Index" = Table.AddIndexColumn(#"Replaced Value", "Index", 0, 1, Int64.Type),
#"Changed Type" = Table.TransformColumnTypes(#"Added Index",{{"True/False", type logical}}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"True/False", "Index"}, "Attribute", "Value"),
#"Added Custom" = Table.AddColumn(#"Unpivoted Other Columns", "Custom", each if [#"True/False"] then [Value] else 0),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Value"}),
#"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[Attribute]), "Attribute", "Custom", List.Sum),
#"Sorted Rows" = Table.Sort(#"Pivoted Column",{{"Index", Order.Ascending}}),
#"Removed Columns1" = Table.RemoveColumns(#"Sorted Rows",{"Index"})
in #"Removed Columns1"
这篇关于以动态创建以更改数据的列为条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文