将从左到右填充的数据改为从右到左填充

例题描述和简单分析

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