Как получить excel для автоматической структуры иерархии в группы?

Так у меня есть куча данных в электронной таблице Excel, которая выглядит так:

Level   Hierarchy       Name
0       1               Sam
1       1.1             Bill
2       1.1.1           George
3       1.1.1.1         Fred
4       1.1.1.1.1       Richard
4       1.1.1.1.2       Steve
4       1.1.1.1.3       Max
4       1.1.1.1.4       Sven
3       1.1.1.2         Mike
4       1.1.1.2.1       John
4       1.1.1.2.2       Isaac
4       1.1.1.2.3       Zack
2       1.1.2           James
3       1.1.2.1         Henry
4       1.1.2.1.1       Greg
            .
            .
            .

Я хотел бы автоматически создать группы на листе, чтобы Ричард, Стив, Макс и Свен были сгруппированы под Фредом; Джон, Исаак и Зак находятся под Майком; и т. д... и они все закатываются под Сэма.

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

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

4
задан JoeNahmias
30.03.2023 0:13 Количество просмотров материала 3611
Распечатать страницу

5 ответов

Если у вас есть конечное число уровней, то я бы сделал следующее. Если ваши данные когда-либо должны быть обновлены, у этого есть преимущество того, чтобы быть простым обновлением пивота (т. е. вы установили его только один раз):

  1. создать новые столбцы (number=max level) для представления босса человека на каждом уровне иерархии (обратите внимание, предполагается, что он отсортирован по полю hiearchy) enter image description here

  2. формула в D3 и копируется снова и снова: =IF($B3=D,$A3,IF($B3<D,"",D2))

  3. создайте сводную таблицу (компактный или контурный вид в зависимости от ваших предпочтений), установив каждый босс уровня в виде метки строки
  4. фильтр пустых боссов уровня на каждом уровне

enter image description here

4
отвечен Madball73 2023-03-31 08:01

для того чтобы использовать функцию автоматической группировки контуров, необходимо (вручную) вставить строки сводки с функцией Subtotal (). Excel распознает это как точку останова для группировки. Подробнее см. В статье Microsoft контурные (групповые) данные на листе.

3
отвечен teylyn 2023-03-31 10:18

Я бы загрузил эту таблицу в Power Pivot и сгладил иерархию в уровни, usi функции DAX, например, PATHITEM

http://www.powerpivotblog.nl/powerpivot-denali-parent-child-using-dax/

Если вы не можете использовать Power Pivot, я бы заставил исходную систему сгладить иерархию в столбцы уровня аналогичным образом.

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

большой нюанс в том, что вы должны зафиксировать максимальное количество уровней.

1
отвечен Mike Honey 2023-03-31 12:35

ниже связаны макро групп (авто-контуры) строки на столбец иерархия. Просто выберите номера уровней (отформатированные с полными остановками[столбец иерархии]) и запустите макрос. Работает в диапазоне и в таблице. Нет общая, граф и строк будет добавлено.

сгруппировать строки

код VBA - Auto Group rows

0
отвечен Karmo 2023-03-31 14:52

код VBA для автоматической группировки строк по номеру в столбце иерархии

For i = 3 To RowLength 
    On Error Resume Next
    levelNo = Len(Cells(i, WBSColNo)) - Len(Replace(Cells(i, WBSColNo), ".", "")) + 1
    Rows(i).OutlineLevel = levelNo  
 Next

С уважением

0
отвечен Hossein Zarrinzadeh 2023-03-31 17:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх