무한루프/개발, 업무

엑셀 스네이크표기법 -> 카멜표기법 문자열 변환 함수

시원한생맥주 2025. 3. 1. 18:54

엑셀 함수: SUBSTITUTE, PROPER, MID, LOWER를 활용한 문자열 변환 자동화

 

엑셀 스네이크 표기법 카멜 표기법
엑셀 스네이크 표기법 카멜 표기법

 

 

 

엑셀에서 데이터 가공은 필수적인 작업 중 하나입니다. 특히, 데이터의 형식을 변환해야 하는 경우 여러 함수를 조합하여 원하는 결과를 얻을 수 있습니다. 이번 글에서는 다음과 같은 엑셀 수식을 분석하고 활용법을 설명하겠습니다.

 

 

=LOWER(MID(SUBSTITUTE(PROPER(B2),"_",""),1,1))&MID(SUBSTITUTE(PROPER(B2),"_",""),2,LEN(SUBSTITUTE(PROPER(B2),"_","")))

 

이 수식은 언더바(_)가 포함된 문자열을 변환하여 첫 글자는 소문자로, 나머지는 원래의 형식대로 유지하는 기능을 수행합니다. 하나씩 분석해 보겠습니다.

 

 


 

1. 수식의 기능 분석

위의 엑셀 수식을 한 단계씩 분해하여 이해해 보겠습니다.

 

1-1. SUBSTITUTE(PROPER(B2), "_", "")

  • SUBSTITUTE(텍스트, "찾을 문자", "바꿀 문자")
    → B2 셀의 값에서 언더바(_)를 제거합니다.
  • PROPER(텍스트)
    → B2 셀의 값을 첫 글자만 대문자로 변환합니다.

B2 입력 값 PROPER(B2) 결과 SUBSTITUTE(PROPER(B2), "_", "") 결과

hello_world Hello_World HelloWorld
my_name_is My_Name_Is MyNameIs

위 예제에서 볼 수 있듯이, _가 제거되면서 단어가 하나로 연결됩니다.


1-2. MID(SUBSTITUTE(PROPER(B2), "_", ""),1,1)

  • MID(텍스트, 시작 위치, 가져올 문자 수)
    → 변환된 문자열에서 첫 번째 문자만 가져옵니다.

변환된 문자열 MID 결과 (1번째 문자)

HelloWorld H
MyNameIs M

1-3. LOWER(MID(...))

  • LOWER(텍스트)
    → 첫 번째 문자(H, M 등)를 소문자로 변환합니다.

MID 결과 LOWER 결과

H h
M m

1-4. MID(SUBSTITUTE(PROPER(B2), "", ""),2,LEN(SUBSTITUTE(PROPER(B2), "", "")))

  • MID(텍스트, 2, 전체 길이)
    → 첫 번째 문자를 제외한 나머지 문자열을 가져옵니다.

변환된 문자열 MID 결과 (2번째 문자부터 끝까지)

HelloWorld elloWorld
MyNameIs yNameIs

1-5. LOWER(MID(...)) & MID(...)

  • 소문자로 변환된 첫 글자나머지 문자를 합쳐서 새로운 형식의 문자열을 생성합니다.

 

최종 결과

원래 값 (B2) 변환된 값

hello_world helloWorld
my_name_is myNameIs

 

이제 원래의 스네이크 케이스(Snake Case) 형태(예: hello_world)에서 카멜 케이스(Camel Case) 형태(예: helloWorld)로 변환된 것을 확인할 수 있습니다.

 

 

 


 

 

2. 실전 활용 방법

2-1. 코드 변수 변환

개발을 하다 보면 스네이크 케이스(hello_world)를 카멜 케이스(helloWorld)로 바꿔야 하는 경우가 많습니다. 이 수식을 활용하면 엑셀에서 대량의 데이터를 손쉽게 변환할 수 있습니다.

 

2-2. 데이터 정리 자동화

데이터 파일에서 특정 규칙으로 작성된 텍스트를 변환해야 할 때 유용합니다. 특히 대량의 데이터에서 자동 변환이 필요할 때 시간을 절약할 수 있습니다.

 

2-3. 사용자 지정 함수로 활용

엑셀에서 VBA를 사용하여 **사용자 지정 함수(UDF)**로 만들면 더 쉽게 사용할 수 있습니다. 아래는 VBA 코드 예제입니다.

Function ConvertToCamelCase(ByVal txt As String) As String
    Dim newTxt As String
    newTxt = WorksheetFunction.Proper(Replace(txt, "_", ""))
    ConvertToCamelCase = LCase(Left(newTxt, 1)) & Mid(newTxt, 2, Len(newTxt))
End Function

 

VBA를 활용하면 엑셀 함수보다 빠르게 실행할 수 있고, 반복적인 작업을 자동화할 수 있습니다.