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

相关推荐
艾上编程19 小时前
第一章——办公自动化之Excel拆分工具:精准处理数据,提升办公效能
自动化·excel
夜流冰20 小时前
Excel - MS Support for Excel: Get started
excel
缺点内向20 小时前
如何在 C# 中创建、读取和更新 Excel 文档
c#·.net·excel
YuanYWRS1 天前
办公基础:实现PDF中表单不改变格式的情况下转成excel
pdf·excel
Data_agent1 天前
Python高效实现Excel与TXT文本文件数据转换指南
开发语言·python·excel
米芝鱼2 天前
Unity读取Excel转换为二进制数据文件与自定义数据读写
游戏·unity·游戏引擎·excel·urp
用户298698530142 天前
如何在 C# 中创建、读取和更新 Excel 文档
后端·c#·excel
艾上编程2 天前
第一章——办公自动化之Excel批量合并工具:Python助力高效办公
开发语言·python·excel
MYX_3092 天前
使用EXCEL进行数据清洗
excel
傻啦嘿哟2 天前
Python高效实现Excel与TXT文本文件数据转换指南
开发语言·python·excel