В Excel я создаю отчет с приборной панелью, которая включает карту страны. Эта карта состоит из объектов, представляющих административные округа страны, и через VBA объекты меняют цвет в зависимости от наличия проектов в этой области. Необходимые для этого данные извлекаются из сводной таблицы исходной таблицы данных. Таблица данных заполняется различными руководителями проекта и является максимально простой. Это все работает хорошо.

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

Первый пример

В этой версии у меня есть фокус проекта в виде одной текстовой строки, а расположение - как набор двоичных полей. Это прекрасно работает. Сводная таблица подсчитывает проекты в каждом месте, а на приборной панели срез позволяет группировать их по умолчанию, а затем корректировать в соответствии с фокусом проекта. Данные в столбце сводных данных отображаются на карте в соответствии с фиктивным примером, с более темными оттенками для большего количества проектов. Это именно то, что мне нужно. Тем не менее, это не является удовлетворительным решением, так как некоторые проекты имеют несколько направлений, таких как Проект 3 в этом примере. Когда я нажимаю кнопку здоровья на слайсере, проект 3 не будет включен. В полной версии этого файла есть много проектов с множеством комбинаций фокусов, поэтому не представляется возможным перечислить каждую потенциальную комбинацию.

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

Второй пример

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

1 ответ1

0

Мне кажется, что вы говорите о способности "Unpivot" данных. Как вы узнали, кросс-табулированный макет, как у вас, не является хорошим источником данных сводной таблицы. Кросс-таблица имеет одно из полей, расположенных в верхней части данных, и часто это поле года, как в примере ниже:

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

Почему это важно? По нескольким причинам:

  • С кросс-таблицей вы должны перетащить каждое из этих полей года в область ЗНАЧЕНИЯ по отдельности, если вы хотите, чтобы они отображались. С другой стороны, с помощью простого файла, после того как вы перетащили это поле Доход в область ЗНАЧЕНИЯ, вы решаете, какие годы дохода показывать (или скрывать), просто отфильтровывая поле Дата.
  • С помощью кросс-таблицы необходимо изменить формат чисел всех этих полей в области ЗНАЧЕНИЯ по отдельности. То же самое происходит, если вы хотите исключить этот префикс «Сумма» или если вы хотите, чтобы значения отображались в процентах от общего количества столбцов; каждое поле должно быть изменено индивидуально.

Так в чем же дело? Вы должны превратить эти исходные данные из кросс-таблицы в плоский файл, процесс, который обычно называют отменой или нормализацией кросс-таблицы.

Вам нужны данные, чтобы выглядеть так:

... и не так

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

Если у вас есть версия Excel с PowerQuery (она называется Get and Transform), то есть встроенная команда UNPIVOT, в которой довольно легко найти видеоролики, поясняющие на YouTube.

Если вам нужно решение VBA, есть куча разного кода, в том числе моя рутина на http://dailydoseofexcel.com/archives/2013/11/21/unpivot-shootout/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .