У меня есть 2 массивные таблицы событий. Первая таблица - это таблица данных (tblData
), которая имеет даты, продолжительности и коды (для идентификации события). Вторая таблица - сводная таблица (tblSummary
) от общего времени, которое каждое событие заняло.SUMIF исключая скрытые строки. ПРОМЕЖУТОЧНЫЙ ИТОГ? SUMPRODUCT?
Как я могу фильтровать tblData
и обновлять tblSummary
?
Ниже представлена небольшая часть tblData
. Обратите внимание, что для кодов Уровня 2 имеется 3 столбца (L2a
, L2b
, L2c
); это означает, что если я ищу общую продолжительность кода уровня 2 «EL
», я должен проверить все 3 столбца и добавить их Duration
раз. Учитывая только изображение ниже, общая «EL
» время будет 9.9
Ниже кусок tblSummary
.
Для Total
колонки, я использовал SUMIF (tblData[L2a], [@[Lvl 2 Code]], tblData[Duration])
, чтобы получить общее время кода, но это включает в себя скрытые строки. tblSummary
не обновляется, когда я меняю фильтр на tblData
.
Я считаю, что использование SUBTOTAL
- это тупик. Это решило бы проблему с скрытыми столбцами, но поскольку невозможно установить критерии, я не могу применить ее к tblSummary
.
Я новичок в SUMPRODUCT
, но я стараюсь использовать
=SUMPRODUCT(SUBTOTAL(109,tblData[Duration]),--(tblData[L2a]="EL"))
но получил #VALUE!
. И я нажал Ctl + Shift + Enter
.
Только то, что я искал! Но я нашел небольшую проблему. Когда я добавляю Total Row к ** tblSummary **, формула 'SUBTOTAL (109, [Total])' возвращает ноль? Я хотел бы использовать 'SUBTOTAL' вместо' SUM' для фильтрации скрытых строк. – Y2Que
Это странное поведение, и я рассмотрю его чуть позже. В промежуточный период, пожалуйста, замените функцию [AGGREGATE] (https://support.office.com/en-us/article/AGGREGATE-function-43B9278E-6AA7-4F17-92B6-E19993FA26DF), как в '= AGGREGATE (9, 7, [Всего]) 'для предложенной функции [SUBTOTAL] (https://support.office.com/en-us/article/SUBTOTAL-function-e27c301c-be9a-458b-9d12-b9a2ce3c62af). Фактически, теперь, когда я думаю об этом, SUBTOTAL предназначен для игнорирования других результатов SUBTOTAL. AGGREGATE имеет возможность игнорировать результаты SUBTOTAL, но это также можно принять. – Jeeped
Чтобы убедиться, что я правильно понимаю, функция OFFSET в основном используется, потому что она неустойчива. Поэтому, если я хочу ** tblSummary ** включить все экземпляры кода для столбцов ** L2a **, ** L2b ** и ** L2c **, я бы просто добавил 3 версии формулы с единственной разницей будучи '..tblData [L2a] ..'. Например: '= SUMPRODUCT (.. ..tblData [L2a] ..) + SUMPRODUCT (.. ..tblData [L2b] ..) + SUMPRODUCT (.. ..tblData [L2c] ..)', правильно? – Y2Que