본문 바로가기

업무 프로그램/MS 엑셀

엑셀 문자열을 자르거나 변경하는 함수

목차

    사실 엑셀에서 문자열을 변경하는 함수 중에 가장 많이 사용하는 함수는 TRIM입니다.

    하지만 TRIM은 지난 포스팅에서 다루어 봤기 때문에 TRIM을 제외한 문자열을 다루는 함수를 알아보겠습니다.

    TRIM을 포함한 공백 제거 함수에 대한 설명은 아래 포스팅을 참고해 주시기 바랍니다.

     

     

    엑셀에서 공백 또는 인쇄되지 않는 문자 제거하기

    인터넷에서 찾은 자료를 엑셀에 복사해 넣다 보면 안 보이던 문자나 공백 등이 입력되어 있는 경우가 있습니다. 이런 경우 Ctrl+H를 이용하여 찾기 및 바꾸기를 이용하여 공백을 제거하는 방법도

    dolpali.tistory.com

     

    문자열을 자동으로 잘라주었으면 좋겠다고 하시는 분들은 아래 "빠른 채우기"편을 참고해 주시면 좋을 것 같습니다.

     

     

    엑셀 문자 자동으로 입력하기(자동 채우기, 자동 나누기)

    엑셀에서 문자를 나누거나 합칠 일이 많습니다. 내용이 정형적이거나 예상이 된다면, 또는 함수에 익숙하다면 아래 링크와 같은 여러 가지 문자함수를 이용하여 문자열을 다룰 것입니다. 엑셀

    dolpali.tistory.com

     

     

    엑셀 문자열을 자르거나 변경하는 함수 예제
    엑셀 문자열을 자르거나 변경하는 함수 예제

     

    예시로 들 문자의 위치입니다. 

    함수를 설명한 후 위 문자열에 대한 함수의 적용 예시를 보여드리니 참고해 주시기 바랍니다.

     

     

     


    1. 문자열을 자르는 함수(LEFT, RIGHT, MID)

    문자열을 왼쪽 또는 오른쪽으로 부터 자르는 함수는 LEFT, RIGHT가 있습니다.

    하지만 일반적인 문자가 아닌 바이트로 자르기 위해서는 LEFTB, RIGHTB를 사용합니다.

    LEFTB, RIGHTB는 원문이 영어인 경우 큰 차이가 없지만 한글을 비롯한 2byte 문자는 다른 결과를 가져옵니다.

     

    RIGHT(text,[num_chars])
    text: 필수요소이며 원문 텍스트 또는 셀의 위치입니다.
    [num_chars]: 선택요소이며 추출 또는 자르고 싶은 문자 수를 지정합니다. 오른쪽부터 자르게 됩니다.
                          생략하면 1이며 0보다 큰 수를 입력할 수 있습니다.
                          text보다 크면 별다른 오류 없이 모든 문자열을 반환합니다.

     

    RIGHTB(text,[num_bytes])
    text: 필수요소이며 원문 텍스트 또는 셀의 위치입니다.
    [num_bytes]: 선택요소이며 추출 또는 자르고 싶은 바이트를 지정합니다. 오른쪽부터 자르게 됩니다.
                          생략하면 1이며 0보다 큰 수를 입력할 수 있습니다.
                          text보다 크면 별다른 오류 없이 모든 문자열을 반환합니다.

     

    RIGHT함수와 RIGHTB함수는 비슷해 보이지만 두 번째 인수가 문자의 수인지 byte 수인지에 따라 다르게 사용해야 하며 일반적으로는 RIGHT함수로 충분할 것입니다.

     

    LEFT(text, [num_chars])
    text: 필수요소이며 원문 텍스트 또는 셀의 위치입니다.
    [num_chars]: 선택요소이며 추출 또는 자르고 싶은 문자 수를 지정합니다. 왼쪽부터 자르게 됩니다.
                          생략하면 1이며 0보다 큰 수를 입력할 수 있습니다.
                          text보다 크면 별다른 오류 없이 모든 문자열을 반환합니다.

     

    LEFTB(text, [num_bytes])
    text: 필수요소이며 원문 텍스트 또는 셀의 위치입니다.
    [num_bytes]: 선택요소이며 추출 또는 자르고 싶은 바이트를 지정합니다. 왼쪽부터 자르게 됩니다.
                          생략하면 1이며 0보다 큰 수를 입력할 수 있습니다.
                          text보다 크면 별다른 오류 없이 모든 문자열을 반환합니다.

     

    LEFT와 LEFTB함수도 RIGHT와 RIGHTB함수의 관계와 같습니다. 

    LEFT는 문자열의 왼쪽부터 문자의 수를 센다는 점과 RIGHT는 오른쪽부터 자른다는 점이 다릅니다.

    이렇게 문자열의 왼쪽이나 오른쪽 끝이 아닌 중간부터 중간까지 자르고 싶다면 MID함수를 사용합니다.

     

    MID(text, start_num, num_chars)
    text: 필수요소로 원본 문자열이나 문자열이 있는 셀의 위치입니다.
    start_num: 추출 또는 자르고 싶은 첫 문자의 위치입니다.
                      문자열보다 큰 경우 빈 텍스트를 반환합니다.
                      1보다 작을 경우 #VALUE! 오류를 반환합니다.
    num_chars: 첫 문자 이후 반환할 문자의 개수입니다.
                        음수이면 #VALUE! 오류가 발생합니다.

     

    MIDB(text, start_num, num_bytes)
    text: 필수요소로 원본 문자열이나 문자열이 있는 셀의 위치입니다.
    start_num: 추출 또는 자르고 싶은 첫 문자의 위치입니다.
                      문자열보다 큰 경우 빈 텍스트를 반환합니다.
                      1보다 작을 경우 #VALUE! 오류를 반환합니다.
    num_bytes: 첫 문자 이후 반환할 문자의 개수입니다.
                        음수이면 #VALUE! 오류가 발생합니다.

     

     

    문자열을 자르는 함수(LEFT, RIGHT, MID)
    문자열을 자르는 함수(LEFT, RIGHT, MID)

     

    다른 함수는 거의 예상대로지만 RIFHTB의 경우 " 마"로 나오고 있습니다.

    이는 한글을 2byte인데 3byte로 문자열을 자르는 바람에 문자가 제대로 잘리지 않은 문제입니다.

    필요에 따라 -B가 붙는 함수를 사용할 수 있지만 이렇듯 byte의 사용에 주의해야 합니다.

     

     

     


    2. 대/소문자로 변경하는 함수(LOWER, UPPER)

    한글에서는 거의 쓸 일 없는 함수이지만 엑셀에서 영어 문자열을 많이 사용한다면 사용해 봤을 법 한 LOWER, UPPER입니다.

    함수의 사용법도 아주 간단합니다.

    LOWER(text)
    text: 필수요소입니다. 소문자로 반환할 텍스트 및 셀의 위치입니다.
            글자가 아닌 문자는 변환하지 않습니다.

     

    UPPER(text)
    text: 필수요소입니다. 대문자로 반환할 텍스트 및 셀의 위치입니다.
            글자가 아닌 문자는 변환하지 않습니다.

     

    대/소문자로 변경하는 함수(LOWER, UPPER)
    대/소문자로 변경하는 함수(LOWER, UPPER)

     

    영문은 잘 변경해 주지만 한글에서는 아무런 변화가 없는 것을 볼 수 있습니다.

    하지만 영어 문장이나 단어를 쓸 때 단어의 첫 글자만 대문자로 변경하고 싶은 경우가 있습니다.

    그런 경우 PROPER함수를 사용합니다.

     


    3. 첫 글자를 대문자로 바꾸는 함수(PROPER)

    PROPER(text)
    text: 필수요소입니다. 첫 글자를 대문자로 반환할 텍스트 및 셀의 위치입니다.

     

    첫 글자를 대문자로 바꾸는 함수(PROPER)
    첫 글자를 대문자로 바꾸는 함수(PROPER)

     

    보시다시피 첫 문자를 대문자로 나머지를 소문자로 변경하며 한글에는 아무 영향이 없습니다.

     


    4. 문자열에서 문자를 치환하는 함수(SUBSTITUTE)

     

    문자열에서 특정 문자를 다른 문자로 치환하는 함수입니다.

     

    SUBSTITUTE(text, old_text, new_text, [instance_num])
    text: 문자를 변경할 문자열입니다. 필수입니다.
    old_text: 찾을 문자입니다. 필수입니다.
    new_text: 변경할 문자입니다. 필수입니다.
    [instance_num]: 찾은 문자 중 몇 번째 문자를 바꿀지 입력하는 인수입니다.
                              입력하지 않으면 모두 바뀝니다.

     

    마지막이니 SUBSTITUTE를 포함하여 지금까지 나왔던 함수를 합쳐봤습니다.

     

    문자열에서 문자를 치환하는 함수(SUBSTITUTE)
    문자열에서 문자를 치환하는 함수(SUBSTITUTE)