我有一个包含许多代理的列,这些代理都有不同的结果,我需要将该列拆分为多个列,以显示下一个代理之前的所有信息 - 如图所示。
提前致谢。
我是 Excel 新手,自己找不到解决方案。
经纪人:马丁 |
10 |
223 |
33 |
125 |
2 |
经纪人:乔 |
2 |
23 |
经纪人:马克 |
1 |
23 |
111 |
444 |
21 |
32 |
经纪人:莎莎 |
3 |
222 |
121 |
654 |
32 |
98 |
76 |
经纪人:马丁 | 经纪人:乔 | 经纪人:马克 | 经纪人:莎莎 |
---|---|---|---|
10 | 2 | 1 | 3 |
223 | 23 | 23 | 222 |
33 | 111 | 121 | |
125 | 444 | 654 | |
2 | 21 | 32 | |
32 | 98 | ||
76 |
尝试一些方法,假设没有
Excel Constraints
按照发布的标签,那么这应该适合你:
• 单元格中使用的公式 C1
=LET(
a,TOCOL(A:A,1),
b,SCAN("",a,LAMBDA(x,y,IF(ISNUMBER(y),x,y))),
c,UNIQUE(b),
DROP(IFERROR(REDUCE("",c,LAMBDA(d,e,HSTACK(d,FILTER(a,e=b)))),""),,1))
或者,您也可以使用这个,少一步:
=LET(
a,TOCOL(A:A,1),
b,SCAN("",a,LAMBDA(x,y,IF(ISNUMBER(y),x,y))),
UNIQUE(DROP(IFERROR(REDUCE("",b,LAMBDA(d,e,HSTACK(d,FILTER(a,e=b)))),""),,1),1))
Non-MS365
用户的替代方法:
• 单元格中使用的公式 C1
=INDEX($A$1:$A$24,AGGREGATE(15,6,(ROW($A$1:$A$24)-ROW($A$1)+1)/(ISTEXT($A$1:$A$24)),COLUMN(A1)))
• 单元格中使用的公式 C2
=IFERROR(INDEX($A$1:$A$24,AGGREGATE(15,6,(ROW($A$1:$A$24)-ROW($A$1)+1)/
(LOOKUP(ROW($A$1:$A$24),ROW($A$1:$A$24)/(IF(ISNUMBER($A$1:$A$24),"",$A$1:$A$24)<>""),$A$1:$A$24)=C$1),ROW(A2))),"")
请注意,标题的公式需要正确填写,而数字的公式需要相应地向下填充以及正确填充,还需要根据您的数据相应地更改单元格引用和范围。还要注意一点,退出编辑模式时需要按 CTRL+SHIFT+ENTER。