본문 바로가기

IT.모바일/데이터분석

파워 쿼리 특정 문자 앞뒤 텍스트만 추출 자르기 | 엑셀, Power BI

by FrankUniq 2025. 9. 11.
반응형
SMALL

Power Query(파워 쿼리)를 활용하여 반복적인 데이터 정리 작업에 소요되는 시간을 획기적으로 줄이는 방법을 찾고 계신가요? 이 글에서는 엑셀 실무자들이 가장 많이 겪는 문제 중 하나인 '특정 구분자 앞/뒤 텍스트만 추출'하는 방법을 3가지 상황별로 상세히 알려드립니다. 이 가이드를 통해 데이터 전처리 시간을 획기적으로 줄여보세요.

 

1. 가장 간단한 방법: '구분 기호로 열 분할'

가장 직관적이고 빠른 방법입니다. 코드를 전혀 몰라도 마우스 클릭만으로 해결할 수 있어 초보자에게 가장 먼저 추천하는 방식입니다. 예를 들어 '제품명-코드' 형식의 데이터에서 제품명과 코드를 분리할 수 있습니다.

파워 쿼리에서 구분 기호로 열 분할하는 기능 화면
'구분 기호로 열 분할'

하지만 이 기능에는 명확한 한계가 있습니다. 만약 데이터가 '제품A-전략B-담당자C' 처럼 동일한 구분 기호를 여러번 포함하고 있다면, 모든 구분 기호를 기준으로 열을 전부 분할해 버립니다. 우리가 원하는 것은 오직 첫 번째 구분 기호 앞의 '제품A' 뿐인데도 말이죠. 이럴 때 필요한 것이 바로 M 함수입니다.


2. 맞춤형 제어: '사용자 지정 열'과 M 함수

원본 데이터를 유지하면서, 원하는 기준에 맞춰 텍스트를 정교하게 추출하고 싶을 때 사용하는 가장 이상적인 방법입니다. 여기서는 Text.BeforeDelimiterText.AfterDelimiter라는 두 가지 함수를 사용합니다.

2-1. 구분자 앞 텍스트 추출: Text.BeforeDelimiter

이름 그대로, 지정된 구분 기호(Delimiter)가 처음 나타나는 위치를 기준으로 앞부분의 텍스트를 반환합니다.

// 사용법: Text.BeforeDelimiter([원본열], "구분기호")
Text.BeforeDelimiter([product_tactic], "-")

예를 들어, "제품A-전략B-담당자C"라는 텍스트가 있을 때, 위 수식은 첫 번째 하이픈(-) 앞의 텍스트인 "제품A"만을 정확히 반환합니다.

2-2. 구분자 뒤 텍스트 추출: Text.AfterDelimiter

반대로 구분자 뒤에 있는 텍스트만 추출하고 싶다면 Text.AfterDelimiter 함수를 사용합니다.

// 사용법: Text.AfterDelimiter([원본열], "구분기호")
Text.AfterDelimiter([product_tactic], "-")

"제품A-전략B-담당자C"라는 텍스트에 이 수식을 적용하면, 첫 번째 하이픈(-) 뒤의 모든 텍스트인 "전략B-담당자C"를 반환합니다.


3. 실무 활용도를 높이는 오류 처리 팁

만약 데이터에 구분 기호가 없는 경우, 위 함수들은 오류를 반환하거나 빈 값을 표시할 수 있습니다. 데이터의 일관성을 위해, 엑셀의 IFERROR처럼 파워 쿼리에서도 오류를 제어할 수 있습니다. try...otherwise 구문을 사용하면 됩니다.

// 구분자가 없을 경우 "해당 없음" 텍스트를 반환
try Text.BeforeDelimiter([product_tactic], "-") otherwise "해당 없음"

이 구문은 try 다음에 오는 수식 실행에 실패할 경우(이 경우, 하이픈이 없어 분리할 수 없을 때), otherwise 뒤에 지정된 값을 대신 반환하여 예외 상황에 깔끔하게 대처할 수 있습니다.

 

마무리하며

파워 쿼리에서 특정 구분자를 기준으로 텍스트를 추출하는 세 가지 방법을 알아보았습니다. 단순한 작업은 '열 분할' 기능으로 빠르게 처리하고, 더 정교한 제어가 필요할 때는 M 함수를, 그리고 예상치 못한 오류를 방지하기 위해 `try...otherwise` 구문을 활용해 보세요. 반복적인 텍스트 분리 작업을 간소화하여 작업 시간을 단축하고, 보다 일관된 데이터 전처리를 가능하게 만듭니다.

 

반응형

댓글