Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2294|回复: 0

[分享] 如何自动对列方向的数据做分组排序

[复制链接]
发表于 2021-4-23 10:00 | 显示全部楼层 |阅读模式
本帖最后由 mafia 于 2021-4-23 10:02 编辑

例题描述
有课程起始日期表book1.xlsx,数据如下图所示:


现在需要对课程的开始日期排序,最后列出各课程的最近一次起始日期,即上图中的颜色格数据,目标表格如下图所示:

数据表与目标表都与常见的行记录表相反,它是每列为一条记录。

实现步骤
1、  编写esProc SPL脚本:


A
1
=file("E:/colsort/book1.xlsx").xlsimport@w()
2
=transpose(A1)
3
=create(${A2(1).concat(",")}).record(A2.delete(1).conj())
4
=A3.group(Courses).(~.maxp(date(Date,"dd/MM/yyyy")))
5
=A4.(~.array()).insert(1,[A4.fname()])
6
=transpose(A5)
7
=file("E:/colsort/book2.xlsx").xl**port@w(A6)

A1   读入book1.xlsx文件数据,选项@w表示将数据读成序列的序列,如下图所示


A2   把A1的序列进行行列互换,结果如下图所示


A3   用A2中的第1个成员为列名构造序表,其它成员为记录追加到序表中

A4   A3中的数据按Courses分组后,取出各组 Date 最大的记录

A5   用A4的各行数据组成序列,并把列名插入到序列开头,结果如下图所示


A6   把A5的序列进行行列转换

A7   将结果保存book2.xlsx,选项@w表示要输出的数据是序列的序列

2、  按F9运行程序,运行结束后打开book2.xlsx可以看到生成的目标表格。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-5 03:20 , Processed in 0.191238 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表