안녕하세요? 오늘은 앞서 배워보았던 문자열에 대해 좀 더 깊게 배워보는 시간을 가지도록 하겠습니다.
앞서 우리는 두 가지 방법을 통해 계산된 문자열을 만들 수 있다는 것을 배웠습니다.
하지만, 문자열이 좀 더 복잡해진다면 어떨까요? 문자 열 중에 빠진 내용이 있다면?
이럴 때 우리는 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에 대해 좀 더 깊게 알아보겠습니다. 감사합니다!
'POWER BI' 카테고리의 다른 글
[POWER BI/파워비아이] DAX - IF 사용하기/조건부 논리 적용하기 (0) | 2024.10.16 |
---|---|
[Power BI/파워비아이] DAX - Calculate 함수에 대해 알아보자 (0) | 2024.10.14 |
[Power BI/파워비아이] DAX 계산 열 활용법 - 문자 합치기 (0) | 2024.10.07 |
[Power BI/파워비아이] DAX 알아보기 - 계산식을 만드는 두 가지 방법 (1) | 2024.10.02 |
[Power BI/파워비아이] DAX를 이해해보자! (1) | 2024.09.30 |