我想在我的 power查询 表中添加if else条件列(“ E”),该条件列将检查我的“ C”列中的值是否相等达到或不达到该列的最大值。如果为true,则该字段的值应为列中的值,否则为-1。
该列的excel等效公式如下
if(Max(C:C)=C2,C2,"-1") #2 = row number
repeated in all the rows for E column
等效宏代码
mx = Application.worksheetfunction.max(range("C:C"))
for i = 2 to 20
if range("C"&i).value = mx then
range("E"&i).value = mx
else
range("E"&i).value = -1
end if
next i
在尝试使用添加条件列时,我没有将Statistic函数作为选项,在M语言中,我尝试使用以下代码
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"A", Int64.Type}, {"B", type datetime}, {"C", Int64.Type}, {"D", Int64.Type}}),
x = Table.Max(#"Changed Type","C")
in
x
x给出了一个表而不是一个值,所以我不能在if else语句中使用它。我也在尝试添加自定义列,但找不到任何解决方案。
下面是供参考的样本表。
答案 0 :(得分:3)
关闭。试试
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"A", Int64.Type}, {"B", type datetime}, {"C", Int64.Type}, {"D", Int64.Type}}),
x = List.Max(#"Changed Type"[C]),
#"Added Custom" = Table.AddColumn(#"Changed Type", "E", each if [C] = x then [C] else -1)
in #"Added Custom"
或保存一个步骤
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"A", Int64.Type}, {"B", type datetime}, {"C", Int64.Type}, {"D", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "E", each if [C] = List.Max(Source[C]) then [C] else -1)
in #"Added Custom"