2015-08-31 2 views
0

Что делать, если у нас есть трехуровневая иерархия и нужно перечислять только «B» (согласно шаблону), но некоторые «C» мешают «B» «s.Иерархическая автоматическая нумерация (с тремя уровнями) в Excel

Задача: получить столбец B из данной колонки A.

A+ 
B 1 
B 2 
С- 
B 3 
A+ 
B 1 
С- 
B 2 
A+ 
С- 
B 1 
B 2 
B 3 

P.S. Задача возникла из необходимости перечислить сложную иерархию в Excel.

Представьте, что A - уровень 1; B - уровень 2; C - уровень 3. (с некоторым злоупотреблением логикой в ​​приведенном выше примере как C- в шаблоне идет после A, что на практике обычно не так).

Простой пример двухуровневой иерархии показан here.

ответ

1

Я также пошел с хелперов колонку (столько же, сколько я ненавижу их лично), чтобы показать строку каждого A +

Поместить это в C1: =ROW(A1)

Поместите это в С2: =IF(A2="A+",ROW(A2),C1)

Он использует расширяющийся диапазон с перестраиваемой начальной точкой. Перетащите до тех пор, пока ваши данные не исчезнут.

Поместите это в В2: =IF(OR(A2="C-",A2="A+"),"",IF(A1="A+",1,MAX(INDIRECT("B" & C2 & ":B" & ROW(A1)))+1))

Перетащите вниз, насколько идет ваши данные.

Надеюсь, что это поможет. Вот полученные мной результаты:

A+  1 
B 1 1 
B 2 1 
C-  1 
B 3 1 
A+  6 
B 1 6 
C-  6 
B 2 6 
A+  10 
C-  10 
B 1 10 
B 2 10 
B 3 10 
2

Проще всего добавить два промежуточных вспомогательных столбца, первый из которых мы будем называть столбцом C. Здесь мы будем считать только, с какими «А +» мы находимся, как [начало с C2; С1 зашиты, как 1]:

=IF(A2="A+",A1+1,A1) 

Это приращение каждый раз, когда новая строка имеет «А +» в колонке А.

Затем колонку D будет отслеживать самый высокий # достиг до сих пор, для этой итерации столбец C [начиная с D2; D1 жестко закодировано в 1]:

=IF(A2="A+",0,if(A2="B",B2,D1)) 

Это приведет к перезапуску при 0 для каждого нового «A +», и для каждого «B», он будет принимать значение, показанное в столбце B. Тогда для каждого «C», он будет просто повторять значение из строки выше (предыдущий «B» достиг).

Наконец, вы можете положить в то, как следует [начиная с E1]:

=IF(A1="B",B1,"") 

Это покажет BLANK для обоих «A +» или «C», и покажет B-счетчик, если столбец A = "B".

Смежные вопросы