问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

excel一个字段内容根据分隔符分开展现多行,其他列内容不变

发布网友 发布时间:2022-04-15 02:45

我来回答

2个回答

懂视网 时间:2022-04-15 07:06

如何高效能拆分一个字段为多行 我本意是将表中的一个字段拆分成多行,例如aaa,bbb拆分为 aaa bbb 现在测试如下: [sql] with t1 as ( select 3 c1,eee,fff,ggg c2 from dual UNION ALL select 2 c1,ccc,ddd c2 from dual UNION ALL SELECT 1 c1,aaa,bbb c2 F


如何高效能拆分一个字段为多行

我本意是将表中的一个字段拆分成多行,例如'aaa,bbb'拆分为

'aaa'

'bbb'

现在测试如下:

[sql]

with t1 as

(

select 3 c1,'eee,fff,ggg' c2 from dual UNION ALL

select 2 c1,'ccc,ddd' c2 from dual UNION ALL

SELECT 1 c1,'aaa,bbb' c2 FROM dual

)

select c1,LEVEL,replace(regexp_substr(c2,'[^,]+',1,level),',',' ') c2

from t1

connect BY level<=length(c2)-length(replace(c2,',',''))+1

order by c1,level

www.2cto.com

返回结果如下:

[sql]

C1 LEVEL C2

1 1 aaa

1 2 bbb

1 2 bbb

1 2 bbb

2 1 ccc

2 2 ddd

2 2 ddd

2 2 ddd

3 1 eee

3 2 fff

3 2 fff

3 2 fff

3 3 ggg

3 3 ggg

3 3 ggg

3 3 ggg

3 3 ggg

3 3 ggg

3 3 ggg

3 3 ggg

3 3 ggg

www.2cto.com

--======================================================

看起来connect by之后产生了大量重复数据,于是加入distinct后取得正确数据。

反思:

我构造的测试数据仅仅只有三行,最长的拆分资料仅3段'eee,fff,ggg',却产生了21笔资料。如果测试数据增多,或者需拆分的段

数量增多,那么connect by产生的数据将是海量的。

用此种方法实际处理生产库数据时,问题马上显现出来,仅17笔资料,最长拆分字段为8段,竟然产生了738万笔资料,尽管我使用

了distinct,依然慢的很。

解决方案:用Join方式取代connect by方式

[sql]

with t1 as

(

select 3 c1,'eee,fff,ggg' c2 from dual UNION ALL

select 2 c1,'ccc,ddd' c2 from dual UNION ALL

SELECT 1 c1,'aaa,bbb' c2 FROM dual

)

SELECT c1,

substr(t.ca,

instr(t.ca, ',', 1, d.lv) + 1,

instr(t.ca, ',', 1, d.lv + 1) -

(instr(t.ca, ',', 1, d.lv) + 1)) AS d

FROM (SELECT c1,

',' || c2 || ',' AS ca,

length(c2 || ',') - nvl(length(REPLACE(c2, ',')), 0) AS cnt

FROM t1) t,

(select rownum lv from

(select max(length(c2 || ',') - nvl(length(REPLACE(c2, ',')), 0)) mlc from t1)

connect by level<=mlc

)d

WHERE d.lv <= t.cnt

ORDER BY c1

www.2cto.com

结论:

对于表资料只有一笔的时候,用connect by一般不会有什么问题。但如果表中资料是多笔,则connect by会产生海量的重复资料。

用join方式可解决此类问题。

热心网友 时间:2022-04-15 04:14

可以用VBA实现,例如把A\B列拆分到C\D列中的代码为:

Sub 宏1()
    Dim arr,i,j,t
    j=1
    arr = ActiveSheet.UsedRange
    For i=1 to UBound(arr)
        For Each t In Split(arr(i,2),"、")
            Cells(j,3)=arr(i,1)
            Cells(j,4)=t
            j=j+1
        Next t
    Next i
End Sub

在表上执行宏需要一定的耐心和基础,如果有可能可以百度云加友、传文件、为你拆分好。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
异想记歌词,杨幂唱滴! 有什么好打理的烫发发型可以推荐? 有哪些韩系卷发造型比较好打理? 哪些短发卷发造型比较好打理? 什么样的卷发发型比较好打理? 好打理的卷发造型有哪些值得推荐? 有哪些卷发发型比较好打理? 有哪些卷发造型比较好打理? 为什么离线迅雷看看播放器就不能用了,毕竟里面的是已经下载好了的,知... 迅雷离线用不了,连云播的搜索都用不了,是被封了吗? 鞋子37的前面稍有点紧38又松怎么办 什么是抹墙机 有用过抹灰机或者砂浆喷涂机的吗? 抹灰机目前并不实用 山东淄博申请发放小额担保贷款扶持妇女创业政策?求详情 粉墙抹灰有比较实用的机器吗 粉墙机是否真正实用 墙面自动抹灰机怎么样? 外地购买二手车怎么过户并在广州上牌。现已经摇到广州车牌了,且外地的二手车已选定。最好有具体流程。 想问下抹灰机到底实不实用,实际需要多少人,每天能出多少活,质量怎么样,希望在用的可以给些真实信息? 广州车辆如何过户到外地 狗尾巴草是花吗? 狗尾巴草的植物危害 广州网约车车辆过户到外地提档流程? 粉墙机实用吗 自动抹灰机真的实用吗 ipad mini 怎么直接进入密码界面 抹灰机实用吗 狗尾草是花还是草 ipadmini的一些使用技巧? 羽毛球鞋头穿着有点紧怎么办 为什么iphone 7在app store下载免费app提示无法完成购买? 证券公司销售董事算什么级别,是初级人员,还是挺大的? 董事是做什么的 如何将手机屏幕投屏到电脑 总裁做什么?董事做什么? 苹果商店无法购买APP,账户里是有钱的,就是会显示购买无法完成,怎么办? 证券公司董事、监事和高级管理人员任职资格监管办法的任职条件 减肥期间可以吃隔夜剩菜吗 吃隔夜菜会胖吗 硬笔书法怎么写的格式? 双翘滑板的常规参数 入门级的双翘滑板多少价位合适? 竟然没人知道双翘滑板需要的螺丝公称直径?M5?M6? 雷神王座 雷神怎么过去? 双翘滑板的介绍 求全国工商企业名录 工商企业注册查询 5.2雷电王座在哪?从哪进? 熊猫人雷电王座最后一个boss在哪