sumif() 수행 시 char(60) 관련 문제

sumif() 수행 시 char(60) 관련 문제

sumif 내장 함수(Excel Microsoft Office Home & Student 2016 버전 1708)를 사용하는 경우 다음과 같은 동작이 발생합니다.

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

Sumif는 8을 반환합니다.

이것은 잘못된 것입니다. sumif는 4를 반환해야 합니다.

셀에 텍스트를 입력할 때 문자열 이스케이프에 '를 사용한다는 점에 유의하세요.

내가 여기서 뭘 잘못하고 있는지 어떤 아이디어가 있습니까?

주목할 만한 점은 문제가 꺾쇠 괄호(char(60)) 사용과 관련된 것 같습니다. 대체() 함수를 사용하여 이 문제를 해결할 수 있다는 점에 감사드립니다. 하지만 이 문제의 원인이 무엇인지, Excel에서 char(60)을 문자열로 처리하도록 지시하는 방법을 알고 싶습니다.

어떤 아이디어가 있나요?

참고 - 하이픈(char(45))만 사용하는 경우 sumif에 문제가 없습니다. 예:

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

합하면 4가 됩니다.

답변1

문제는

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

(조건 매개변수는 0을 반환하므로 질문에 명시된 것과 "<Sydney"다르다고 가정합니다.)"'<Sydney"

조건 매개변수는 선행을 <"보다 작음" 비교로 처리합니다. 따라서 조건은 ASCII 값(또는 유니코드 값?)에 따라 "<Sydney"문자열보다 작은 것으로 해석됩니다 . 따라서 , 및 에 대한 Sydney선행 문자가 있는 문자열은 모두 문자열보다 "작습니다" .AR<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두 문자열이 동일한 경우에만 합계를 냅니다.

관련 정보