如何将格值移动位置并删除空行
例题描述和简单分析
有 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 就可以把计算结果粘贴过来。
https://stackoverflow.com/questions/63790459/check-cut-and-paste-delete-row-move
英文版
英文已更新