将从左到右填充的数据改为从右到左填充
例题描述和简单分析
有Excel文件Book1.xlsx,数据如下所示:
A |
B |
C |
D |
E |
F |
G |
H |
I |
|
1 |
姓名 |
项目1 |
项目2 |
项目3 |
项目4 |
项目5 |
项目6 |
项目7 |
项目8 |
2 |
王1 |
五级 |
2266 |
37级 |
2362 |
109 |
五级 |
||
3 |
王2 |
四级 |
2591 |
38级 |
2471 |
109 |
|||
4 |
王3 |
五级 |
2266 |
2253 |
109 |
||||
5 |
王4 |
六级 |
2079 |
33级 |
100 |
||||
6 |
王5 |
六级 |
38级 |
2471 |
109 |
||||
7 |
王6 |
六级 |
2079 |
33级 |
1944 |
100 |
需要将数据全部右移,以每行最后一个数据为准,右移对齐数据,结果如下所示:
A |
B |
C |
D |
E |
F |
G |
H |
I |
|
1 |
姓名 |
项目1 |
项目2 |
项目3 |
项目4 |
项目5 |
项目6 |
项目7 |
项目8 |
2 |
王1 |
五级 |
2266 |
37级 |
2362 |
109 |
五级 |
||
3 |
王2 |
四级 |
2591 |
38级 |
2471 |
109 |
|||
4 |
王3 |
五级 |
2266 |
2253 |
109 |
||||
5 |
王4 |
六级 |
2079 |
33级 |
100 |
||||
6 |
王5 |
六级 |
38级 |
2471 |
109 |
||||
7 |
王6 |
六级 |
2079 |
33级 |
1944 |
100 |
解法及简要说明
在集算器中编写脚本p1.dfx,如下所示:
A |
|
1 |
=file("Book1.xlsx").xlsimport@w() |
2 |
=A1.(~.to(1,~.len()-~.rvs().pselect(~)+1).pad@l(null,A1(1).len())) |
3 |
=file("result.xlsx").xlsexport@w(A2) |
简要说明:
A1 Excel读成序列的序列
A2 遍历A1,在每个从头到最后一个非空序列前补空值,补到序列与表头序列个数相同为止
A3 结果导出至result.xlsx
http://club.excelhome.net/thread-1587104-1-1.html