Разделить столбцы по группам в Excel - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть список групп, подгрупп и элементов в одном столбце, который я бы разделил на три столбца. как приведенный ниже пример:

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, но я не знаю, что делать дальше.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Редактировать для индексов multi di git.

Если исходная таблица находится в 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),"")

enter image description here

0 голосов
/ 14 апреля 2020

Самый простой способ, который я могу придумать, состоит в том, что если приведенные выше данные находятся в ячейках 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) Затем вам нужно будет удалить первую пару строк для каждого изменения в классе / заказе.
G: чтобы иметь = для количества. Надеюсь это поможет.

Обратите внимание, что этот способ будет работать только в том случае, если число не превышает однозначных цифр, если оно сообщит мне, и я сделаю его немного более интеллектуальным:)

...