2012-10-18 3 views
17

Excel에서 문자열 데이터 열에 하위 문자열이 나타나는 횟수를 계산하려고합니다. 아래의 예를 참조하십시오.Excel에서 문자열 내의 하위 문자열 발생을 계산하는 수식

문자열 데이터의 열 (트윗)은 다음과 같습니다

A 
1 An example string with @username in it 
2 RT @AwesomeUser says @username is awesome 
"문자열"(트위터 화면 이름)를 가진 열은 다음과 같습니다

:

B 
1 username 
2 AwesomeUser 

가 나는를 사용하려면 수식을 사용하여 B1, B2 등의 하위 문자열이 A 열의 문자열에 나타나는 횟수를 계산합니다. 예를 들어 B1을 검색하는 수식은 "2"를 반환하고 B2를 검색하면 "1"을 반환합니다.

내가 이런 식으로 수행 할 수 없습니다

=COUNTIF(A:A, "username") 

COUNTIF 만 보이기 때문에 문자열이 아닌 문자열합니다. 이 수식은 항상 "0"을 반환합니다. 여기

내가 그것을 할 수있는 생각 formula입니다 :

=SUMPRODUCT((LEN(A:A)-(LEN(SUBSTITUTE(A:A,"username",""))))/LEN("username")) 

를 불행하게도, 난 그렇게 계산 문자 (고출력 PC에조차 작동하지 않습니다, 16,000 열 B의 항목 및 A의 수만을 가지고 또한 함수에 의해 반환 된 결과는 용의주도 함).

내가 사용하는 방법에 대한 생각 :

=COUNTIF(A:A, "*username*") 

하지만 COUNTIF는 별 연산자와 문자열이 필요를; 데이터의 양 때문에 셀 참조를 사용해야합니다.

내 질문 : 누구든지 내가이 공식을 어떻게 사용할 수 있는지 알고 있습니까? COUNTIF를 사용하는 경우 명령문의 조건부에서 셀 참조를 얻는 방법 (또는 함수를 사용하여 COUNTIF 문의 조건부 내에서 참조되는 셀의 문자열을 대체 할 수 있습니까?)

나는 데이터를 구문 분석 할 수 있음을 알고 있지만 Excel에서이를 수행하는 방법을 알고 싶습니다. 당신은 거의가

+2

참고 그 당신이 인용 한 SUMPRODUCT 공식은 Chris 'COUNTIF 함수와 약간 다른 것을합니다. COUNTIF는 각 셀을 기껏해야 한 번만 계산하므로 각 셀의 점수는 1이나 0이됩니다. SUMPRODUCT 수식은 개별 셀에 두 번 이상 표시되는 경우에도 'ALL'인스턴스 또는 '사용자 이름'을 계산합니다.이 수식을 사용하려면 전체 열 –

답변

34

사용

=COUNTIF(A:A, "*"&B1&"*") 

(2010 엑셀에서 테스트)

+1

+1 (= 10,001)을 사용하는 대신 범위를 제한해야합니다. :) – RocketDonkey

+0

크리스 : 그 대답처럼 보입니다. 도움을 주셔서 감사합니다! 나는 어제 밤 연결을 시도했지만 그 구문을 망쳐 놓았 음에 틀림 없다. – Andrew

+1

CHRIS,이 작동하지 않습니다. 다음을 시도해보십시오 : b1 type "1", 이제 a2 : "s1df1, a3 :"dsad ", a4 :"sd'1 ", a5 :"sdf1111 " –

1

매우 간단한 엑셀 솔루션 "X-문자열 Y-문자열로 ("ABC ") (의 발생에 대한 ABC 123 ABC 23dfABC ") :

  1. y- 문자열의 길이를 식별하십시오. x = 문자열로 대체하십시오 (예 : "ABC"=> "ABC_"와 같은 지원되는 문자의 1 문자 만 추가하십시오). 새 문자열 y1-string의 길이를 계산하십시오. . Ly1 = len (substitute (y, x, x1)).
  2. Y-string에서 X 현의 발생) 없음 = LY1 - 리

발생 수 : LEN (대체 (Y, X, X1)) - LEN (Y)

이해를 위해, 명칭 : X 문자열 "ABC" X1 문자열 "ABC_" Y 문자열 "ABC 123 ABC 23dfABC" Y1 문자열 ''ABC_ 123 ABC_ 23dfABC_ "