
Резюме
Для генерації базової нумерації контурів ви можете використовувати формулу на основі декількох функцій Excel, включаючи COUNTA, IF, MID, FIND та LEN. У наведеному прикладі формула в D5 має вигляд:
=COUNTA($B$5:B5)&"."&IF(B5"",1,MID(D4,FIND(".",D4)+1,LEN(D4))+1)
Примітка: ця формула буде обробляти лише дворівневий контур.
Пояснення
По суті, ця формула створює число 1 і 2 рівня і об'єднує ці два числа разом з крапкою (".") Як роздільник. У результаті виходить значення на зразок «1,1». Номер "рівня 1" генерується з COUNTA таким чином:
=COUNTA($B$5:B5)
Зверніть увагу, що діапазон є посиланням, що розширюється, тому він буде розширюватися під час копіювання в стовпець.
Номер "рівня 2" генерується з таким кодом:
IF(B5"",1,MID(D4,FIND(".",D4)+1,LEN(D4))+1)
Тут функція IF використовується для перевірки вмісту B5. Якщо B5 не пустий, це означає, що у нас є новий заголовок рівня 1, а якщо повертається 1. Іншими словами, кожного разу, коли у нас є новий запис рівня 1, ми перезапускаємо нумерацію рівня 2 на 1.
Якщо B5 * є * порожнім, нам потрібно збільшити число рівня 2, використовуючи значення в клітинці вище. Це трохи хитро, оскільки номер контуру - це текстовий рядок, а не число. Це означає, що нам потрібно виділити значення за допомогою текстової функції, перш ніж ми зможемо збільшити. Для цього ми використовуємо функцію MID для вилучення всього тексту праворуч від точки ("."), Яку ми знаходимо за допомогою функції FIND:
MID(D4,FIND(".",D4)+1,LEN(D4))+1
Функція LEN використовується як простий спосіб гарантувати всі символи після вилучення крапки. Зверніть увагу, що ми тоді додаємо 1 безпосередньо до результату, який все ще є текстом. Ця математична операція змушує Excel примушувати текст до числа, тому результат - збільшене число. Нарешті, цифри рівня 1 та рівня 2 об'єднуються разом із крапкою (".") Як роздільник.