본문 바로가기
POWER BI

[Power BI/파워비아이] DAX를 활용해 복잡한 문자열 만들어 보기

by 하니in독일 2024. 10. 9.
반응형

 

 

안녕하세요? 오늘은 앞서 배워보았던 문자열에 대해 좀 더 깊게 배워보는 시간을  가지도록 하겠습니다.
앞서 우리는 두 가지 방법을 통해 계산된 문자열을 만들 수 있다는 것을 배웠습니다.

하지만, 문자열이 좀 더 복잡해진다면 어떨까요? 문자 열 중에 빠진 내용이 있다면?
이럴 때 우리는 IF를 이용해 좀 더 깔끔한 계산열을 만들 수 있습니다.



아래의 예시를 통해 좀 더 자세히 알아보도록해요.
예시처럼 고객의 First Name, Middle Name, 그리고 Last Name이 있는 표에 Full name이라는 새로운 계산 열을 만든다고 생각해 봅시다.

First Name Middle Name Last Name
Emily Marie Smith
John   Doe
Sarah Louise Johnson
Michael   Brown
Anna Grace Williams

 

이렇게 만들어 보는 것 어떨까요?

Full name = Name[First Name] & " " & Name[Middle Name] & " " & Name[Last Name]

 

Middle Name을 가지고 있는 고객은 문제없이 계산 열을 만들 수 있지만, Middle Name이 없는 고객은 first name과 last name사이에 두 번의 스페이스 바를 가지게 되는 거죠. (예: John  Doe)

 

 

뭔가 완벽하지 않은 결괏값이죠?
이럴 때 우리는 두 가지 방법을 이용해 완벽한 수식을 완성할 수 있습니다.



방법 1. IF를 이용해 봅시다


DAX를 만들 때 저의 팁은 원하는 내용을 풀어서 설명한 후에, 수식을 만드는 것입니다.
우리가 만들고자 하는 내용은 

만약, 고객의 이름에 Middle Name 이 있다면 포함시키고, 없다면 제외한다.

입니다.
이것을 수식으로 표현하면,

Fullname =If(len(Name[Middle Name])>1, Name[First Name] &" "&Name[Middle Name] & " " &Name[Last Name], 
Name[First Name] & " " &Name[Last Name])

 

middle name의 여부를 파악하기 위해 LEN() 기능을 사용하였습니다. - 각 행에 포함된 Value의 길이를 측정하는 것입니다. 이는 각 행에 VALUE가 있는지 파악하는 데에 매우 중요한 기능입니다!

방법 2. IF와 CONCATENATE를 사용합니다.


다음과 같은 방법으로도 만들 수 있습니다.

Fullname =CONCATENATE(Name[First Name] & " ",CONCATENATE(if(len(Name[Middle Name])>1, Name[Middle Name] & " ", 
 ""), Name[Last Name]))

 

참고: https://learn.microsoft.com/en-us/dax/concatenate-function-dax

 

CONCATENATE function (DAX) - DAX

Learn more about: CONCATENATE

learn.microsoft.com


 

오늘은 지난 시간에 배운 간단한 문자열을 넘어서 복잡한 문자열을 계산하는 방법에 대해 알아보았습니다. 문자 열을 잘 계산하면, 여러 가지 필터를 적용하지 않아도 되고, 사용자가 쉽게 원하는 결과를 이해할 수 있도록 합니다.

 

이 포스트가 도움이 되었기를 바라며, 다음 시간에도 DAX에 대해 좀 더 깊게 알아보겠습니다. 감사합니다! 

반응형