有一个问题请假,麻烦帮忙解答:
想新建一列,为随机数,后续自动更新自动排名,主要涉及的是这一行:
=Table.AddColumn(结果,"随",each Number.Random())
但是很奇怪,我放在其他的表格中可以实现我需要的,但是我在下面的M函数中使用这个函数,但是出现的效果是这一栏的数据都是一样的,是为什么,是我前后的信息影响了他吗,那是什么信息影响了,自己尝试了很久都搞不清楚,麻烦解答,谢谢
let
源 = Excel.Workbook(File.Contents("E:\业务\平安\案件\案件.xlsx"), true),
表 =(x)=>源{[Name=x]}[Data],
*业务 =Table.TransformColumnTypes( 表("业务员"),{"分案",type number }),
业务员 = Table.AddColumn(业务,"随",each Number.Random()),*
案件 = Table.Buffer(Table.Sort( Table.TransformColumnTypes(表("案"),{{"委案金额", type number}}),{"委案金额",1}) ),
创建 = Table.AddColumn(案件,"汇总",each #table({"个案序列号","委案金额"},{{[个案序列号],[委案金额]}})),
目标量 = Table.AddColumn( Table.AddColumn(业务员,"目标",each List.Sum( 案件[委案金额])/List.Sum( 业务员[分案])*[分案]),"已分",each #table({"个案序列号","委案金额"},{{"0",0}})),
循环 =Table.Combine( List.Generate(()=>[a = 目标量,b = 创建],each Table.RowCount([a]) > 0 ,each
if Table.RowCount([b]) = 0 then[ a= #table(Table.ColumnNames(目标量),{}),b=[b]] else
[a=[z= Table.AddColumn ([a],"差距", (x)=>x[目标]-List.Sum(x[已分][委案金额])),
y = Table.Buffer(Table.Sort(Table.SelectRows(z,(x)=>x[差距]>0),{"差距",1})),
w =Table.FirstN([b],Table.RowCount(y)),
v = if Table.RowCount(y) = Table.RowCount(w) then Table.FromColumns(Table.ToColumns(y)&{w[汇总]},Table.ColumnNames(y)&{"汇"}) else Table.FromColumns(Table.ToColumns(Table.FirstN(y,Table.RowCount(w)))&{w[汇总]},Table.ColumnNames(y)&{"汇"}) ,
x = Table.RenameColumns(v,{"已分","替换"}),
r = Table.RemoveColumns( Table.AddColumn(x,"已分",each Table.Combine({[替换],[汇]})),{"差距","汇","替换"})
][r] ,
b=Table.RemoveFirstN([b],Table.RowCount(a)) ],each [a])),
分组 = Table.Group(循环,"姓名",{"合并",each List.Last([已分]) }),
展开 = Table.ExpandTableColumn(分组,"合并",{"个案序列号","委案金额"})
in
展开