table 合并列_Table.Group相邻的两个数合并案例

本期案例是对相邻的两个不同的数进行合并,连续有多个相邻的数是相同的,则往后合并,直至使合并的非重复个数是两个为止,如果当前数与上一个数相同,则显示为空,合并后效果下:   2c6c639d16d16eec86613d6c768c4636.png …… 3a4510755ed2e34d0c86f570ade5d02c.png 源数据:
{4,5,4,2,4,5,2,1,5,4,2,4,1,4,1,4,2,5,5,2,2,2,4,4,2,4,5,1,1}
  解题步骤   提取相邻的数,自然就想到了可以通过添加索引列进行转换,那该案例就转换成了以下几种情况:   1.如果相邻的上一个是相同的数,那么只要判断当前数与取得的{索引号-1}的数一致就为空值就可以,要增加一个索引号为0的判断条件。   2.如果相邻的两个是不同的数,那就直接合并就可以。 3.如果相邻有多个相同的数,要取到下一个不同的数,然后一起合并才满足要求,应该怎么处理? 就比如{ 5,5,2,2,2,4,4,2},当前数为5,然后删除当前数后进行分组,就获得了: 2f1ab05ead5423380d16a0a5aab28d61.png   那就可以进行判断,如果分组后表的第一个数,通过Table.FirstValue是等于5的,那么我们提取[a]列的前两项,然后深化合并再连接5就得到了结果:   14de4ee81e4f5aa405c82807f6a10c01.png 4.最终结果: b576d44721307c41b1e003eb3cf78609.png
Table.RemoveColumns(Table.AddColumn(Table.AddIndexColumn(源,"Index"),"Combine",each if [Index]<>0 and 源[Value]{[Index]-1}?=[Value] then "" else [A=Table.Group(Table.FromColumns({List.Skip(源[Value],[Index]+1)}),"Column1",{"a",each _},0),B=if Table.FirstValue(A)=[Value] then Text.Combine({[Value]}&Table.Combine(List.FirstN(A[a],2))[Column1]) else Text.Combine({[Value]}&A[a]{0}[Column1])][B]),"Index")
  可以尝试连续三个或者多个数相连的操作,这里不再展开。 以上是本期记录。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值