ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 670|回复: 25

[求助] 数据按换行符拆分并填充至多行

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-6-24 14:53 | 显示全部楼层 |阅读模式
image.png

公式拆分.zip

12.49 KB, 下载次数: 44

TA的精华主题

TA的得分主题

发表于 2024-6-24 15:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 pxy0409 于 2024-6-24 16:58 编辑

感慨一下:源表很独特!!本人无力应对......
4楼的公式层次(reduce lambda),比5楼pq层次,还要多,放弃了!

TA的精华主题

TA的得分主题

发表于 2024-6-24 15:23 | 显示全部楼层
高版本堆火车,供参考
  1. =REDUCE(A1:E1,A2:A5,LAMBDA(x,y,LET(t,OFFSET(y,,,,2),VSTACK(x,IFNA(HSTACK(t,TEXTSPLIT(OFFSET(y,,2),,CHAR(10)),TEXTSPLIT(OFFSET(y,,3),,CHAR(10)),TEXTSPLIT(OFFSET(y,,4),,CHAR(10))),t)))))
复制代码
0.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-6-24 15:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
再简化一点
  1. =REDUCE(A1:E1,A2:A5,LAMBDA(x,y,LET(t,OFFSET(y,,,,2),VSTACK(x,IFNA(HSTACK(t,DROP(REDUCE(0,{2,3,4},LAMBDA(m,n,HSTACK(m,TEXTSPLIT(OFFSET(y,,n),,CHAR(10))))),,1)),t)))))
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-6-24 15:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 wintroop 于 2024-6-24 16:48 编辑

方法一:菜单操作(见附件动图)
1)把EXCEL数据复制到WORD
2)把WORD中的数据复制回EXCEL(选择匹配目标格式)
3)把材料编码列格式化为文本格式
4)选择A3:B10,按F5或者CTRL+G定位空单元格,然后在公式栏输入=A3,最后按CTRL+回车


方法二:PQ解法

方法一.gif
PQ解法.PNG

PQ解法.zip

20.78 KB, 下载次数: 10

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-6-24 15:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. =REDUCE(A1:E1,A2:A5,LAMBDA(x,y,LET(t,OFFSET(y,,,,2),VSTACK(x,IFNA(HSTACK(t,DROP(REDUCE("",OFFSET(y,,2,,3),LAMBDA(a,b,HSTACK(a,TEXTSPLIT(b,,CHAR(10))))),,1)),t)))))
复制代码

TA的精华主题

TA的得分主题

发表于 2024-6-24 16:08 | 显示全部楼层
推火车~
  1. =REDUCE(A1:E1,A2:A5,LAMBDA(x,y,VSTACK(x,CHOOSE({1,2,3,4,5},y,OFFSET(y,,1),TEXTSPLIT(OFFSET(y,,2),,CHAR(10)),TEXTSPLIT(OFFSET(y,,3),,CHAR(10)),TEXTSPLIT(OFFSET(y,,4),,CHAR(10))))))
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-6-24 16:27 | 显示全部楼层
H2:I10{=INDEX(A:A,SMALL(IF(LEN($C$2:$C$5)-LEN(SUBSTITUTE($C$2:$C$5,CHAR(10),))+1>=COLUMN($A:$Z),ROW($2:$5),99),ROW(A1)))&""

J2:L10=IF($H2="","",TRIM(MID(SUBSTITUTE(VLOOKUP($H2,$A:$F,COLUMN(C1),),CHAR(10),REPT(" ",99)),COUNTIF($H$2:$H2,$H2)*99-98,99)))
19081.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-6-24 16:32 | 显示全部楼层
wintroop 发表于 2024-6-24 15:58
方法一:菜单操作(见附件动图)
1)把EXCEL数据复制到WORD
2)把WORD中的数据复制回EXCEL

    pq解法,理解起来比公式稍好一点,还是学习这种方法吧:
已添加自定义 = Table.AddColumn(源, "自定义", each
[a=List.Zip({Text.Split([#"原料名称/规格/单位"],"#(lf)"),Text.Split([原料数量],"#(lf)"),Text.Split([#"采购单价#(lf)(含税)"],"#(lf)")}),
b=List.Transform(a,each Text.Combine(_,"|"))]
),

TA的精华主题

TA的得分主题

发表于 2024-6-24 17:38 | 显示全部楼层
本帖最后由 wintroop 于 2024-6-24 17:59 编辑
pxy0409 发表于 2024-6-24 16:32
pq解法,理解起来比公式稍好一点,还是学习这种方法吧:
已添加自定义 = Table.AddColumn(源, "自定 ...

PQ解法2,优化了一下


let
    源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    已添加自定义 = Table.AddColumn(源, "自定义", each
[a=List.Zip({Text.Split([#"原料名称/规格/单位"],"#(lf)"),Text.Split([原料数量],"#(lf)"),Text.Split([#"采购单价#(lf)(含税)"],"#(lf)")}),
b=Table.FromRows(a,{"原料名称/规格/单位","原料数量","采购单价(含税)"})]
),
    选择列 = Table.SelectColumns(已添加自定义,{"材料编码", "材料名称", "自定义", "备注"}),
    展开 = Table.ExpandTableColumn(选择列, "自定义", {"原料名称/规格/单位", "原料数量", "采购单价(含税)"})
in
    展开

PQ解法2.zip

20.63 KB, 下载次数: 9

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 09:43 , Processed in 0.052808 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表