Excel-가변 길이 범위의 문자열에서 문자 발생 횟수를 계산하는 방법


0

배경 : 전자 메일에서 주제가 나타나는 빈도를 분석하고 있습니다. 각 주제에는 해당 문자 (az)가 있으며 주제의 일부 측면이 나타날 때마다 각 이메일에 이러한 문자 중 몇 개가 할당되었습니다.

데이터의 기본 구조

위의 예에서 MAIL2는 주제 'c'를 2 번, 'd'를 2 번 터치했습니다.

질문 : 각 전자 메일 에 해당하는 행과 문자 수가 예측할 수없는 경우 (1 ~ 12 사이) 각 전자 메일에 대해 이러한 발생 을 개별적으로 요약하려면 어떻게합니까 ?

다음과 같이 결과 형식을 지정하려고합니다. 여기에 이미지 설명을 입력하십시오

각 행에 해당 전자 메일 레이블을 지정할 수 있습니다. 그런 다음 C2MAIL1으로 표시된 행에있는 모든 셀에서 연결된 일종의 문자열에서 찾은 하나의 문자 (예 : 'a'for)의 각 회색 셀 카운트 발생을 생각하십니까? 그러나 각 전자 메일에 대해 별도의 결과를 허용하는 모든 종류의 솔루션에 대해 감사하겠습니다.


데이터 입력이 고정되어 있으면 VBA 솔루션을 개발하는 것이 좋습니다. 데이터 입력이 유연한 경우 피벗 테이블을 사용할 수있는 데이터를 디자인합니다. 예 : 행의 각 항목에 대한 데이터, 셀당 단일 문자 또는 단일 셀의 모든 문자 (예 : 파워 피벗)
Ron Rosenfeld

답변:


0

이 답변의 수식은 cell에 입력 C2한 다음 필요에 따라 복사 / 채워야합니다.


편집 : 이 밝혀 입니다 헬퍼 세포를 사용하지 않고 문제를 해결하는 방법 :

=
SUMPRODUCT(
  ($B2=$A$2:INDEX($A:$A,MATCH("*",$B:$B,-1)))*
  (LEN($B$2:INDEX($B:$B,MATCH("*",$B:$B,-1)))-LEN(SUBSTITUTE($B$2:INDEX($B:$B,MATCH("*",$B:$B,-1)),C$1,"")))
)

설명 : $A$2:INDEX($A:$A,MATCH("*",$B:$B,-1))용어 및 해당 B컬럼 버전은 소스 범위를 동적으로 조정하는 데 사용됩니다. 수식은 예제 스프레드 시트에 적용 가능한 다음 정적 버전과 같습니다.

=
SUMPRODUCT(
  ($B2=$A$2:$A$11)*
  (LEN($B$2:$B$11)-LEN(SUBSTITUTE($B$2:$B$11,C$1,"")))
)



가장 간단한 해결책은 다음 공식입니다.

=COUNTIFS($A:$A,$B2,$B:$B,"=*"&C$1&"*")

불행히도 이것은 셀에 하나 이상의 문자가있는 특별한 경우에는 실패합니다. 예를 들어, 셀의 'f'는 B11한 번만 계산됩니다.


우리는 할 수 있습니다 여러 번의 수를 합산하여 못생긴 제한된 방법으로이 문제를 해결한다. 예를 들어, 다음은 최대 3 개의 문자가 나타날 때 작동합니다.

=COUNTIFS($A:$A,$B2,$B:$B,"=*"&C$1&"*")
+COUNTIFS($A:$A,$B2,$B:$B,"=*"&C$1&"*"&C$1&"*")
+COUNTIFS($A:$A,$B2,$B:$B,"=*"&C$1&"*"&C$1&"*"&C$1&"*")

또는 헬퍼 셀을 사용할 수도 있습니다. 범위 내의 모든 셀에 복사 / 채워진 다음 수식은 다음과 같습니다 C2:H11.

=
IF(
  ""<>$A2,
  LEN($B2)-LEN(SUBSTITUTE($B2,C$1,"")),
  SUMIF($A:$A,$B2,C:C)
)

간단한 설명 :

""<>$A2 셀이 헬퍼 셀인지 (true) 회색 결과 셀인지 (false)를 선택합니다.

LEN($B2)-LEN(SUBSTITUTE($B2,C$1,"")) 해당 셀에서 해당 문자의 발생 횟수를 계산합니다.

SUMIF($A:$A,$B2,C:C) 적절한 문자 수를 합산합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.