如何将格值移动位置并删除空行

例题描述和简单分析

有 Excel 文件 book1.xlsx,数据如下所示:

如果 A 列为空,则把本行 C 列的值复制到上一行的 D 列,这样循环处理,再删掉空行,结果如下:

解法及简要说明

方法一:用序列的序列

在集算器中编写脚本 p1.dfx,如下所示:

A
1=clipboard().split@n("\t")
2=A1.run(if(~(1)=="",~[-1]=~[-1]|~(3))).select(~(1)!="")
3=A2.concat@n("\t")

简要说明:

A1   从剪贴板里读取数据,读成序列的序列

A2  循环处理 A1,如果当前序列的第一个成员为空,则把当前序列第三个成员的值追加到上一个序列,再过滤掉第一个成员为空的序列。

A3  将 A2 转为字符串

方法二:用序表

在集算器中编写脚本 p1.dfx,如下所示:

A
1=clipboard@e().import().derive(_4)
2=A1.run(if(#1==null,~[-1].#4=#3)).select(#1)

简要说明:

A1  从剪贴板里读取数据并增加一列 _4,选项 @t 表示首行是列标题

A2  循环处理 A1,如果当前行的第一列为空,则把当前行第三列值赋予上一行的第四列,再过滤掉第一列为空的记录。

执行程序后,在集算器中选中 A3(A2)单元格,再点击右侧对应的“copy data”按钮。在 Excel 点击 A8 单元格,按 Ctrl+V 就可以把计算结果粘贴过来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值