본문 바로가기
데이터 분석 및 업무 자동화

Power BI DAX Patterns 동적 제목 설정하는 방법 (CONCATENATEX)

by 공부머리 2022. 4. 14.
반응형

오늘은 Power BI에서 동적 제목 설정하는 DAX 식에 대해서 정리해보겠습니다. 사용되는 주요 함수는 문자열을 연결하기 위한 CONCATENATEX입니다.

 

결과

레포트 안에 지역 슬라이드와 카드가 있습니다. 슬라이드에서 아무 지역도 선택하지 않은 경우 카드에 ‘지역이 선택되지 않았습니다’가 나타납니다. 3개까지 선택 시 선택된 지역들이 카드에 표시됩니다. 4개 지역 이상을 선택하면 ‘4개 지역 선택’이 카드에 표시됩니다. 물론 선택한 개수에 따라서 결괏값이 변동됩니다.

 

결과
결과 대시보드

 

측정값 DAX식

측정값 DAX 식

측정값 DAX 식은 아래와 같습니다. 이 측정값을 카드안에 넣어주면 됩니다.

Selected (지역) = 
VAR myTable = '시도'
VAR myDelimter = ", "
VAR myThreshold = 3
VAR DelimiteredList1 = "," & CONCATENATEX('시도',myDelimter & '시도'[지역])
VAR DelimiteredList2 = SUBSTITUTE(DelimiteredList1,",, ","")
VAR ItemsSelected = COUNTROWS(MyTable)
VAR ReturnValue = SWITCH(
                        TRUE() ,
                        ISFILTERED('시도'[지역]) = false , "지역이 선택되지 않았습니다" ,
                        ItemsSelected > myThreshold , ItemsSelected & " 지역 선택" ,
                        DelimiteredList2
                        )
RETURN ReturnValue

 

 

측정값 DAX식 설명

  • myTable 변수 : 시도 테이블을 지정하였습니다. 
  • myDelimter 변수 : 3개까지 지역을 선택 시 선택된 지역들을 쉼표로 구분하기 위해서 설정한 변수입니다. 
  • myThreshold 변수 : 선택 개수 경곗값을 위해서 설정한 변수입니다.
VAR myTable = '시도'
VAR myDelimter = ", "
VAR myThreshold = 3

 

  • DelimiteredList1 변수 : CONCATENATEX 절은 “, “와 ‘시도’ 테이블에서 선택된 지역 문자열을 연결합니다. CONCATENATEX절 앞에 “,”있기 때문에 “,”는 기본적으로 뒤의 문자열과 연결됩니다.
  • DelimiteredList2 변수 : SUBSTITUTE 함수는 문자열을 변경해주는 함수입니다. 여기서는 DelimiteredList1의 측정값에서 “,, “을 “”로 변경해줍니다.
  • ItemsSelected 변수 : MyTable의 열의 개수를 반환합니다.
VAR DelimiteredList1 = "," & CONCATENATEX('시도',myDelimter & '시도'[지역])
VAR DelimiteredList2 = SUBSTITUTE(DelimiteredList1,",, ","")
VAR ItemsSelected = COUNTROWS(MyTable)

 

 

  • SWITCH절 : ISFILTERED절과 ItemsSelected 절의 조건이 만족하면 조건에 따라 수행합니다. 만약 해당하는 조건이 없다면 DelimiteredList2를 출력합니다.
  • ISFILTERED절 : ISFILTERED 함수는 지정된 테이블이나 열이 필터링되는 경우 TRUE를 반환하는 함수입니다. FALSE라는 의미는 슬라이서에서 아무것도 선택되지 않았다는 의미입니다. 아무것도 선택되지 않으면 “지역이 선택되지 않았습니다”라는 문자열을 반환합니다.
  • ItemsSelected 절 : ItemSelected는 MyTable의 열의 개수입니다. 슬라이서에서 선택된 지역의 개수를 의미합니다. 이 값 이 설정한 3보다 크면 선택한 지역의 개수와 “지역 선택” 문자열의 조합이 반환됩니다.
VAR ReturnValue = SWITCH(
                        TRUE() ,
                        ISFILTERED('시도'[지역]) = false , "지역이 선택되지 않았습니다" ,
                        ItemsSelected > myThreshold , ItemsSelected & " 지역 선택" ,
                        DelimiteredList2
                        )
RETURN ReturnValue

 

 

관련 DAX 함수

ISFILTERED

  • 설명 : 지정한 테이블 또는 열이 직접 필터링될 경우 TRUE를 반환하는 함수입니다.
  • 구문 : ISFILTERED(<테이블 이름 또는 열 이름>)  
  • 반환 : 열 이름 또는 테이블 이름의 열이 직접 필터링될 경우 TRUE를 반환합니다. 그렇지 않으면 FALSE를 반환합니다.

 

CONCATENATEX

  • 설명 : 테이블의 각 행에 대해 계산되는 식의 결과를 연결하는 함수입니다.
  • 구문 : CONCATENATEX(<테이블>, <표현식>[, <구분자> [, <정렬식> [, <순서>]]...]) 
  • 반환 : 연결된 문자열을 반환합니다.

 

SUBSTITUTE

  • 설명 : 기존 텍스트를 텍스트 문자열의 새 텍스트로 바꾸는 함수입니다.
  • 구문 : SUBSTITUTE(<텍스트>, <기존 텍스트>, <새 텍스트>)  
  • 반환 : 텍스트 문자열을 반환합니다.

 

COUNTROWS

  • 설명 : COUNTROWS 함수는 지정된 테이블 또는 식으로 정의된 테이블의 행 수를 계산하는 함수입니다.
  • 구문 : COUNTROWS([<테이블>])  
  • 반환 : 계산된 정수 값을 반환합니다.

 

SWITCH

  • 설명 : 값 목록에 대해 식을 계산하고 가능한 여러 결과 식 중 하나를 반환하는 함수입니다.
  • 구문 : SWITCH(<식>, <value>, <result>[, <value>, <result>]…[, <else>])  
  • 반환 : value와 일치하는 경우 result 식이 오거나 value와 일치하지 않는 경우 else 식에서 오는 값을 반환합니다.

 

반응형

댓글