С отступом Иерархические Разборные данные сгруппированы в столбцы в Excel? - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь изменить иерархические сворачиваемые данные на столбцы в Excel?Есть ли быстрый способ?

Я пытался использовать текст для столбцов, но я не думаю, что это правильный путь.

enter image description here

Предыдущие данные

Data Previous

Данные после

Data After

+------------+-------+--------+
|    Item    | Level | Parent |
+------------+-------+--------+
| P1         |     1 | N/A    |
|     P2     |     2 | P1     |
|     P3     |     2 | P1     |
|         P4 |     3 | P3     |
|     P5     |     2 | P1     |
|         P6 |     3 | P5     |
+------------+-------+--------+

Отступ с иерархией столбцов.Я попытался обрезать функцию, чтобы подсчитать ведущие пробелы, если я буду знать количество, я могу просто фильтровать и копировать данные вставки в соответствующие столбцы, но я не мог посчитать как-то.

1 Ответ

0 голосов
/ 18 июня 2019

Решение 1. Возвращение отступа с помощью простого кода VBA

Function PROFEXIndentLevel(Cell As Range)
    'This function returns the indentation of a cell content

    Application.Volatile
    'With "Application.Volatile" you can make sure, that the function will be recalculated once the worksheet is recalculated
    'for example, when you press F9 (Windows) or press enter in a cell

    PROFEXIndentLevel = Cell.IndentLevel
    'Return the IndentLevel

End Function

Скопируйте и вставьте этот код в новый модуль VBA.Поэтому (как обычно) перейдите на ленту разработчика.Затем нажмите на редактор, щелкните правой кнопкой мыши объекты Microsoft Excel.Вставьте новый модуль.Вставьте код в этот модуль.

Далее вам просто нужно набрать формулу =PROFEXIndentLevel.Например, в ячейке C3:

=PROFEXIndentLevel(A3)

В этом примере в качестве возвращаемого значения вы получите 2.

Обратите внимание, что если вы используете эту формулу для большого количества ячеек, она может замедлиться.снизьте производительность ваших книг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...