2014-11-02 6 views
0

다음과 같은 문자열이 있습니다. 100 Stupid Street; 정부 타워 7; Chicago Palm, MA 92111Excel : 마지막 (또는 두 번째에서 마지막까지) 발생의 왼쪽과 오른쪽으로 문자를 되 돌리시겠습니까?

모든 문자를 마지막 세미콜론의 왼쪽으로 되돌리고 싶습니다.

따라서 마지막 세미콜론의 왼쪽에는 100 Stupid Street; 나는 또한이 문자열의 문자를 추출하고 싶습니다 1 단계였다 정부 타워 7


: 시카고 팜, MA 92111

내가 오른쪽에있는 모든 문자를 반환하고, 두 번째의 왼쪽을 원하는 마지막 공간.

그래서, 마지막 공간에 두 번째의 오른쪽 은 다음과 같습니다 것이다 마지막 공간에 두 번째의 왼쪽에있는 MA 92111

: 시카고 팜,

방법에가있는 경우 마지막 공식에서 마지막 쉼표를 제거하십시오. 그러면 더 나아질 것입니다. (,, REPT ("가"LEN (A1))), LEN (A1)) ","RIGHT (SUBSTITUTE (A1)

= TRIM :


이 수식은 저 비트를 도왔다

셀 A1에 원래 문자열이 있습니다. 이 수식은 마지막 세미콜론 오른쪽에있는 모든 항목을 성공적으로 반환합니다.

들어오는 모든 도움에 감사드립니다 !!

+0

그래서 정확히 문제가 무엇 =TRIM(SUBSTITUTE(SUBSTITUTE(A4,B3,""),",","")) 이다? – Hosch250

+0

중간 섹션의 가변성으로 인해 VBA에서 일반 표현식을 사용하여 사용자 정의 함수를 사용하면이 작업을 훨씬 쉽게 수행 할 수 있습니다. 또한 아직 입증되지 않은 유사 콘텐츠를 쉽게 설명 할 수 있습니다. –

답변

2

모든 조각을 분석하려는 경우 이전 반환 값 중 일부가 다음 작업을 지원할 수 있으므로 수식 부분을 반복 할 필요가 없습니다.

stupid street

B1은 =LEFT(SUBSTITUTE(A3, ";", "×",LEN(A3)-LEN(SUBSTITUTE(A3,";",""))), FIND("×",SUBSTITUTE(A3&"×", ";", "×",LEN(A3)-LEN(SUBSTITUTE(A3,";",""))))-1)

B2입니다 =TRIM(RIGHT(SUBSTITUTE(A2,";",REPT(" ",99)),99))

B3가 =TRIM(RIGHT(SUBSTITUTE(A3,",",REPT(" ",99)),99))

B4가

+0

감사합니다. 두 답변이 모두 작동합니다.그러나이 문자열에 같은 수식을 사용하면 결과가 좋지 않습니다. 300 Test Lane; 타워 ABC 방송; 방 6; Boston MA 02311 (쉼표가 없다는 것을 알아 두십시오.) – Yogs777

+0

@ Yogs777 - 나는 자신의 수식을 시험해 볼 수있는 충분한 예제가 제공되었다고 생각합니다. 자신의 노력에 대한 사례를 게시하여 문제가 해결되지 않으면 도와 드리겠습니다. – Jeeped

+0

몇 가지 간단한 수식으로 약간의 불일치가 해결되었습니다. 고맙습니다. – Yogs777

0

더 짧은 버전 :

B1  =LEFT(A1,(FIND(";",A1,FIND(";",A1)+1))-1)    ==> 100 Stupid Street ; Government Tower 7 
B2  =TRIM(RIGHT(A1,LEN(A1)-FIND(";",A1,FIND(";",A1)+1))) ==> Chicago Palm, MA 92111 
B3  =LEFT(B2,FIND(",",B2)-1)        ==> Chicago Palm 
B4  =TRIM(RIGHT(B2,LEN(B2)-(FIND(",",B2)+1)))    ==> MA 92111 

보다 일반적인은 :

B1 =LEFT(A1,(FIND("^",SUBSTITUTE(A1,";","^",LEN(A1)-LEN(SUBSTITUTE(A1,";","")))))-1) 

및 공연 대체 그렇지 않으면 달성 될 수있다. 숙제.

+0

이 문자열에서 같은 수식을 사용하면 잘못된 대답을 얻을 수 있습니다. 이 변형에 대한 더 일반적인 공식을 만들 수있는 방법이 있습니까? 문자열 : 300 테스트 레인; 타워 ABC 방송; 방 6; Boston MA 02311 – Yogs777