2014-07-24 3 views
0

제목, 보낸 사람, 본문 등의 열과 함께 전자 메일 메시지를 내 보낸 스프레드 시트가 있습니다. 찾을 것으로 예상되는 문자열 열이있는 워크 시트가 있습니다. 그 이메일들을 분류하고 다른 컬럼은 그것들을 분류한다.셀 내에서 찾을 수있는 범위의 반환 값

내가하려고하는 것은 전자 메일 본문에 문자열을 일치시킨 다음 분류를 반환하여 첫 번째 시트에 분류를 추가하는 것입니다.

지금 당장 유일한 방법은 매우 긴 if-else 문으로 각 분류를 반복하는 것입니다.

=IF(COUNTIF(E2,"*"&Exceptions!A$1&"*"),Exceptions!C$1,IF(COUNTIF(E2,"*"&Exceptions!A$2&"*"),Exceptions!C$2,IF(COUNTIF(E2,"*"&Exceptions!A$3&"*"),Exceptions!C$3,IF(COUNTIF(E2,"*"&Exceptions!A$4&"*"),Exceptions!C$4,IF(COUNTIF(E2,"*"&Exceptions!A$5&"*"),Exceptions!C$5))))) 

하나의 수식에 50 개 이상의 if() 문을 사용하면 그다지 재미 있지 않습니다! 필자는 가독성을 위해 더 동적 인 무언가를 선호하기 때문에 Formua를 다시 작성하지 않고 시트에서 문자열/분류를 추가/제거 할 수 있습니다.

도움을 주시면 감사하겠습니다. 나는 또한 예상 문자열과 분류

lead time      Lead Time 
conference call    Conference 
meeting wasrescheduled   Rescheduled Meeting 

목표는

Rescheduled Meeting Hey guys, meeting was rescheduled for 3PM.... 
Conference   Following up on that earlier conference call.... 
Lead Time    Can I have a lead time for.... 
같은 것을 생산하는 것입니다있는 테이블이

Hey guys, meeting was rescheduled for 3PM.... 
Following up on that earlier conference call.... 
Can I have a lead time for.... 

:

그래서 나는 이메일 메시지와 함께 열이

내가 사용하는 수식은 COUNTIF()를 사용하여 E2 메시지를 문자열 테이블과 비교합니다 (예외 : A :) 및 분류 (예외! C : C). 문자열이 메시지 내에서 발견되면 COUNTIF()는 1을 반환하고 IF() 문은 true로 평가됩니다. IF() 문이 true로 평가되면 분류가 반환됩니다. false이면 문자열/분류 테이블의 다음 데이터 행을 사용하여 다음 IF() 문을 검사합니다.

+0

수 당신은 질문에 대한 현재의 if 문을 분해하고, 아마도 몇 가지 예제를 게시하려고합니까? 당신이 찾고있는 것을 볼 수 있다고 생각합니다. 그러나 엑셀 파일을 보지 않고도 말하기는 어렵습니다. 매우 긴 수평 if 문이 있습니다. 적어도 하나의 예제와 기대되는 결과를 게시 할 수 있다면 도움이 될 것입니다. – AdamMc331

+0

몇 가지 예제를 포함하고 현재 공식을 더 잘 설명하도록 내 질문을 편집했습니다. –

+0

중첩 된 IF 문은 종종 조회 테이블로 대체 될 수 있습니다. – pnuts

답변

0

SEARCH() 함수를 사용하여 각 문자열이 전자 메일에 있는지 여부를 확인하고 결과가 null이 아닌 경우 분류를 적용 할 수 있습니다. SEARCH는 검색중인 텍스트 내에서 문자열의 위치를 ​​반환합니다. 즉 전체 솔루션을 쉽게 달성 할 수 있지만, 현재 접근하여 COUNTIF보다 쉽게 ​​확실하지 않습니다.

나는이 방법으로 함께 여러 COUNTIF 함수를 묶는하는 대신 COUNTIFS을 사용하는 것이 좋습니다 것입니다.

관련 문제