打乱次序

举例

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

需要将区域内的数据打乱次序(整片、行内、列内)

编写 SPL 脚本:


A

1

=file("Book1.xlsx").xlsimport@w()

2

/整片打乱次序

3

=A1.conj().sort(rand()).group(#%5)

4

=file("total.xlsx").xlsexport@w(A3)

5

/行内打乱次序

6

=A1.(~.sort(rand()))

7

=file("row.xlsx").xlsexport@w(A6)

8

/列内打乱次序

9

=transpose(A1).(~.sort(rand()))

10

=transpose(A9)

11

=file("col.xlsx").xlsexport@w(A10)

A1   读取 excel 文件内容,读成序列的序列

A2   注释

A3  将序列的序列合并为一个序列,打乱次序后,再按原序列的序列将新序列分组

A4  整片打乱次序导出至total.xlsx,结果如下:

11

12

20

10

4

14

5

1

15

16

8

7

9

13

2

3

17

19

18

6

A5  注释

A6  每行的数据打乱次序

A7  行内打乱次序导出至 row.xlsx,结果如下:

4

2

3

1

6

5

7

8

9

12

10

11

16

14

15

13

18

20

17

19

A8  注释

A9  把这片数据转置后再行内打乱次序

A10  A9的结果再转置

A11  列内打乱次序导出至 col.xlsx,结果如下:

13

6

7

8

9

18

19

12

1

2

15

4

5

14

3

20

17

10

11

16