Я хотел бы использовать SUMIF в одном столбце, если значение в другом столбце равно "Y", и я хотел бы объединить это с функцией UPPER() для столбца, содержащего "Y". Вот что я пробовал " =SUMIF(UPPER(E2:E18), "Y", C2:C18)
но я получаю ошибку. Это работает, если я удаляю функцию UPPER(). Что я делаю неправильно?
1 ответ
Функция UPPER()
по умолчанию работает только с одним значением. Если вы предоставите ему диапазон / массив, функция будет использовать первую ячейку в диапазоне или первое значение массива. Результатом всегда является строка, хотя.
Функция SUMIF()
ожидает диапазон в качестве первого аргумента. Поскольку результатом функции UPPER()
является строка, Excel выдает ошибку.
Теперь, конечно, сравнение в функции SUMIF()
нечувствительно к регистру, поэтому эта формула
=SUMIF(E2:E18, "Y", C2:C18)
работает правильно , чтобы обнаружить , как y
и Y
Если по какой-то причине вы действительно хотите использовать UPPER(),
это правильно работающая эквивалентная формула, которую вы ожидаете =SUMIF(UPPER(E2:E18), "Y", C2:C18)
чтобы сделать:
=SUMPRODUCT((UPPER(E2:E18)="Y")*(C2:C18))
Причина, по которой UPPER()
работает в этом случае, заключается в том, что SUMPRODUCT()
ожидает, что его аргументы являются массивами, поэтому Excel возвращает массив строк из него.