Вопрос сводной таблицы Excel - Как получить промежуточные итоги для поля области строки? - PullRequest
0 голосов
/ 27 апреля 2009

У меня следующая ситуация в базе данных:

Отдел Таблица содержит все отделы компании.

Employee Таблица содержит всех сотрудников вместе с идентификатором их отдела и полем AllowedAbsenceDays, в котором указано, сколько дней сотруднику разрешено отсутствовать в текущем году.

Таблица

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

alt text

Я должен создать отчет, в котором перечислены все сотрудники и указано, сколько дней им разрешено отсутствовать, а также сколько дней они отсутствовали (и в чем причина отсутствия).

Я сгруппировал данные по сотруднику и по причине отсутствия:

alt text

Это то, что я могу получить до сих пор, поместив дни Департамента, Сотрудника и Допустимые пропуски в область сводных строк, Причину в столбце и Сумму дней, отсутствующих в области данных:

alt text

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

alt text

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

Пример рабочей книги доступен для скачивания здесь

Спасибо всем, кто все еще читает:)

P.S. Реальный случай другой (в проблемной области). Это несколько надуманный пример, но основная проблема та же.

Ответы [ 2 ]

3 голосов
/ 29 апреля 2009

Это классическая проблема нормализации данных. Поле «Разрешенные дни отсутствия» относится к работнику, а не к какому-либо конкретному отсутствию. Повторение этой информации в каждой строке (записи) является причиной проблемы.

Чтобы добиться этого в таблице Excel и сводной таблице, можно удалить столбец «Разрешенные дни отсутствия» и вместо этого использовать «Разрешенные дни отсутствия» в качестве одного из значений в столбце «Причина». Может быть полезно показать разрешенные дни как отрицательную сумму или указать дни по другим причинам отсутствия как отрицательные. В противном случае общий итог не будет иметь никакого смысла.

Таблица и сводная таблица должны выглядеть примерно так:

Электронная таблица Excel с реструктурированными данными: столбец A - отдел, B - сотрудник, C - отсутствие дней, D - причина. Допустимые дни отсутствия теперь являются причиной, а связанные дни отсутствия отрицательны http://img527.imageshack.us/img527/1979/so1.png

Excel pivot table showing sums of days absent in columns C through E. Allowed absence days in column C

Повторение отдела для каждого сотрудника не кажется идеальным, но я полагаю, что сотрудник может сменить отдел в течение года, так что вы можете / не должны каким-то образом это учитывать. Вам также нужно, чтобы сводная таблица работала в любом случае

Если вы абсолютно на 100% не можете повлиять на общую сумму таким образом, то я не верю, что вы можете достичь этого с помощью сводной таблицы. Возможно, вы захотите взглянуть на использование ADO для запроса листа и использовать некоторые макросы VBA для форматирования и вывода результатов. Эта страница должна дать вам некоторое представление о том, что происходит

0 голосов
/ 28 января 2010

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

Затем просто поместите ваши «разрешенные дни отсутствия» в данные вместо столбцов в сводной таблице и перетащите их влево.

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