>

데이터 세트 :

A|B
1|a     
2|b     
3|c

수식 :

=SUMPRODUCT((B1:B3={"a";"b"}))

합산은 NA를 반환합니다. 이유를 모르겠습니다. 2를 반환하고 싶습니다.

조건에 c를 추가하면 올바르게 3을 반환합니다.

내가 무엇을 놓치고 있습니까?


  • 답변 # 1

    1x3 크기의 배열을 허용되지 않는 1x2 크기의 배열과 비교하고 있습니다. (두 개의 수직 배열을 비교하는 경우 크기가 같아야합니다. "c" 를 추가하면 문제가 해결되는 이유입니다.  공식에.)

    1x3 배열을2x1배열과 비교해야합니다.

    이 표현 :

    B1:B3={"a";"b"}
    
    

    반환 :

    {TRUE;TRUE;#N/A}
    
    

    SUMPRODUCT  논리를 처리 할 수 ​​없음 ( TRUE / FALSE ) 값을 사용하여 0을 더하거나 1을 곱하거나 이중 음수 연산자를 수행하여 숫자 값 배열로 변경해야합니다.

    그러면 ... 이것 :

    --(B1:B3={"a";"b"})
    
    

    반환 :

    {1;1;#N/A}
    
    
    SUMPRODUCT 를 수행  이것에 여전히 #N/A 를 반환합니다  배열에 #N/A 가 포함되어 있기 때문에 .

    하지만 이렇게하면 : (세미콜론 대신 쉼표에 유의하십시오)

    B1:B3={"a","b"}
    
    

    이제 다음을 얻는다 :

    {TRUE,FALSE;FALSE,TRUE;FALSE,FALSE}
    
    

    2x3 배열을 반환합니다.

    이중 부정 연산자를 수행하면 다음과 같은 결과를 얻을 수 있습니다.

    {1,0;0,1;0,0}
    
    

    지금 SUMPRODUCT 를 수행  예상대로 2를 반환합니다.

    필요한 최종 공식은 다음과 같습니다.

    = SUMPRODUCT(--(B1:B3 = {"a","b"}))
    
    

  • 답변 # 2

    가로 대 수평 범위를 비교하고 있습니다. 수직 범위. 그러나 영어 버전의 경우 구분 기호가 잘못되었습니다. 또한 올바른 ,  구분 기호로 비교하면 TRUE 범위가 반환됩니다.  그리고 FALSE  값.

    비교를 이중 음수로 감싸거나 1을 곱하십시오. 예 :

    =SUMPRODUCT(--(B1:B3={"a","b"}))
    
    

    또는 :

    =SUMPRODUCT((B1:B3={"a","b"})*1)
    
    

    이것은 TRUE 를 바꿀 것입니다   1 로  그리고 FALSE   0 로 , 당신의 SUMPRODUCT 가치  실제로 합산 할 수 있습니다.

    @cerry가 왜 내가 한때 실패했던 유사한 질문에 대해 @cerry를 추가 할 수 있는지에 대한보다 포괄적 인 설명은 여기에서 찾을 수 있습니다

  • 이전 c# - XamarinForms에서 m3u8 비디오 파일을 라이브 스트리밍하는 방법
  • 다음 html - 페이지 스크롤시 페이지 내용이 왼쪽 및 가운데 정렬 됨