怎么把一片 Excel 的区域打乱次序
现有Excel文件book1.xlsx,数据如下:
1,2 |
1,2 |
1,98 |
1,21 |
1,97 |
1,21 |
1,98 |
1,21 |
1,99 |
1,22 |
1,22 |
1,99 |
1,98 |
1,97 |
1,2 |
1,98 |
1,21 |
1,22 |
1,22 |
1,98 |
1,97 |
1,97 |
1,23 |
1,2 |
1,99 |
需要将这5*5区域内的数据整片打乱次序,结果如下:
1,98 |
1,98 |
1,97 |
1,23 |
1,99 |
1,98 |
1,21 |
1,2 |
1,99 |
1,98 |
1,22 |
1,22 |
1,22 |
1,99 |
1,21 |
1,2 |
1,2 |
1,97 |
1,2 |
1,22 |
1,98 |
1,97 |
1,97 |
1,21 |
1,21 |
借助集算器可以很方便地完成这件事。
集算器安装包可去润乾网站下载集算器职场版,运行时需要一个授权,免费版本就够用。
1. 在集算器中编写脚本p1.dfx:
A |
|
1 |
=file("book1.xlsx").xlsimport@w() |
2 |
=A1.conj(~).sort(rand()).group(#%5) |
A1 读取 book1.xlsx 数据,选项@w表示将数据读成序列的序列。
A2 将序列的序列合并为一个序列,打乱次序后,再按原序列的序列将新序列分组
2. 执行脚本,A2 中的数据是需要的结果。
若需要在行内打乱次序,脚本可以这样写:
A |
|
1 |
=file("book1.xlsx").xlsimport@w() |
2 |
=A1.(~.sort(rand())) |
A1 读取 book1.xlsx 数据,选项@w表示将数据读成序列的序列。
A2 对序列内的每个序列打乱次序
若需要在列内打乱次序,脚本可以这样写:
A |
|
1 |
=file("book1.xlsx").xlsimport@w() |
2 |
=transpose(A1).(~.sort(rand())) |
3 |
=transpose(A2) |
A1 读取 book1.xlsx 数据,选项@w表示将数据读成序列的序列。
A2 将 A1 行列互换后,对序列内的每个序列打乱次序
A3 将 A2 行列互换
英文版