如何根据某些单元格中的特定值将一列拆分为更多列

问题描述 投票:0回答:2

enter image description here

我有一个包含许多代理的列,这些代理都有不同的结果,我需要将该列拆分为多个列,以显示下一个代理之前的所有信息 - 如图所示。

提前致谢。

我是 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 excel-formula excel-2013
2个回答
2
投票

尝试一些方法,假设没有

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



0
投票

@Mayukh Bhattacharya 使用 C1 中的新公式,当它点击带有文本的单元格时,它会停止导入结果。抱歉打扰了...这就是我想要的结果... enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.