Excel 根据分类及组内序号进行编码

例题描述和简单分析

Excel 记录课程数据,未排序,部分如下:

|---|------------|----------|-------|
| | A | B | C |
| 1 | Course | Date | Time |
| 2 | Word | 1-Sep-20 | 9:00 |
| 3 | Word | 1-Sep-20 | 9:00 |
| 4 | PowerPoint | 1-Sep-20 | 9:00 |
| 5 | Word | 1-Sep-20 | 12:00 |
| 6 | PowerPoint | 1-Sep-20 | 12:00 |
| 7 | Excel | 1-Sep-20 | 12:00 |
| 8 | Word | 1-Sep-20 | 12:00 |

现在要新增一个编码列 Batch ID,使 Course\Date\Time 相同的记录 Batch ID 也相同。编码规则是:Course 的前 3 个字母 + 序号。数据按 Course 分大组后,每大组数据再按 Date 和 Time 分小组,编码中的序号即大组内各小组的序号。

|---|------------|----------|-------|----------|
| | A | B | C | D |
| 1 | Course | Date | Time | Batch ID |
| 2 | Word | 1-Sep-20 | 9:00 | Wor001 |
| 3 | Word | 1-Sep-20 | 9:00 | Wor001 |
| 4 | PowerPoint | 1-Sep-20 | 9:00 | Pow001 |
| 5 | Word | 1-Sep-20 | 12:00 | Wor002 |
| 6 | PowerPoint | 1-Sep-20 | 12:00 | Pow002 |
| 7 | Excel | 1-Sep-20 | 12:00 | Exc001 |
| 8 | Word | 1-Sep-20 | 12:00 | Wor002 |

上面涉及多层分组后的计算,以及组内序号的使用。

解法及简要说明

使用 Excel 插件 SPL XLL

在空白单元格写入公式:

=spl("=(t=E(?).group(Course).(~.group(Date,Time)),t.conj(~.news(~;Course,Date,Time,left(Course,3)/string(t.~.#,""000""):'Batch ID')))",A1:C8)

如图:

简要说明:

按Course分组,每组再按Date、Time进行第二层分组。

在大组内先计算各小组,按规则生成新列Batch ID,再合并小组,最后合并大组。其中A2.~.#表示每个小组在大组内的编号。

上述算法可生成符合要求的 Batch ID,但记录顺序发生了变化,如果想保持原序,可在分组前新增行号列,合并后再按行号列排序。

相关推荐
zfan52013 小时前
python对Excel数据处理(1)
python·excel·pandas
城数派15 小时前
2025年南京市全类别POI(55W+数据)
数据库·arcgis·信息可视化·数据分析·excel
yuhulkjv33518 小时前
AI导出的Excel公式失效
人工智能·ai·chatgpt·excel·豆包·deepseek·ai导出鸭
琪伦的工具库20 小时前
批量excel文件删除列工具使用说明:按列号或列名批量删除/保留,支持预览与大文件优化
大数据·excel
步达硬件21 小时前
【MATLAB】读取视频,提取视频每一帧特征值并存成EXCEL,并保存个别图像
matlab·excel·音视频
城数派2 天前
2000-2025年我国省市县三级逐8天日间地表温度数据(Shp/Excel格式)
数据库·arcgis·信息可视化·数据分析·excel
开开心心就好2 天前
能把网页藏在Word里的实用摸鱼工具
linux·运维·服务器·windows·随机森林·逻辑回归·excel
锵锵锵锵~蒋2 天前
AI全托管处理EXCEL(并接入AI平台)
人工智能·excel·mcp·ai全托管·ai提效’
yuhulkjv3352 天前
ChatGPT Gemini Claude Grok导出的Excel公式失效
人工智能·ai·chatgpt·excel·豆包·deepseek·ai导出鸭
琪伦的工具库2 天前
批量Excel文件内容组合工具使用说明:按列组合拼接导出TXT/CSV/Excel,支持合并保存与文件预览
excel