오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
엑셀 고급 강의

엑셀 중국어 병음 변환 공식

오빠두엑셀 by 오빠두엑셀
  • 학습시간 6분
  • 난이도 중급
  • 작성일 2020.07.23

매크로 없이 함수만 사용하여 중국어 발음을 손 쉽게 구하는 방법!

이 강의에서는 외부 번역 프로그램이나 매크로 없이 엑셀 함수만으로 중국어 문장을 병음으로 변환하는 방법을 다룹니다. VLOOKUP과 TEXTJOIN을 비롯한 함수들을 조합한 공식의 동작 원리를 단계별로 살펴보고, 매크로로 PinYin 사용자 지정함수를 직접 만들어 더 간결하게 활용하는 방법까지 함께 정리합니다.

엑셀 중국어 병음 변환 공식
DOWNLOADS

실습자료를 준비했어요

수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇

중국어 병음 변환 공식

=TEXTJOIN(" ",TRUE,IFERROR(VLOOKUP(MID(셀,ROW(INDIRECT("A1:A"&LEN(셀))),1),참조범위,열번호,0),""))
중국어 병음 변환 공식에 사용된 인수

엑셀 중국어 병음 변환 공식 인수

인수 설명
중국어 문장 또는 중국어 문장이 입력된 셀입니다.
참조범위 중국어와 병음이 입력된 표 범위입니다. 중국어는 반드시 맨 좌측 열에 위치해야 합니다.
열번호 참조범위에서 병음이 입력된 열의 열번호입니다.

중국어 병음 변환을 함수만으로 처리할 수 있는 이유

외국어 번역은 일반적으로 구글 번역기와 같은 외부 프로그램을 활용해야 합니다. 인터넷 연결 환경과 엑셀 외의 별도 도구가 필요한 경우가 대부분입니다.

반면 중국어 병음 변환처럼 '발음'을 구하는 작업은 각 단어의 발음기호만 확보되어 있다면 외부 프로그램이나 인터넷 연결 없이 엑셀 함수만으로도 충분히 처리할 수 있습니다.

중국어는 약 1,500자만 익히면 일상에서 사용되는 문장의 약 95%를 표현할 수 있다고 알려져 있습니다.

중국어 병음 변환 1500자

이 강의의 예제파일에는 일상에서 자주 사용되는 중국어 한자 1,500자(첫 번째 시트)와 전체 중국어 한자 81,390자의 병음(두 번째 시트)을 각각의 시트로 분리하여 제공합니다. 필요에 맞춰 선택해 활용하면 됩니다.

영상 강의에서는 다루지 못했지만, 아래에 안내드린 PinYin 사용자 지정함수를 사용하면 중국어 병음 변환을 한층 간결하게 처리할 수 있습니다.

중국어 병음 변환 공식의 동작 원리

  1. LEN 함수로 셀에 입력된 중국어 문장의 글자 수를 계산합니다.
    =LEN("你吃好了吗")
    =5 //5글자이므로 5를 반환합니다.
  2. INDIRECT 함수로 "A1"셀부터 "A글자수"셀까지의 범위를 반환합니다.
    =INDIRECT("A1:A"&LEN("你吃好了吗"))
    =INDIRECT("A1:A"&5)
    =INDIRECT("A1:A5")
  3. ROW 함수로 1부터 글자 수까지의 행번호를 배열로 반환합니다.
    =ROW(INDIRECT("A1:A"&LEN("你吃好了吗")))
    =ROW(INDIRECT("A1:A5"))
    ={1,2,3,4,5} //범위의 행번호를 배열로 반환합니다.
  4. MID 함수로 중국어 문장의 각 단어를 한 글자씩 분리합니다.
    =MID("你吃好了吗",ROW(INDIRECT("A1:A"&LEN("你吃好了吗"))),1)
    =MID("你吃好了吗",{1,2,3,4,5},1)
    ={"你","吃","好","了","吗"} //중국어 문장의 문자를 한 글자씩 반환합니다.
  5. VLOOKUP 함수로 각 한자에 해당하는 병음을 조회합니다.
    =VLOOKUP(MID(셀,ROW(INDIRECT("A1:A"&LEN(셀))),1),참조범위,열번호,0)
    =VLOOKUP({"你","吃","好","了","吗"},A:B,2,0)
    ={"nǐ","chī","hǎo","le","ma"} //각 한자의 병음을 반환합니다.
  6. IFERROR 함수로 VLOOKUP에서 발생할 수 있는 #N/A 오류를 빈 문자열로 처리합니다.
    =IFERROR(VLOOKUP(MID(셀,ROW(INDIRECT("A1:A"&LEN(셀))),1),참조범위,열번호,0),"")
    =IFERROR({"nǐ","chī","hǎo","le","ma"},"")
    ={"nǐ","chī","hǎo","le","ma"}
  7. TEXTJOIN 함수로 각각의 병음을 다시 하나의 문장으로 결합합니다.
    =TEXTJOIN(" ",TRUE,IFERROR(VLOOKUP(MID(셀,ROW(INDIRECT("A1:A"&LEN(셀))),1),참조범위,열번호,0),""))
    =TEXTJOIN(" ",TRUE,{"nǐ","chī","hǎo","le","ma"})
    ="nǐ chī hǎo le ma" //병음을 한 문장으로 결합해 반환합니다.

엑셀 매크로로 나만의 함수 만들기 :: PinYin 사용자 지정함수

아래 명령문을 복사해 VBA 편집기에 붙여넣으면 PinYin 사용자 지정함수를 사용할 수 있습니다.

  1. 예제파일을 실행한 뒤, 개발도구 - Visual Basic 버튼을 클릭하거나 Alt + F11를 눌러 매크로 편집기로 이동합니다. 화면에 개발도구 탭이 보이지 않을 경우, 아래 개발도구 활성화 방법 포스트를 참고합니다.
    엑셀 개발도구 활성화
  2. 삽입 - 모듈을 클릭해 새로운 모듈을 추가합니다.엑셀 모듈 추가
  3. 아래 명령문을 복사해 모듈 안에 붙여넣습니다.
    Function PinYin(ParamArray Range() As Variant)
     
    '###############################################################
    '오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
    '▶ PinYin 함수
    '▶ 중국어 문장의 병음(발음)을 반환합니다. 중국어와 병음이 입력된 표를 참조하여 동작합니다.
    '▶ 인수 설명
    '_____________Range     : 중국어 또는 중국어가 입력된 셀, 범위입니다.
    '###############################################################
     
    Dim vRngs As Variant
    Dim vRng As Variant
    Dim sStr As String
    Dim sChar As String: Dim sPinyin As String
    Dim sResult As String
    Dim WS As Worksheet
     
    On Error GoTo EH:
     
    '시트이름을 넣어주세요.
    Set WS = ThisWorkbook.Worksheets("1500자")  '<-- 시트 이름을 변경합니다.
     
    For Each vRngs In Range
        For Each vRng In vRngs
            sStr = vRng.Value
            For i = 1 To Len(sStr)
                sChar = Mid(sStr, i, 1)
                sPinyin = Application.WorksheetFunction.VLookup(sChar, WS.Range("A:B"), 2, False)
                sResult = sResult & sPinyin & " "
            Next
        Next
    Next
     
    PinYin = sResult
     
    Exit Function
     
    EH:
                sPinyin = sChar
                Resume Next
    End Function
  4. 시트로 돌아오면 PinYin 함수를 바로 사용할 수 있습니다.엑셀 중국어 병음 변환 PinYin 함수

 

댓글 10
4.5 (10개 평가)
hm****
hm**** 2020.07.23 23:45
언제나 좋은 강의 감사드립니다.
항상 좋은 정보를 많이 얻고 있고, 강의해주신 내용중 필요한 부분이 많아 업무에 많은 도움이 되고 있습니다.
이번강의도 그렇지만, 이전 강의에서도 그림의 떡 같은 함수들이 있습니다. 대부분 만들어진 문서를 공유를 하는데 저만 활용이 되고 다른 팀에서는 사용이 되지 못해 실질적으로 사용을 못하고, 기존 함수를 중복적으로 대처해서 사용하고 있습니다. 대표적으로 XLOOKUP 같은경우 절실한 기능중 하나이며, 이번 강의에 포함된 ROW(A1:A10) 같은 함수도 간절히 찾던 함수인데 사용할수 없어 무척 아쉽습니다. 나중에 모든 사용자가 쓸쑤있는 날이 빨리 왔으면 좋겠습니다.
OFFICE365뿐 아니라, 이전 사용자들도 모두 사용할수 있는 대체함수에 대하여도 많은 강의 부탁드립니다.
매번 감사드립니다.
TPE 델포르트
TPE 델포르트 2020.07.24 11:46
좋은 강의 감사합니다.
thwlsdldml
thwlsdldml 2020.07.28 10:19
감사합니다. 덕분에 많이 배웁니다
스마일
스마일 2020.08.23 10:32
엑셀에서 안되는 게 없네요. 잘만 배워두면 활용도가 많을 것 같아요.
정말 감사합니다.
미성
미성 2020.10.20 17:36
대단하다는 말밖에 안 나오네요
언제면 다 배우게 될지 욕심만 앞서게 되네요
날자아범
날자아범 2020.12.23 09:31
중국어에 관심이 많은데 좋은 정보 입니다.
Ujinfa
Ujinfa 2021.03.14 19:56
감사합니다 잘 활용하겠습니다
JINTIE
JINTIE 2021.03.27 16:45
정말 좋은 기능인데요. 엑셀2019에서 =ROW(A1:A6)의 값이 1만 나올 때 병음변환 할수 없나요? 꼭 오피스365에서만 가능한가요? 많은 도움 바랍니다. 오빠두와 함께 배우는 JINTIE
강민준🤗
강민준🤗 2024.08.08 16:30
좋은 강의 감사합니다🙇‍♂️
강민준🤗
강민준🤗 2024.08.11 12:46
좋은 자료 감사합니다.🙇‍♂️