【问题标题】:Split columns by groups in Excel在 Excel 中按组拆分列
【发布时间】:2020-04-14 10:33:50
【问题描述】:

我在一列中有一个组、子组和项目的列表,我将其分成三列。如下例:

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 函数将数字与文本分开,但我不知道下一步该做什么。

【问题讨论】:

    标签: excel excel-formula split grouping


    【解决方案1】:

    编辑多位索引。

    假设源表在A1:B15,结果表在E1:H15,以下公式有效:

    1. 类 (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),"")

    【讨论】:

      【解决方案2】:

      我能想到的最简单的方法是,如果上面的数据在单元格 A:B 中,那么在单元格 D:G 中输入以下内容(第一行中的标题): -

      D: - =IF(SEARCH(" ",A2,1)=3,A2,D1) 邮箱:-=IF(SEARCH(" ",A4,1)=4,A4,E3) 女:=IF(SEARCH(" ",A4,1)=6,A4,F3) 然后,您必须删除 Class/Order 中每次更改的前几行。
      G:对数量有一个=。 希望这可以帮助。

      请注意,这种方式只有在没有数字超过个位数的情况下才有效,如果它确实让我知道,我会让它更智能:)

      【讨论】:

      • 其实数字超过个位数rs
      猜你喜欢
      • 2014-08-06
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-22
      • 1970-01-01
      • 2011-08-12
      相关资源
      最近更新 更多