Здравствуйте! Помогите решить задачку (очень лениво постоянно корректировать сводную).
Есть табличка - сотрудники периодически забивают на работу. Вопрос - можно как-нибудь обойтись без сводной, чтоб получить итоги по сотрудникам каждого отдела (итоговые таблички справа)? Почему не сводная: - она автоматически не обновляется (научите как, буду очень благодарен); - она до кучи берет пустое значение (приходится фильтром его убирать, чтоб позже в диаграмму не попало),
А может, есть вариант, чтоб с исходной таблицы сразу строилась диаграмма (собственно, эта и есть конечная цель), показывающая, сколько у сотрудников косяков за месяц?
Здравствуйте! Помогите решить задачку (очень лениво постоянно корректировать сводную).
Есть табличка - сотрудники периодически забивают на работу. Вопрос - можно как-нибудь обойтись без сводной, чтоб получить итоги по сотрудникам каждого отдела (итоговые таблички справа)? Почему не сводная: - она автоматически не обновляется (научите как, буду очень благодарен); - она до кучи берет пустое значение (приходится фильтром его убирать, чтоб позже в диаграмму не попало),
А может, есть вариант, чтоб с исходной таблицы сразу строилась диаграмма (собственно, эта и есть конечная цель), показывающая, сколько у сотрудников косяков за месяц?ЩтуКув
Программно - обновление на активацию листа и открытие книги (пустые тоже убирает) [vba]
Код
Private Sub Worksheet_Activate() ThisWorkbook.RefreshAll PivotTables("Сводная таблица1").PivotFields ("Менеджер") .PivotItems("(blank)").Visible = False End Sub
[/vba] [vba]
Код
Private Sub Workbook_Open() ThisWorkbook.RefreshAll End Sub
[/vba] Можно и на другие события повесить
Цитата
сразу строилась диаграмма
Это и называется "сводная диаграмма" - см. файл
Цитата
научите как
Программно - обновление на активацию листа и открытие книги (пустые тоже убирает) [vba]
Код
Private Sub Worksheet_Activate() ThisWorkbook.RefreshAll PivotTables("Сводная таблица1").PivotFields ("Менеджер") .PivotItems("(blank)").Visible = False End Sub
[/vba] [vba]
Код
Private Sub Workbook_Open() ThisWorkbook.RefreshAll End Sub
[/vba] Можно и на другие события повесить
Цитата
сразу строилась диаграмма
Это и называется "сводная диаграмма" - см. файлbuchlotnik
В один день не могут накосячить более одного человека? Сотрудники известны заранее?
Предложенная мной табличка всего лишь простой пример (надеюсь понятный). В действительности она гораздо больше имеет столбцов с данными, никак не влияющими на формирование сводной. нет, в день косячит только один нет, сотрудники заранее неизвестны (одни увольняются, другие приходят).
Полагаю, что без сводной тут никак не обойтись, при этом нужно просто заставить её обновляться и "прятать" пустое значение самостоятельно.
buchlotnik, ваш вариант прописывать куда-то в VBA?
В один день не могут накосячить более одного человека? Сотрудники известны заранее?
Предложенная мной табличка всего лишь простой пример (надеюсь понятный). В действительности она гораздо больше имеет столбцов с данными, никак не влияющими на формирование сводной. нет, в день косячит только один нет, сотрудники заранее неизвестны (одни увольняются, другие приходят).
Полагаю, что без сводной тут никак не обойтись, при этом нужно просто заставить её обновляться и "прятать" пустое значение самостоятельно.
buchlotnik, ваш вариант прописывать куда-то в VBA?ЩтуКув
Смотрите, какой еще есть нюанс у сводной! Допустим, таблица составлена, я делаю сводную, снимаю галочку с пустого значения и табличка готова! Далее я добавляю еще одного косячника из тех, кто уже "попадался", жму во вкладке "Данные" кнопку "Обновить всё" и в сводной этому человеку прибавляется +1. Но если я добавляю нового человека (ранее не попадавшегося), то при нажатии на "Обновить всё" новый чел в сводную не попадает, потому, что в сводной на его фамилии снята галочка (из-за того, что ранее снял галочку с пустого значения)!!! Это можно как-нибудь програмно исправить, или только ручками?
Смотрите, какой еще есть нюанс у сводной! Допустим, таблица составлена, я делаю сводную, снимаю галочку с пустого значения и табличка готова! Далее я добавляю еще одного косячника из тех, кто уже "попадался", жму во вкладке "Данные" кнопку "Обновить всё" и в сводной этому человеку прибавляется +1. Но если я добавляю нового человека (ранее не попадавшегося), то при нажатии на "Обновить всё" новый чел в сводную не попадает, потому, что в сводной на его фамилии снята галочка (из-за того, что ранее снял галочку с пустого значения)!!! Это можно как-нибудь програмно исправить, или только ручками?ЩтуКув
Это просто - жмете на стрелочку фильтра - Фильтр по подписи - Не равно - (пусто) Тогда в самом фильтре галка на Пусто стоять будет, но сводная эту строку не покажет
Сделал Вам автодобавление в сводную новых строк (после того, как Вы проставите номер в столбце В (хотя это наверное не нужно, но уж сделал - см. имя "Диап" через Контрл F3)) и автодобавление при изменении каких-либо значений в уже существующей сводной Макрос лежит в модуле листа - правой мышой на ярлык листа - Исходный текст [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("Диап")) Is Nothing Then ThisWorkbook.RefreshAll End If End Sub
[/vba]
Это просто - жмете на стрелочку фильтра - Фильтр по подписи - Не равно - (пусто) Тогда в самом фильтре галка на Пусто стоять будет, но сводная эту строку не покажет
Сделал Вам автодобавление в сводную новых строк (после того, как Вы проставите номер в столбце В (хотя это наверное не нужно, но уж сделал - см. имя "Диап" через Контрл F3)) и автодобавление при изменении каких-либо значений в уже существующей сводной Макрос лежит в модуле листа - правой мышой на ярлык листа - Исходный текст [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("Диап")) Is Nothing Then ThisWorkbook.RefreshAll End If End Sub