[英]Split columns by groups in Excel
我在一列中有一个组、子组和项目的列表,我将把它们分成三列。 如下例所示:
Class, order and family | Quant.
1. Mammals | 10
1.1 Primates | 6
1.1.1 Lemuridae | 4
1.1.2 Lorisidae | 2
1.2 Carnivora | 4
1.2.1 Felidae | 3
1.2.2 Hyaenidae | 1
我想按照数字顺序拆分列,如下所示:
Class | Order | Family | Quant.
1. Mammals | 1.1 Primates | 1.1.1 Lemuridae | 4
1. Mammals | 1.1 Primates | 1.1.2 Lorisidae | 2
1. Mammals | 1.2 Carnivora| 1.2.1 Felidae | 3
1. Mammals | 1.2 Carnivora| 1.2.2 Hyaenidae | 1
我已经使用RIGHT
function 将数字与文本分开,但我不知道下一步该做什么。
编辑多位索引。
假设源表在A1:B15
中,结果表在E1:H15
中,则以下公式有效:
对于 Class ( E2
)
=IFERROR(INDEX($A$1:$A$15,AGGREGATE(15,6,1/(((LEFT(F2,FIND(".",F2)) & " ") = LEFT($A$1:$A$15,FIND(".",F2)+1)))*ROW($A$1:$A$15),1)),"")
订单 ( F2
)
=IFERROR(INDEX($A$1:$A$15,AGGREGATE(15,6,1/(((LEFT(G2,FIND(CHAR(1),SUBSTITUTE(G2,".", CHAR(1),2))-1) & " ")=LEFT($A$1:$A$15,FIND(CHAR(1), SUBSTITUTE(G2,".",CHAR(1),2)))))*ROW($A$1:$A$15),1)),"")
家庭 ( G2
)
=IFERROR(INDEX($A$1:$A$15,AGGREGATE(15,6,1/((LEN($A$1:$A$15)-LEN(SUBSTITUTE($A$1:$A$15,".",""))=2)*(COUNTIF($G$1:G1,$A$1:$A$15)=0))*ROW($A$1:$A$15),1)),"")
数量 ( H2
)
=IFERROR(VLOOKUP(G2,$A$1:$B$15,2),"")
我能想到的最简单的方法是,如果上面的数据在单元格 A:B 中,那么在单元格 D:G 中输入以下内容(第一行的标题): -
D: - =IF(SEARCH(" ",A2,1)=3,A2,D1)
E: - =IF(SEARCH(" ",A4,1)=4,A4,E3)
F: =IF(SEARCH(" ",A4,1)=6,A4,F3)
然后您必须删除 Class/Order 中每次更改的前几行。
G:对数量有一个=。 希望这可以帮助。
请注意,这种方式只有在没有数字超过个位数的情况下才有效,如果它确实让我知道,我会让它更智能:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.