Если вы занимаетесь организацией любого процесса, закупками и т.п. вам наверное приходилось сталкивать с многоуровневыми списками в формате таблиц. В текстовом документе они наглядны, в ячейках всё сливается. Бывает полезно визуализировать иерархическую структуру и сразу понять масштабы происходящего. Для этого можно использовать комбинацию из нескольких из трёх функций: ДЛСТР, ПОДСТАВИТЬ и ЕСЛИ.
Исходная задача
Допустим, у нас есть список из трех уровней:

В табличном документе он скорее всего будет выглядеть вот так:

Если этот документ создан не просто для хранения информации, а для работы, например, потребуется определение количества объектов на каждом уровне, то лучше сделать эквивалент многоуровневого списка, но с помощью столбцов.
Решение задачи
В данном посте предложен один из вариантов скорее для демонстрации логики работы. Знатоки таблиц наверняка предложат что-то своё.
Сначала нужно определить, к какому уровню относится строка. Будет это делать по ее номеру, а точнее по количеству символов без точек. Для этого точки мы удалим. Нам потребуется формула вида =ДЛСТР(ПОДСТАВИТЬ(A2;”.”;””)). Результат ее работы показана на снимке экрана ниже.

Теперь определим столбцы D, E, F под уровни 1, 2, 3 и вставим соответствующие цифры в первую строку. Распределим данные из столбца В по D, E, F, используя значения из С. Для этого во всех ячейках D, E, F используется формула вида =ЕСЛИ($C2=D1;$B2;” “), меняются только адреса ячеек.

В итоге получаем вот такой результат:

Если таблицей пользуется лишь тот, кто ее создал, возможно это лишняя работы. Но если это часть проектной документации и требуется, чтобы каждый член команды мог разобраться с первого взгляда, подобный формат точно пригодится.
Приведенный пример будет неполным, если под конец мы не сделаем операцию, которая диктуется логикой работы таблиц – нужно слить всё в одну формулу. Мы использовали промежуточный результат из столбца С, но можно всё сделать одним шагом. Для этого первую формулу можно вставить внутрь второй на место $C2. Получится =ЕСЛИ(ДЛСТР(ПОДСТАВИТЬ(A2;”.”;””))=D1;$B2;” “). Вуаля!

Если вам понравился пост, возможно вас заинтересуют другие публикации по теме редактора электронных таблиц, релевантные только что рассмотренному примеру:
- Зафиксируй это: несдвигаемый диапазон в формуле
- Как преобразовать диапазон ячеек в текст
- Как разделить текст по столбцам
Если вы хотите получить больше информации, то можете воспользоваться рубрикатором и поиском, которые расположены справа от этого текста, посмотреть популярные и похожие статьи. Помимо этого, у нас на сайте есть база знаний в карточках, а еще много увлекательного контента в VK и в Telegram. Там же есть возможность написать нам, поделиться своим опытом и задать вопросы. А еще вы можете задавать свои вопросы нашему боту Лёлику и сразу получать ответы. Попробуйте сами!