Using two conditions with a SUMIF function in Excel 2003
For a given row on Sheet1, I use the SUMIF
функция, чтобы увидеть, находится ли значение из первой ячейки этой строки в списке исторических значений в Sheet2.
Это в основном суммирует все значения на моем историческом листе и группирует их по имени ячейки А1 на Листе 2.
Мне нужно второе условие, чтобы я также мог группировать строки по месяцам, и SUMIF
не похоже на второе условие или AND
объединить второй пункт.
4 ответа
Предположения:
Даты в столбце B
Ряды 5:29
исторический список в диапазоне имя "Исторический"
Месяц для тестирования находится в диапазоне имя "rngMonth"
=SUMPRODUCT((NOT(ISNA(MATCH(A5:A29,Historical,FALSE))))*(MONTH(B5:B29)=rngMonth)*(C5:C29))
Попробуйте добавить другую функцию SUMIF, которая исключает те ячейки, которые вы не хотите суммировать, и удалите их из основного SUMIF.
например, SUMIF(все ячейки, которые соответствуют большим критериям) - SUMIF(все ячейки, которые являются частью небольших критериев).
Альтернативный вариант: на листе с историческими данными добавьте столбец, объединяющий два столбца, которые вы хотите использовать в качестве комбинированных условий. Например, предположим, что один столбец условия имеет диапазон с именем "Месяц", а другой столбец условия - с именем диапазона "PersonName":
Новый столбец содержит следующую формулу:
=Month&" "&PersonName
Назовите этот столбец (например, "Критерии"), затем используйте это имя диапазона в SUMIF. Например:
=SUMIF(Criteria,"January Biff",ValsToBeSummed)
Используйте формулы массива следующим образом:
{=sum(If(sheet2!A1:A50=sheet1!A1,if(sheet2!B1:B50=Sheet1!B1,Sheet2!C1:C50)))}
В основном вы вкладываете свои IF
заявления внутри SUM
оператор, затем нажмите Ctrl+Shift+Enter, чтобы сделать его формулой массива.
Введение в Array Forumulas (опубликованное Jon Fournier) также является хорошим источником по этому вопросу.