У меня есть скрипт, который генерирует отчеты из набора данных.Набор данных относится к журналу поддержки клиентов с номерами билетов / отслеживания, с базовой информацией о билетах, такой как, когда билет был открыт, кому был назначен билет и какова была основная проблема / рабочая нагрузка.Моя цель состоит в том, чтобы создать отчет, который уже существует, но который заполняется вручную с помощью сводных таблиц (которые почти никто не знает, как использовать) и избегает использования формул.
Основной отчет состоит в том, сколько из каждой рабочей нагрузки было выполнено каждойсотрудник в месяц.Легко выполнимо с помощью сводной таблицы, за исключением того, что большинство людей не знают как.Эта формула Excel получает то, что я хочу за январь, =SUMPRODUCT((data!Column1="Employee1")*(data!Column2="Workload A")*(data!Column3>=DATEVALUE("2019-1"))*(data!Column3<DATEVALUE("2019-2")))
.Недостаток данных заключается в том, что даты представляют собой значения дат, которые отформатированы как короткие даты.Решение, которое я имею в VBA:
Cell.Value = "=SUMPRODUCT((data!" & AssigneeCol.Address & "=""" & Assignee.Value & """)*(data!" & WorkloadCol.Address & "=""" & Workload.Value & """)*(data!" & DateCol.Address & ">=DATEVALUE(""" & Worksheet.Name & """))*(data!" & DateCol.Address & "<DATEVALUE(""" & Year & Month2 & """)))"
Это оставляет гигантскую формулу в Excel, которая ссылается на лист data
, который не будет включен в отчет (хотя я предполагаю, что он может быть скрыт).Я бы предпочел использовать значения, чтобы сделать управление листом более простым.Я пытался использовать Evaluate, но он делает значение ячейки #VALUE!
CheckCell.Value = Evaluate("=SUMPRODUCT((data!" & AssigneeCol.Address & "=""" & Assignee.Value & """)*(data!" & WorkloadCol.Address & "=""" & Workload.Value & """)*(data!" & DateCol.Address & ">=DATEVALUE(""" & Worksheet.Name & """))*(data!" & DateCol.Address & "<DATEVALUE(""" & Year & Month2 & """)))")
Это из-за врожденного ограничения с Evaluate (), то есть: DATEVALUE
в SUMPRODUCT
?Насколько я могу сказать, это должно работать, но я понятия не имею.