1

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

1 ответ1

2

Функция 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 возвращает массив строк из него.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .