以动态创建以更改数据的列为条件 [英] Conditional on columns created dynamically to change data

查看:24
本文介绍了以动态创建以更改数据的列为条件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

正在寻找一种基于另一列更改列值的方法,但是我想要更改的列是动态创建的,因此在POWER查询中不是非常简单。这是我之前问过的问题,为了达到这一部分,现在我又被困住了。Add Custom and Dynamic columns

前表

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆