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

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

데이터의 기본 구조

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

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

다음과 같이 결과 형식을 지정하려고합니다.

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



답변

이 답변의 수식은 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) 적절한 문자 수를 합산합니다.