Excel 오른쪽에서 왼쪽으로 찾기

평소 공부



Excel 오른쪽에서 왼쪽으로 찾기


오늘 작은 문제를 보니 며칠 전에 만났어요. 바로 엑셀에서 오른쪽에서 왼쪽으로 찾는 거예요.예를 들어 "abc, defg,hi,jkl"문자열을 지정하면 가장 오른쪽에 있는 쉼표의 위치(즉 12), 또는 가장 오른쪽에 있는 쉼표의 오른쪽 부분(즉 "jkl")을 찾아야 한다.
Excel에서 문자열 찾기에 사용되는 FIND 함수는 왼쪽에서 오른쪽으로 (시작 위치를 지정할 수 있음) 문자열만 찾을 수 있습니다.맨 오른쪽에 있는 대기 문자열을 찾으려면 좀 애를 써야 한다.편의를 위해 아래는 대기 문자열을 구분부호라고 합니다.
만약 구분자의 개수가 이미 알고 확정된 (예를 들어 IP 주소의 소수점)이라면 여러 개의 FIND 함수 삽입을 통해 실현할 수 있다.하지만 이것은 사실 왼쪽에서 오른쪽으로 n번째를 찾는 것이다.만약 구분자의 개수가 확실하지 않다면, 이 방법은 그다지 적합하지 않다.
내 처리 방법은 이렇다. 셀 A1에 구분자를 포함하는 온전한 문자열이 저장되어 있다고 가정하면 (위에서 언급한 "abc, defg, hi, jkl") 가장 오른쪽 쉼표를 찾는 공식은 다음과 같다.
=FIND(CHAR(1),SUBSTITUTE(A1,",",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,",",""))))

이 공식의 결과는 분명히 12이다.
복잡해 보이지만 한 걸음 한 걸음 풀기는 그리 어렵지 않다. 기본적인 원리는 이렇다.
  • SUBSTITUTE(A1, ",""): 원래 문자열의 쉼표를 모두 삭제하고 (빈 문자열로 바꾸고) 임시 문자열 text1을 가져옵니다
  • LEN(A1)-LEN(text1): 원래 문자열의 길이로 text1의 길이를 빼면 원래 문자열에 총 몇 개의 쉼표가 있는지,num2를 알 수 있다
  • SUBSTITUTE(A1,",CHAR(1),num2): SUBSTITUE 함수를 이용하여 원래 문자열의 마지막 쉼표를 특수 문자인 CHAR(1)로 바꾸어 임시 문자열 text3를 얻는다
  • FIND(CHAR(1), text3): text3에서 특수 문자 CHAR(1)을 찾습니다. 그 위치는 원래 문자열의 마지막 쉼표의 위치pos입니다..

  • 정말 기묘한 방법이다.
    위치를 찾으면 왼쪽이나 오른쪽의 내용을 꺼내면 간단합니다. 공식은 (복잡한 FIND 함수 대신pos로): = LEFT(A1,pos-1), = RIGHT(A1,LEN(A1)-pos)입니다.
    보충:
    위의 공식은 단일 문자의 검색에만 적용되며, 구분자가 여러 문자라면 약간의 수정이 필요하다.셀 B1에 구분자 자체가 저장되어 있다고 가정하면 공식은 다음과 같이 수정할 수 있습니다.
    =FIND(CHAR(1),SUBSTITUTE(A1,B1,CHAR(1),(LEN(A1)-LEN(SUBSTITUTE(A1,B1,"")))/LEN(B1)))

    유일한 변화는 상술한 2단계입니다. 원 문자열의 길이가text1의 길이를 뺀 후 구분자 자체의 길이를 제외하면 구분자의 개수입니다.
    이 경우 오른쪽의 하위 문자열을 따는 공식도 = RIGHT(A1, LEN(A1)+1-LEN(B1)-pos)로 수정해야 합니다.

    좋은 웹페이지 즐겨찾기