COUNTIF 함수에서 두 개의 다른 열을 참조하려면 어떻게해야합니까?


11

최선을 다해 설명하겠습니다. 다음과 같은 시트가 있다고 가정 해보십시오 (이 고안된 예에서 다양한 사람들에게 마케팅 이메일을 보내고 나이와 우편 번호를 알고 이메일에서 클릭률을 추적하고 싶다고 가정 해 봅시다).

        A   |    B        |    C  
  1     Age |    zip code |  click?  
  2     26  |    11111    |  true  
  3     27  |    11112    |  true  
  4     28  |    11111    |  false  
  5     27  |    22222    |  false  
  6     28  |    11112    |  false  
  7     26  |    22222    |  true  

이제 다양한 통계를 추적하고 싶습니다. 이 경우 연령 및 우편 번호별로 클릭률을 추적하고 싶습니다. 그래서 다음과 같은 테이블이 있습니다.

      E         F          G 
 1   Age  |  # sent  | # clicked
 2   26   |
 3   26   |
 4   27   |
 5   28   |

따라서 기본적으로 "# sent"열에 다음과 같이 입력 할 수 있습니다 (예 : F2).

=COUNTIF(A:A, E2)

그리고 열 A에 "26"이 두 번 발생했기 때문에 셀 F2에 2가됩니다.

그러나 이제 얼마나 많은 클릭이 발생했는지 알고 싶다면 어떻게해야합니까? 나는 다음과 같이 말하고 싶다 :

=COUNTIF(A:A == E2  AND  C:C == True, for the same row where A:A matched E2)

다음과 같은 수식으로 다른 열 D를 추가 할 수 있다는 것을 알고 있습니다.

=IF(C2, A2, "")

C 열이 true 인 경우 D 열의 연령 만 제외합니다. 그러나 잠재적으로 많은 기준을 가질 수 있으며 내가 가진 각 기준 열마다 다른 "가짜"열을 추가해야 할 것 같지 않습니다.

이것을 할 수있는 방법이 있습니까? Google 문서에 없으면 Excel에서?


참고 : Google 스프레드 시트에 대한 답변 은 아래에 있습니다 .

답변:


11

ARRAYFORMULA, SUM 및 산술 연산의 조합을 사용하십시오.

26 세까지의 모든 클릭 수를 계산하는 기능은 다음과 같습니다.

=ARRAYFORMULA(sum((A:A=26) * (C:C="true")))

이 작업에는 3 가지 부분이 있습니다.

  • ARRAYFORMULA는 지정된 범위에서 반복을 담당
  • SUM은 진정한 모든 결과를 계산 관리합니다

기본적으로 true는 1로 변환되고 false는 0으로 변환됩니다. 부울 논리는 산술 연산을 사용하여 수행됩니다.

AND 연산은 곱셈을 사용

  • (1 * 1) = 1-(참 && 참) = 참
  • (1 * 0) = 0-(참 && 거짓) = 거짓
  • (0 * 0) = 0-(거짓 && 거짓) = 거짓

OR 연산은 *의 조합 사용 SIGN의 기능 추가 :

  • 부호 (1 + 1) = 1-(True || True) = True
  • 부호 (1 + 0) = 1-(True || False) = True
  • 부호 (0 + 0) = 0-(False || False) = False

참고 : 부울 덧셈은 산술 덧셈과 다르게 작동하므로 부호 함수가 필요합니다. 기본적으로 부울 덧셈 1 + 1 = 1, 산술 덧셈 1 + 1 = 2입니다. 분명히 산술 덧셈은 카운트를 엉망으로 만들므로 부호 함수를 통해 덧셈 연산의 결과를 실행해야합니다. 부호 함수는 값이 양수이면 1을 리턴하고 값이 0이면 0을 리턴하고 값이 음수이면 -1을 리턴합니다.

20-25 세 사이의 모든 사용자에 대한 클릭 수를 계산하려고한다고 가정 해 보겠습니다.

=ARRAYFORMULA(sum(sign((A:A=20) + (A:A=21) + (A:A=22) + (A:A=23) + (A:A=24) + (A:A=25)) * (C:C="true")))

여기 서명이 필요하지 않습니까? both예를 들어 단일 셀은 20과 23 이 될 수 없으므로이 경우 더하기 값이 1보다 크지 않습니다. 부호는 조건이 상호 배타적이지 않은 경우에만 필요합니다. 또한이 버전으로 20에서 25 사이를 더 쉽게 수행 할 수 없습니까? =arrayformula(sum((A:A>=20)*(A:A<=25)*(C:C=TRUE)))
barry houdini 2012 년

OR 논리의 일반적인 사용법을 설명하려고했습니다. 테스트가 배타적이지 않은 경우 (같은 열에 포함) SIGN 기능이 필요합니다. 이 경우에는 그렇지 않습니다. 그리고 네 예는 더 나은 접근 방법이지만 OR의 사용을 보여주지는 않습니다. 나는 OP의 질문에 맞는 OR의 사용을 보여주기위한 단순한 접근법을 생각하고 있었지만 커프스에서 벗어난 예를 생각해내는 것은별로 좋지 않습니다. 더 좋은 예가 있다면 답변을 편집 / 개선하는 것이 좋습니다.
Evan Plaice

사과, 에반, 나는 오해했다 – 그것은 훌륭한 예이다.
barry houdini

= true를 피할 수 있습니다. = ARRAYFORMULA (sum ((A : A = 26) * C : C))
tic

1
@tic 나는 부울 true (Google Spreadsheets에서 TRUE)를 사용하지 않았으며 op가 그의 질문에 사용한 문자열을 'true'로 언급하고있었습니다. 시도해보십시오 .C : C의 값을 테스트하면 비어 있지 않은 문자열에서 항상 TRUE를 반환합니다. 스프레드 시트 셀에서 Google은 JavaScript에 대한 Excel 규칙을 따릅니다. 새는 추상화의 재미있는 세계에 오신 것을 환영합니다.
Evan Plaice

10

현재 새 Google 스프레드 시트는 필요한 작업을 직접 처리 할 수있는 COUNTIFS를 지원합니다.

=COUNTIFS(A:A, E2, C:C, "true")

모든 범위와 비교를 쉼표로 구분하여 나열하십시오.


4
맨 아래로 스크롤하여 보상 해 주셔서 감사합니다. 새 Google 스프레드 시트를 사용할 때의 대답입니다.
Christiaan Westerbeek 2014

3

Excel에서 Excel 2003 이상에서 SUMPRODUCT를 사용하거나 Excel 2007 이상에서 "S"와 함께 COUNTIFS를 사용합니다 ....하지만 Google 문서에서는

=arrayformula(sum((A:A=E2)*(C:C=TRUE)))


3
=COUNTA( IFERROR( FILTER('Guest List'!$G:$G ; 'Guest List'!$G:$G = "Yes" ; 'Guest List'!$L:$L = "USA" ) ) )

이것은 두 개의 열에 대한 것입니다-나는 결혼 손님 목록에 이것을 사용하고 있습니다.이 경우에는 날짜를 저장하는 데 "예"를 표시하고 위치는 "미국"을 표로하므로 나중에 우송료를 계산할 수 있습니다. 더 짧은 공식이있을 수 있지만 이것은 효과가있는 것 같습니다. 그래서 나는 엉망이 아닙니다!

행복한 계산.


1

Excel에서는 수식을 잊어 버리고 피벗 테이블을 사용합니다.

하나의 "카운터"열을 추가해야 할 수도 있습니다.이 열은 결과를 얻기 위해 합산하는 변수로 반복해서 사용될 수 있습니다.


0

테스트하려는 배열을 {}에 추가 할 수 있습니다.

아래 예에서 :

=countif({F2,H2,J2,L2,N2,P2,R2,T2,V2,W2},"TRUE")
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.