一列数据在不新增列、不拆分源数据表情况下,前20行、后30行分别做不同运算, 比如下图,前20行数据乘以10,后30行数据除以100,不想拆分表格,新增列,怎么在这列数据直接操作? 求大神指点,谢谢!!
越努力越幸运
最简单的方法,先添加索引列,然后根据索引列添加条件列。 不新增列的话,用FirstN/LastN分别取前后对应的行数,然后分别transform转换,最后合并。
= Table.TransformColumns(Table.FirstN(源,20),{},each _*10) & Table.TransformColumns(Table.LastN(源,30),{},each _/100)
感谢大神回复! 我也试过您说的索引列+条件列的方法,可是到了输出值的时候,应该怎么写呢?写 “[原列名]/100” 得出的结果是把 “[原列名]/100”这几个字填充到对应的位置了,怎样填写才能得出正确的值呢?
@Alex 感谢大神回复! 我也试过您说的索引列+条件列的方法,可是到了输出值的时候,应该怎么写呢?写 “[原列名]/100” 得出的结果是把 “[原列名]/100”这几个字填充到对应的位置了,怎样填写才能得出正确的值呢?
@Wally 先勾选视图-编辑栏,你会看到每个步骤的M代码,你说的结果是 “[原列名]/100”这几个字的情况,是因为外面有双引号作为文本了,直接把双引号去掉就可以了。
修改前:
if [索引]<=20 then "[原列名]*10" else "[原列名]/100"
修改后:
if [索引]<=20 then [原列名]*10 else [原列名]/100
@Alex 谢谢大神,已经解决问题! 还是想问一下,可视化操作里面是不能这么写的吗? 这里没加引号,在M函数里还是出现引号。高级编辑里面删掉引号就可以了。
@Wally 不能,但是用可视化操作可以用其他方法替代啊,比如先根据索引添加条件列添加一列系数,索引<=20是10否则是0.01,然后用原列乘以系数。很多可视化操作不一定能直接实现,但间接总是可以实现的,无非多点步骤罢了。
@Alex 受教了,谢谢大神!以后还请多指点!
用List.Range取范围,然后List.Transform计算也行
`单行代码`
您的支持将鼓励我继续创作!
请使用微信扫描二维码。 如何开启打赏?