Я пытаюсь вернуть сумму диапазона ячеек, если связанное значение находится в диапазоне значений, используемых в качестве условий фильтрации , Например, используя следующую таблицу данных:Excel: суммировать диапазон ячеек, если связанный ключ находится в диапазоне значений, используя формулу
Keys Values
A 500
B 300
C 600
D 20
A 150
C 600
и следующий список ключей, которые будут подведены:
Sum Keys:
A
D
Я ищет шаблонным образом, чтобы вернуть 500 + 20 + 150 = 670 .
Я знаю, что вы можете использовать несколько SUMIF, но количество ключей будет меняться в зависимости от того, что пользователь хочет фильтровать, и писать достаточно SUMIF для покрытия максимально реалистичных случаев (например, 10ish) кажется чрезмерным, и я чувствую например, должен быть более простой способ.
В моей голове, формула будет выглядеть следующим образом:
=SUMIFS(Values, Keys, OR(Sum Keys), ...(optional other conditions))
Я понимаю, что это простая проблема VBA, но я стараюсь, чтобы избежать этого, потому что таблица будет проверяться людьми с (или нет) знаний VBA. Кроме того, добавление столбца индикатора на данных, чтобы показать, если ключ находится в диапазоне Sum Keys
не является реалистичным, потому что будет несколько вкладок, обобщающие данные, каждый со своими собственными фильтрами на Key
Любая помощь приветствуется, хотя Я понимаю, что это невозможно без VBA. Пожалуйста, дайте мне знать, нужна ли дополнительная информация.
Спасибо!
EDIT: Спасибо, барри гудини за ответ! См. Комментарии его публикации для общего решения для суммирования на основе нескольких диапазонов допустимых критериев.
Любопытный вопрос - можете ли вы сделать это для нескольких полей? Например, '= SUMPRODUCT (SUMIFS (значения, ключ, сумма_кей, даты, суммы_данные))'? Это работает, если Sum_Dates - только одно значение, но если это диапазон, он возвращает только первое совпадение. –
Это сложнее ...один из Sum_Keys и Sum_Dates должен быть столбцом значений и должен быть строкой значений, тогда он работает - если они оба столбца (или обе строки), вы можете TRANSPOSE один в формуле - = SUM (SUMIFS (Values, Key , Sum_Keys, Dates, TRANSPOSE (Sum_Dates0)) - для этого требуется CTRL + SHIFT + ENTER –
... также вы достигли предела с помощью двух разных критериев - чтобы сделать неограниченный (почти) переход к синтаксису SUMPRODUCT, например '= SUMPRODUCT (ISNUMBER (MATCH (Key, Sum_Keys, 0)) * ISNUMBER (MATCH (Даты, Sum_Dates, 0)), Значения) '.... хотя это будет медленнее, чем SUMIFS, особенно со целыми столбцами –