Excel 识别数据层次后转换成表格

某列数据可分为 3 层,第 1 层是字符串,第 2 层是日期,第 3 层是时间:

|----|------------|
| | A |
| 1 | NAME1 |
| 2 | 2024-06-03 |
| 3 | 04:06:12 |
| 4 | 04:09:23 |
| 5 | 08:09:23 |
| 6 | 12:09:23 |
| 7 | 17:02:23 |
| 8 | 2024-06-02 |
| 9 | 04:06:12 |
| 10 | 04:09:23 |
| 11 | 08:09:23 |
| 12 | NAME2 |
| 13 | 2024-06-03 |
| 14 | 04:06:12 |
| 15 | 04:09:23 |
| 16 | 2024-06-02 |
| 17 | 12:09:23 |
| 18 | 17:02:23 |

需要正确识别三层数据,并转为规范的表格:

|----|-------|------------|----------|
| | D | E | F |
| 1 | NAME1 | 2024-06-03 | 04:06:12 |
| 2 | NAME1 | 2024-06-03 | 04:09:23 |
| 3 | NAME1 | 2024-06-03 | 08:09:23 |
| 4 | NAME1 | 2024-06-03 | 12:09:23 |
| 5 | NAME1 | 2024-06-03 | 17:02:23 |
| 6 | NAME1 | 2024-06-02 | 04:06:12 |
| 7 | NAME1 | 2024-06-02 | 04:09:23 |
| 8 | NAME1 | 2024-06-02 | 08:09:23 |
| 9 | NAME2 | 2024-06-03 | 04:06:12 |
| 10 | NAME2 | 2024-06-03 | 04:09:23 |
| 11 | NAME2 | 2024-06-02 | 12:09:23 |
| 12 | NAME2 | 2024-06-02 | 17:02:23 |

使用 SPL XLL,输入公式:

复制代码
=spl("=E@1(?).(if(ifstring(~):s=~, if(ifdate(E(~))):d=~; [s,d,~])).select(ifa(~))",A1:A18)

spl返回的日期类型为整数形式,需用 Excel 的 "format cells" 功能(或 spl 的 E 函数)格式化为易读形式,时间类型同样处理。

函数 E 可转换 Excel 的日期时间类型,E@1 将多层序列转为单层。~ 表示当前成员。if 函数从左到右依次判断真假并执行表达式,最后执行缺省表达式。ifa 判断变量是否为序列。

相关推荐
Swift社区4 分钟前
Excel 列名称转换问题 Swift 解答
开发语言·excel·swift
neeef_se1 小时前
Vue中使用a标签下载静态资源文件(比如excel、pdf等),纯前端操作
前端·vue.js·excel
℘团子এ1 小时前
js和html中,将Excel文件渲染在页面上
javascript·html·excel
菠萝蚊鸭10 小时前
Dhatim FastExcel 读写 Excel 文件
java·excel·fastexcel
一只小灿灿10 小时前
VB.NET在 Excel 二次开发中的全面应用
.net·excel
是小崔啊13 小时前
开源轮子 - EasyExcel01(核心api)
java·开发语言·开源·excel·阿里巴巴
Excel_easy14 小时前
批量识别工作表中二维码信息-Excel易用宝
excel·wps
m0_748255261 天前
easyExcel导出大数据量EXCEL文件,前端实现进度条或者遮罩层
前端·excel
小张认为的测试1 天前
Linux性能监控命令_nmon 安装与使用以及生成分析Excel图表
linux·服务器·测试工具·自动化·php·excel·压力测试
PieroPc1 天前
Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印
开发语言·python·excel