excel怎么用公式从A-B列,自动得到C-D列?

excel怎么用公式从A-B列,自动得到C-D列?

A列有重复,B列以空格断开,想得到汇总重复的N列和拆开显示的O列。
最好是公式,VB不会用。谢谢!
A列--------B列
X----------35 67 57 SF
Y----------SF 46 7
X----------SX Y5

C列--------D列
X----------35
X----------67
X----------57
X----------SF
Y----------SF
Y----------46
Y----------7
X----------SX
X----------Y5

C列公式=INDEX(A:A,SMALL(IF(LEN(B$2:B$4)-LEN(SUBSTITUTE(B$2:B$4," ",))+1>=COLUMN(A:J),ROW($2:$4),5),ROW(A1)))&""

D列公式=TRIM(MID(SUBSTITUTE(INDEX(B:B,SMALL(IF(LEN(B$2:B$4)-LEN(SUBSTITUTE(B$2:B$4," ",))+1>=COLUMN(A:J),ROW($2:$4),5),ROW(A1)))," ",REPT(" ",99)),1+99*(E2-1),99))

在E列加了一个辅助列=(C2=C1)*E1+1,主要是A列有重复,实在想不起来咱们构建这个内存数组了!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-03

多不多?

不多的话可以用此方法

1)【分列】。选中B列,再用用空格分列,如下图:

2)复制,粘贴的时候,选择转置,再调整下就行了。如下图:


如果内容多就不太适合,可写代码。

本回答被网友采纳
第2个回答  2020-04-02
学点VB吧,好让懂vb的挣点。追问

VB也行,得告诉我怎么用哈哈。

追答

可以建立新的沟通渠道上传文件。私信我或评论后我私信你。

第3个回答  2020-04-02
i = 2
y = 2
Do While Sheet1.Cells(i, 1) <> ""
a = Split(Sheet1.Cells(i, 2), " ")
For m = 0 To UBound(a)
Sheet1.Cells(y, 3) = Sheet1.Cells(i, 1)
Sheet1.Cells(y, 4) = a(m)
y = y + 1
Next m
i = i + 1
Loop追问

代码好像不全,能否发个全的,能直接运行的谢谢

相似回答