2016-12-09 3 views
1

Я ищу, чтобы составить список заголовков типа 1, подзаголовок типа 2 и подзаголовка типа 3, и каждый последующий экземпляр заголовок увеличивается в excel. напримерСоздание списка рубрик, подзаголовок и подзаголовок в Excel

Outcome 1 
Output 1.1 
Activity 1.1.1 
Activity 1.1.2 
Output 1.2 
Activity 1.2.1 
Activity 1.2.2 
Activity 1.2.3 
Outcome 2 
Output 2.1 
Activity 2.1.1 
etc 

Вот моя формула - получение быть сложным вложенная IF заявление:

IF([@Column1]="","", 
IF([@Column1]="Outcome", "Outcome " & COUNTIF(tbOOA[[#Headers],[Column1]]:[@Column1], [@Column1]), 
IF([@Column1]="Output","Output "& COUNTIF(tbOOA[[#Headers],[Column1]]:[@Column1],"Outcome") ***&"."&*** COUNTIF(tbOOA[[#Headers],[Column1]]:[@Column1],[@Column1]), 
"Activity " & "serious help"))) 

В колонке 1, выбрать из списка «результат», «Выход», или «активность».

В колонке 2 рассчитать соответствующее число, например. Выход 1.2

Если строка пуста, то ничего. - Fine

If it is "Outcome", count from the header until current row for the number of instances of "Outcome". - Fine  
Else if it is "Output", count the number of "Outcome"s there are. - Fine  
This is where it falls apart. Trying to calculate the number after the "." (bold and italic) 

Мне нужно подсчитать # экземпляров «Выход», но тогда это должен сбросить на 1 каждый раз, когда новый «Результат».

Логика Я пытаюсь выполнить следующие действия:

(# of "Outputs" from the table header until the current row) minus 
(# of "Outputs" from the table header until the last instance of "Outcome") 

Я пытался несколько попыток расчета количества строк, но все было проблематично.

Логика такая же для действий, хотя усложнит формулу еще больше, и я не потрудился начать с нее, пока не смогу получить сортировку уровня 2.

Кто-нибудь знает о сходной проблеме/решении?

ответ

1

Если вы открыты для использования скрытых вспомогательных столбцов, формулы становятся намного более управляемыми. Используйте столбец A для хранения данных «Результат», «Вывод» и «Активность».

Затем используйте столбец B для обработки номеров Outcome, столбец C, чтобы иметь дело с номерами Output и столбцом D для обработки номеров Activity. Слияние окончательных результатов вместе в колонке E.

В B1, C1 и D1 вручную написать в первых значениях (1, 0 и 0).

Затем заполнить вниз, начиная с B2 следующими:

=IF(A2="Outcome",B1+1,B1) 

Это работает приращение только если вы обнаружили, что ваш следующий Выход.

Заливка вниз от C2 со следующим:

=IF(A2="Outcome",0,IF(A2="Output",C1+1,C1)) 

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

Залейте вниз от D2 с

=IF(OR(A3="Outcome",A3="Output"),0,IF(A3="Activity",D2+1,D2)) 

Это очень похоже на предшествующую формулу, но сбрасывает на Итоговом или выходе.

Наконец, в D4, объединить все это вместе с

=B1&IF(C1>0,"."&C1&IF(D1>0,"."&D1,""),"") 

& является строковой операции конкатенации. Проверяя, являются ли внутренние значения 0, мы объединяем только . и следующее число, если следующее число не равно нулю.

+0

Спасибо Choirbean. Я только что нашел решение и забыл, что я разместил этот quesiton. Мое решение в одной большой уродливой формуле находится здесь - http://stackoverflow.com/questions/43863296/dynamic-multi-level-numbered-list-using-excel-formula –

+0

Я также пробовал ваше предложение, и оно также хорошо работает , с небольшими изменениями, также включающими «Итог», «Выход» или «Активность». Обратите внимание, что мне нужно использовать его в таблице, поэтому заголовки таблиц должны быть разными и должны быть числами, используя для этого 0, -1 и -2, так как он сбрасывается после выбора первого результата. > = IF ([@ [Выбрать уровень]] = "", "", [@ [Выбрать уровень]] & "" & [@ 0] & IF ([@ [- 1]]> 0, "." & [@ [- 1]] & IF ([@ [- 2]]> 0, "." & [@ [- 2]], ""), "")) –

+0

О, вау - одноуровневая формула , действительно, большой и уродливый! Я стараюсь использовать вспомогательные столбцы, чтобы упростить процесс из-за одного ужасного опыта, который должен был отлаживать формулу, которая, как я считала, была правильной и имела 4 экрана. Это было так бесполезно больно! С тех пор я стал довольно религиозным относительно вспомогательных колонн. Когда мне нужны столбцы рядом друг с другом, я нажимаю вспомогательные столбцы в сторону. –

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