Проблемы с char(60) при выполнении sumif()
Если я использую встроенную функцию sumif (Excel Microsoft Office для дома и учебы 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 ответ
Проблема заключается в
=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 и суммировать, только если две строки идентичны.