Страницы: 1
RSS
Многоуровневая нумерация в excel
 
Подскажите пожалуйста как в Excel можно сделать нумерацию (этапов, подэтапов и работ) чтобы в случае удаления одной из строк нумерация пересчитывалась заново! Нумерация возможна до 6 уровней (1.1.1.1.1.1) и всего до 900 работ всех уровней.    
Например:  
1  
...  
1.30  
1.30.1  
1.30.1.1  
1.30.1.1.1  
1.30.1.1.2  
1.30.1.1.3  
1.30.1.1.4  
1.30.1.1.5  
1.30.1.1.6  
1.30.1.1.7  
1.30.1.1.8  
1.30.1.1.9  
1.30.1.1.10  
1.30.1.2  
1.30.1.2.1  
1.30.1.2.2  
1.30.1.2.3  
1.30.1.2.4  
1.30.1.2.5  
1.30.1.3  
1.30.1.3.1  
1.30.1.3.2  
1.30.1.3.3  
1.30.1.3.4  
1.30.1.4  
1.30.1.5  
1.30.1.6  
1.30.1.7  
1.30.1.8  
1.30.1.8.1  
1.30.1.8.1.1  
1.30.1.8.1.2  
1.30.1.8.1.3  
1.30.1.8.1.4  
1.30.1.8.2  
1.30.1.8.2.1  
1.30.1.8.2.2  
1.30.1.8.2.3  
1.30.1.8.3  
1.30.1.8.4  
1.30.1.9  
1.30.1.10  
1.30.1.11  
1.30.1.12  
1.30.2  
1.30.2.1  
1.30.2.2  
1.30.2.3  
1.30.3  
1.30.3.1  
1.30.3.2  
1.31  
1.32
 
Это мы не с Олечкой Козиной общаемся? Сергей Пилипенко.
Я сам - дурнее всякого примера! ...
 
Это Оксаночка ))))
 
Козина О.В., подождите, пожалуйста. Наверняка спецы типа Kim, vikttur заинтересуются Вашей задачей. Или Вас интересует решение в ВБА?
Я сам - дурнее всякого примера! ...
 
Сергей, меня заинтересует любое решение.
 
А как определить, сколько уровней в каждом случае?
 
Оксаночка, я рад буду Вам помочь, НО! На форуме есть УМНИЧКИ, не до конца перечисленные мной(типа Kim, vikttur, ну не всех формулистов перечислил!), которые решат Вашу проблему и быстрей и легче(а я так чувствую и изящнее) меня.  
Если уж никто из Гуру формул не откликтнется...
Я сам - дурнее всякого примера! ...
 
Может, всё-таки, воспользоваться Word-ом?
Для него подобная нумерация - родная.
И уровень заголовков можно менять нажатием одной комбинации клавиш.

В случае с Excel (где нет возможности менять уровень без применения макроса) возникает вопрос:
как формулы должна нумеровать оставшиеся после удаления строки?

Возьмём ваш пример - а именно эти строки:
1.30
1.30.1
1.30.1.1
1.30.1.1.1
1.30.1.1.2
1.30.1.1.3
1.30.1.1.4
теперь представим, что вы вручную удалили эти строки:
1.30.1
1.30.1.1
1.30.1.1.1
1.30.1.1.2
То есть, осталось вот что:
1.30
1.30.1.1.3
1.30.1.1.4
И как должна восстановиться нумерация? Вариантов восстановления множество...
 
ДА, так гораздо изящнее! EducatedFool респект! Кто больше?  
Козина О.В., Ваш пример(в соответствии с правилами форума) сильно ускорит решение.
Я сам - дурнее всякого примера! ...
 
>>Наверняка спецы типа Kim, vikttur заинтересуются Вашей задачей.
за "спецов" спасибо. Приятно, хотя и не спец  :)  
Но для формулистов задача неинтересна.
Мнение по задаче - макрос с таким, наверное, справится - отслеживание последней измененной ячейки и пересчет нумерации.
Для формул задача непосильна. Нарисовать формулу для последовательности от 1 до, например, 30.30.30.30.30.30 не проблема, если последовательность непрерывна или есть какой-либо алгоритм изменения уровней/подуровней. В показанном примере разное количество вложений, да еще "в случае удаления одной из строк нумерация пересчитывалась заново".
 
Я как-то давно бился над аналогичной задачей и не придумал ничего лучше чем для каждого уровня вложения создать отдельный скрытый служебный столбец. А в видимом начальству столбце многоуровневый список делался формулам =СЦЕПИТЬ(...)
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Вот, что-то типа этого.  
Только надо с формулами скрытых столбцов помудрить чтобы пересчитывались при удалении/добавлении пунктов.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Если что-то должно быть удалено, то только вместе с "подработами", например, если удаляем 1.30.1, то также я удалю  и подработы.  
А далее идёт работа 1.30.2, которая после удаления выписанных работ должна переименоваться в 1.30.1, и соответственно работы 1.30.2.1, 1.30.2.2 и 1.30.2.3 переименуются в 1.30.1.1, 1.30.1.2 и 1.30.1.3.  
Я ответила на Ваш вопрос?  
 
По поводу уровней: мне дают готовый список работ, где указаны основные этапы (цветом, шрифтом...), крупные этапы, подэтапы, работы и т.д. Нумерацию я делаю уже сама вручную. А потом иногда получается, что мне говорят: "А давай этот подэтап уберём" - какой-нибудь из начала списка, и всю нумерацию приходится перебивать вручную.  
 
Прилагаю файлик с одним из проектов с готовой нумерацией (там мне сказали, возможно придётся убрать пункт 1.3 (то есть строки с 12-ой по 22-ую).
 
Алексей, спасибо огромное за пример. Что то подобное сделала и я. Просто я подумала, может есть способ как это сделать без создания дополнительных столбцов.
 
интересно как это без доп столбцов  
машина без пользователя не назначит правильно уровень  
у меня как-то так
 
Да, здОрово!  
Такие сложные формулы, да ещё и формулы массива, для меня, к сожалению, недоступны... Я всё больше по-старинке, на VBA. А формулами только иногда "балуюсь" чуть-чуть.  
А надо бы подправить что-то в формуле, т.к. при изменении уровня вложенности, например, в строке 6 с уровень3 на уровень2, дальше сбивается нумерация из-за "проглатывания" разделителя (точки). Ясно, что где-то маленькая ошибка в формуле, но где?...
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Алекс,  
не понял, что подправить
 
Интересно, а если воспользоваться word, можно ли в нем сделать простейшую арифметику. Я давно встречала такой макрос, чтобы в wordе можно было складывать. Но сейчас его найти не могу.
 
Прошу прощения за долгое молчание. Какая-то проблема возникла с выкладыванием файлов... Попробую словами.  
тухачевский,  
попробуйте вместо [I6]="", [J6]=1 сделать [I6]=1, [J6]="" (т.е. повысить уровень строки 6) и увидите, что нумерация в строках 7 и 8 нарушится.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
А по поводу Word'a, Оксана, попробуйте конечно, но вряд ли сможете получить что-нибудь приемлемое.    
"Word и таблицы - не совместимы" (в смысле как гений и злодейство...)  
Там, конечно, можно делать таблицы и какие-то простейшие вычисления, но ВСЁ НАСТОЛЬКО КОРЯВО!!!
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Алекс,  
спасибо  
поправил  
но:  
уровень перескакивать нельзя
 
Я как-то недавно делал упрощенную версию для себя.  
Недостатки: максимальное количество подпунктов - 9 (т.е. нумерация после 10 на любом уровне будет неправильно работать)  
При удалении/добавлении строк нужно протянуть формулу заново по столбцу  
В самую первую строчку нужно вручную вбить цифру 1.
 
Цитата
Для формул задача непосильна.
В который раз убеждаюсь, что нельзя быть категоричным в отрицании конкретных возможностей Excel. При задействовании n-количества доп. столбцов или при "выстреле" какой-то идеи решается то, что раньше считалось невозможным. Как у фантастов. Люблю фантастику  :)  
Haken, мысль с прописыванием уровней понравилась.
 
Haken огромное спасибо. Мне бы такая реализация даже в голову не пришла. Вот уж действительно - век живи, век учись.
 
ложка дегтя: согласно инструкции по делопроизводству индекс пункта должен заканчиваться точкой
 
Была бы идея (спасибо Haken'у), а точек можно наставить.  
Уточните, индекс первого уровня тоже должен быть с точкой(1.)?
 
точки д/б везде  
а идея замечательная  
добавил ложку меда: при удалении строки не нужно перепрописывать столбец
 
Рад, что моя идея понравилась.  
Чтобы везде в конце была точка, можно поставить формат ячеек "@." (без кавычек) :)  
Сейчас пытаюсь доработать, чтобы нумерации любого уровня и количества работали правильно :)
 
Вот  :)  
выбирайте, кому с точкой, кому без точки, кому формулами, кому макросами   :)  

Прошу обратить внимание на различие обработки с помощью формул и польз.функции. "ошибки" при перескоке с уровня на уровень больше чем на 1 в бОльшую сторону (внизу выделено желтым)
Конечно, при наличии "до 900 работ всех уровней" быстрее будет обычными формулами обсчитываться
Страницы: 1
Читают тему
Наверх