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 将多个序列叉乘 / 组合起来。$[;] 是字符串的简写形式,等价于 "";""

相关推荐
影子24016 小时前
Navicat导出mysql数据库表结构说明到excel、word,单表导出方式记录
数据库·mysql·excel
东方佑9 小时前
使用 Python 自动处理 Excel 数据缺失值的完整指南
开发语言·python·excel
課代表9 小时前
利用 Excel 函数随机抽取(附示例)
数据结构·excel
Agome9914 小时前
linux面试题
java·开发语言·excel
失去妙妙屋的米奇15 小时前
Python库与Excel
开发语言·python·excel
winfredzhang15 小时前
将 Markdown 表格结构转换为Excel 文件
python·excel·markdown
Moshow郑锴17 小时前
SpringBoot3+EasyExcel通过WriteHandler动态实现表头重命名
spring·excel·导出·阿里巴巴·easyexcel·speadsheet
課代表18 小时前
VBA 中正则表达式使用指南
数据库·mysql·正则表达式·excel
flying jiang18 小时前
excel 时间戳 转日期
excel
风舞红枫21 小时前
WPS宏开发手册——Excel常用Api
excel·wps