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
선행 문자가 있는 문자열은 모두 문자열보다 "작습니다" .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
두 문자열이 동일한 경우에만 합계를 냅니다.