Excel 多列组合内容循环展开

某表格 A 列是编号,其他列是用逗号分隔的意义不同的分类列

|---|--------------|-------------|-------------|------------------|----------------|------------|-------------------|
| | A | B | C | D | E | F | G |
| 1 | Assembly# | ProductType | Unit Config | Nominal Capacity | Supply Voltage | Generation | Case Construction |
| 2 | 3H1012290001 | CM | D,P | 24,36 | F | A | A,B |
| 3 | 3H1012290002 | CM | D,P | 48,60 | F | A,B | A,B |
| 4 | 3H1012290003 | CM | D,P | 24,36 | B,C,D,E | A | A,B |

要求展开各分类列,并互相组合。比如第一条数据的处理结果

|----|--------------|-------------|-------------|------------------|----------------|------------|-------------------|
| | A | B | C | D | E | F | G |
| 6 | Assembly# | ProductType | Unit Config | Nominal Capacity | Supply Voltage | Generation | Case Construction |
| 7 | 3H1012290001 | CM | D | 24 | F | A | A |
| 8 | 3H1012290001 | CM | D | 24 | F | A | B |
| 9 | 3H1012290001 | CM | D | 36 | F | A | A |
| 10 | 3H1012290001 | CM | D | 36 | F | A | B |
| 11 | 3H1012290001 | CM | P | 24 | F | A | A |
| 12 | 3H1012290001 | CM | P | 24 | F | A | B |
| 13 | 3H1012290001 | CM | P | 36 | F | A | A |
| 14 | 3H1012290001 | CM | P | 36 | F | A | B |

使用 SPL XLL,输入公式:

复制代码
=spl("=E@b(?.(~.(~.split@c())).conj(eval($[xjoin(] / ~.($[~(] / # / $[)]).concat($[;]) / $[)])))",A2:G4)

函数 E@b()将表格的非列名部分转为序列。split@c 用逗号将字符串拆为序列。conj 合并成员。eval 把字符串当作代码动态执行。xjoin 将多个序列叉乘 / 组合起来。$; 是字符串的简写形式,等价于 "";""

相关推荐
ken22329 小时前
excel表格为什么越存文件越大? libreoffice 有效
excel
华大哥11 小时前
spring boot 和php 调用 LibreOffice 转换 Excel 到 PDF 完整实现
java·pdf·excel
Codiggerworld1 天前
Vim 实战:在 VS Code、JetBrains、终端里玩转 Vim
编辑器·vim·excel
开开心心_Every1 天前
多连接方式的屏幕共享工具推荐
运维·服务器·pdf·电脑·excel·tornado·dash
Jun6262 天前
QT(4)-EXCEL操作
开发语言·qt·excel
2501_907136822 天前
Excel文件强效安全修复工具-清理安全风险 可修复WPS编辑后Excel无法打开的文件
excel·wps
一位代码2 天前
Excel 文本连接符 & :基础用法与进阶技巧详解
excel
焱文8192 天前
wps excel指定数据区域,二维码生成区域,批量生成单元格二维码VBA宏代码
excel·wps
夏天里的肥宅水2 天前
EXCEL生成日历
excel
我命由我123453 天前
Excel - Excel 单元格格式同时设置日期时间
运维·学习·职场和发展·excel·求职招聘·职场发展·学习方法