繁体   English   中英

在 Excel 中按组拆分列

[英]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中,则以下公式有效:

  1. 对于 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)),"")

  2. 订单 ( 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)),"")

  3. 家庭 ( 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)),"")

  4. 数量 ( 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM