1

Если я использую встроенную функцию sumif (Excel, Microsoft Office Home & Student 2016 версия 1708), я получаю следующее поведение:

amount    description
4         '<Sydney
4         '<Melbourne
=sumif(b1:b3,"'<Sydney",a1:a3)

Сумиф возвращается 8.

Это неверно Sumif должен вернуть 4.

Пожалуйста, обратите внимание на использование 'для экранирования строки при вводе текста в ячейку.

Есть идеи, что я здесь делаю не так?

Стоит отметить, что проблема, похоже, связана с использованием угловой скобки (char (60)). Я ценю, что смог обойти эту проблему, используя функцию substitute (), но я хотел бы понять, в чем причина этой проблемы и как сказать Excel, чтобы рассматривать char (60) как строку.

Есть идеи?

Пожалуйста, обратите внимание - с sumif проблем нет, если используется только hypen (char (45)). Например:

amount    description
4         '-Sydney
4         '-Melbourne
=sumif(b1:b3,"'-Sydney",a1:a3)

Это правильно суммы до 4.

1 ответ1

1

Проблема заключается в

=sumif(b1:b3,"<Sydney",a1:a3)

(Я предполагаю, что параметром условия является "<Sydney" вместо "'<Sydney" как указано в вопросе, так как он вернет 0.)

Параметр условия будет рассматривать начальное < как сравнение "меньше чем". Следовательно, условие "<Sydney" будет интерпретироваться как меньшее, чем строка Sydney по значению ASCII (или значению Unicode?). Поэтому строки с ведущими символами от A до R и < все "меньше" строки Sydney .

Чтобы решить проблему, вы можете изменить функцию следующим образом:

=sumif(b1:b3,"=<Sydney",a1:a3)

Параметр = в условии скажет Excel, что «сумма только в ячейке равна <Sydney , поэтому возвращает правильный результат.

Для дальнейшей иллюстрации попробуйте эти примеры данных:

          [Col A]  [Col B]
[Row 1]     1          <
[Row 2]     2          A
[Row 3]     4          S
[Row 4]     8          Z

=SUMIF(B1:B4,"<S",A1:A4)    [3]
=SUMIF(B1:B4,"<=S",A1:A4)   [7]
=SUMIF(B1:B4,"=S",A1:A4)    [4]
=SUMIF(B1:B4,">S",A1:A4)    [8]

=sumif(b1:b3,"-Sydney",a1:a3) работает как положено, поскольку - ничего не значит, и поэтому Excel sumif по умолчанию сравнивает каждую ячейку в B1:B3 со всей строкой -Sydney и суммирует только если две строки идентичны.

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