조건이 있는 카운트 고유 값
A열에는 다른 이름의 목록이 있습니다.B열에는 0 또는 1의 값이 있습니다.
저는 A열에서 B열에 1이 있는 모든 고유 이름의 개수를 알고 싶습니다.
아래 배열 공식을 사용하여 고유 이름을 셀 수 있지만 열 B에 조건을 적용할 수 없습니다.
=SUM(1/COUNTIF(A:A,A:A))
100개 이하의 행을 사용하여 A2의 다른 이름을 계산해 보십시오.B2에서 같은 행에 1이 있는 경우 A100:B100:
=SUM(IF(FREQUENCY(IF(B2:B100=1,IF(A2:A100<>"",MATCH(A2:A100,A2:A100,0))),ROW(A2:A100)-ROW(A2)+1),1))
으로 확인된.CTRL+SHIFT+ENTER
두 가지가 동일하지 않기 때문에 제가 말하는 것은(는) 동일하지 않습니다.
이렇게요?
=SUM(--(FREQUENCY(IF(($B$1:$B$8=1), COUNTIF($A$1:$A$8, "<"&$A$1:$A$8), ""), COUNTIF($A$1:$A$8, "<"&$A$1:$A$8))>0)))
이것은 배열 공식입니다.+ +를 눌러야 합니다.
스크린샷
꼭 공식이어야 하나요?이를 위한 정말 쉬운 방법은 열 A와 B에서 피벗 테이블을 만드는 것입니다.그런 다음 열 B를 필터 필드로, 카운트 A를 값으로 설정합니다(열 A와 B에 레이블을 지정해야 함).그런 다음 피벗 시트의 A4(최소한 기본값)에 답변이 포함되어 있어야 합니다.이것은 모든 크기 목록에서 사용할 수 있으며 여러 조건이 있을 때 실제로 사용할 수 있습니다.
그것이 공식이어야 한다면, 완전히 그렇게 되어야 합니까?공식이 작동하기 전에 A로 정렬할 수 있다면 이 워크플로는 어떻습니까?저는 이것에 열광하지 않고 그것이 개선될 수 있을 것이라고 의심합니다.
A(상승 또는 하강)를 기준으로 정렬한 다음 B(하강)를 기준으로 정렬합니다.
C에서 C의 각 행은 다음과 같은 공식을 사용합니다.
=if (and(A2<>A1,B2=1),1,0)
C1은 다음과 같습니다.
=b1
C2에서 데이터의 마지막 행(예: c500)까지 끕니다.
그런 다음 C, =sum(c1:c500)을 합하여 카운트합니다.
공식을 데이터 행 아래로 끌 수 있습니다(필요한 최대 수를 알고 있는 한). 모든 빈 행에 대해 0을 반환해야 합니다.그러면 A와 B에 데이터를 추가하면 나머지는 자동으로 업데이트됩니다.데이터도 다시 사용해야 할 것입니다.
피벗 테이블 솔루션의 한 가지 좋은 점은 기존 데이터 행 내에 새 데이터를 삽입하는 한 데이터 세트와 함께 자동으로 증가할 수 있다는 것입니다.물론 정렬이 필요하지 않습니다.
이 일반적인 문제에 대한 비교적 간단한 해결책은 다음과 같습니다.
=SUM((B:B=1)/CONTIFS(A:A,A:A,B:B,B:B))
배열 수식으로 입력했습니다.
어레이의 크기를 실제 데이터가 있는 곳으로 제한해야 합니다.
피벗 테이블로 간편 ......:
2022년 9월 28일 새로운 답변
이제 FILTER 기능을 사용하여 다음을 수행할 수 있습니다.
=COUNTA(UNIQUE(FILTER(A2:A10,B2:B10=1)))
언급URL : https://stackoverflow.com/questions/15944249/count-unique-values-with-a-condition
'programing' 카테고리의 다른 글
Gitrepo에서 분기 이름 변경 (0) | 2023.05.15 |
---|---|
세션 변수 참조 후 물음표(?) - 무슨 뜻입니까? (0) | 2023.05.15 |
Postgresql이 "createdb"를 슈퍼 사용자로 사용하여 db를 생성하지 않았지만 오류를 출력하지 않습니다. (0) | 2023.05.10 |
깃클론과 체크아웃의 차이점은 무엇입니까? (0) | 2023.05.10 |
Xcode 중단점이 작동하지 않는 이유는 무엇입니까? (0) | 2023.05.10 |