Power BI에서 DAX로 시작



이 Edureka 블로그는 구문 및 예제를 사용하여 Power BI를 처음 사용하는 경우 Power BI DAX 기본 사항 또는 데이터 분석 식으로 시작하는 데 도움이됩니다.

이 블로그는 기본적으로 라는 공식 언어를 빠르고 쉽게 안내합니다. 데이터 분석 표현식 (DAX) .기능에 익숙한 경우 MS 엑셀 또는 , 여기에있는 많은 공식 Power BI DAX 기본 사항 기사가 당신과 비슷하게 나타납니다.

여기에 모든 것의 필수적인 부분을 형성하는 개념이 있습니다. , DAX의 가장 기본적인 개념을 잘 이해하고 있어야합니다.





Power BI DAX 기본 : DAX 란?

이제 Power BI DAX의 기본부터 시작하겠습니다.

Power BI Desktop을 사용하여 보고서를 만드는 것은 매우 쉽습니다.이 보고서는 즉시 귀중한 통찰력을 보여줍니다.



그러나 모든 다른 날짜 범위에 대해 모든 제품 범주에서 성장률을 분석해야하는 경우 어떻게해야합니까? 아니면 거대 시장에 비해 회사의 연간 성장을 계산해야합니까?

DAX를 배우면 실제 비즈니스 문제를 해결합니다.

DAX는 모델에 이미있는 데이터를 사용하여 값을 계산하기 위해 수식 형식에 넣을 수있는 함수, 연산자 및 상수로 구성됩니다.



Power BI DAX에는 200 개가 넘는 함수, 연산자 및 구문의 라이브러리가 포함되어 있습니다. 라이브러리는 거의 모든 데이터 분석 요구에 대한 결과를 계산하는 측정 값을 생성하는 데있어 엄청난 유연성을 제공합니다.

Power BI DAX 기본 : 어떻게 작동하나요?

먼저 이것이 어떻게 작동하는지 설명하겠습니다.대부분의 경우 다음 세 가지 기본 개념을 중심으로 Power BI DAX에 대한 이해를 구성 할 것입니다. 통사론 , 문맥 , 및 기능 .

물론 여기에는 다른 중요한 개념이 있지만이 세 가지를 이해하면 기술을 구축 할 수있는 최고의 기반이됩니다.

통사론

그만큼 통사론 공식을 구성하는 다양한 구성 요소와 작성 방법으로 구성됩니다. 엘이 간단한 DAX 공식을보십시오.

DAX 공식을 이해하려고 할 때 각 요소를 매일 생각하고 말하는 언어로 나누는 것이 종종 도움이됩니다. 따라서이 수식에는 다음 구문 요소가 포함됩니다.

구문-Power BI DAX-Edureka

나는. 총 매출 측정 이름입니다.

II. 그만큼 등호 연산자 (=) 공식의 시작을 나타냅니다.

III. 합집합 열의 모든 숫자를 더하고 매출액 [SalesAmount] .

IV. 이것들이 있습니다 괄호 () 하나 이상의 인수를 포함하는 표현식을 둘러 쌉니다. 모든 함수에는 하나 이상의 인수가 필요합니다.

V. 매상 참조 된 테이블입니다.

우리.논의 함수에 값을 전달합니다. 참조 된 열 [판매량] SUM 함수는 SUM을 집계해야하는 열을 알고있는 인수입니다.

간단히 말해, 다음과 같이 읽을 수 있습니다. ' Total Sales라는 측정 값의 경우 Sales 테이블의 [SalesAmount] 열에있는 값의 SUM을 계산 (=)합니다.”

&스페이드 한 벌Power BI DAX 편집기에는 올바른 요소를 제안하여 구문 적으로 올바른 수식을 만드는 데 도움이되는 제안 기능이 포함되어 있습니다.

문맥

문맥 3 가지 DAX 개념 중 가장 중요한 개념 중 하나입니다. 문맥에 대해 말할 때 이것은 두 가지 유형 중 하나를 나타낼 수 있습니다. 행 컨텍스트 필터 컨텍스트 .

다음과 같이 말할 때 주로 사용됨 측정 , 행 컨텍스트 현재 행으로 가장 쉽게 생각할 수 있습니다. 수식에 필터를 적용하여 테이블의 단일 행을 식별하는 함수가있을 때마다 적용됩니다.

필터 컨텍스트 Row-Context보다 이해하기가 조금 더 어렵습니다. Filter-Context를 계산에 적용되는 하나 이상의 필터로 가장 쉽게 생각할 수 있습니다. 그만큼필터 컨텍스트는 행 컨텍스트 대신 존재하지 않습니다. 오히려 전자에 추가로 적용됩니다. 다음 DAX 공식을보십시오.

이 수식에는 다음 구문 요소가 포함됩니다.

나는. 측정 이름 매장 판매 .

II. 그만큼 등호 연산자 (=) 공식의 시작을 나타냅니다.

III. 그만큼 계산하다 함수는 표현식을 인수로 평가합니다.

IV. 괄호 () 하나 이상의 인수를 포함하는 표현식을 묶습니다.

V. 측정 [총 매출] 표현식과 동일한 테이블에 있습니다.

우리.반점 (,) 필터 인수에서 첫 번째 표현식 인수를 분리합니다.

당신은오고 있습니다. 정규화 된 참조 열, 채널 [채널 이름] Row-Context입니다. 이 열의 각 행은 채널, 상점, 온라인 등을 지정합니다.

VIII. 특정 가치, 저장 필터로 사용됩니다. 이것이 필터 컨텍스트입니다.

이 공식은 Total Sales Measure는 필터로 값이 'Store'인 Channel [ChannelName] 열의 행에 대해서만 계산됩니다.

기능

기능 사전 정의, 구조화 및 정렬 된 공식입니다. 그들은 다음을 사용하여 계산을 수행합니다. 인수 그들에게 전달되었습니다. 이러한 인수는 숫자, 텍스트, 논리 값 또는 기타 함수일 수 있습니다.

Power BI DAX 기본 사항 : 계산 된 열 및 측정 값

이 블로그에서는 계산에 사용되는 Power BI DAX 수식에 초점을 맞출 것입니다. 측정계산 된 열 .

계산 된 열

Power BI Desktop에서 데이터 모델을 만들 때 새 열을 만들어 테이블을 확장 할 수 있습니다. 열의 내용은 DAX 식으로 정의되고 행별로 평가되거나 해당 테이블의 현재 행 컨텍스트에서 평가됩니다.

그러나 DAX 용 데이터 모델에서는 계산 된 모든 열이 메모리의 공간을 차지하고 테이블 처리 중에 계산됩니다.

이 동작은 더 나은 사용자 경험을 제공하는 데 도움이되지만 귀중한 RAM을 사용하므로 각 중간 계산이 RAM에 저장되고 귀중한 공간을 낭비하기 때문에 프로덕션에서 나쁜 습관입니다.

측정

DAX 모델에서 계산을 정의하는 또 다른 방법이 있습니다. 행 단위가 아닌 집계 값에 대해 작업해야하는 경우 유용합니다. 이러한 계산은 측정 값입니다. DAX의 요구 사항 중 하나는 측정 값을 테이블에 정의해야한다는 것입니다. 그러나 측정 값은 실제로 테이블에 속하지 않습니다. 따라서 기능을 잃지 않고 측정 값을 한 테이블에서 다른 테이블로 이동할 수 있습니다.

계산 된 열과 측정 값

측정 값과 계산 된 열은 모두 DAX 식을 사용합니다. 차이점은 평가의 맥락입니다. 측정 값은 보고서 또는 DAX 쿼리에서 평가 된 셀의 컨텍스트에서 평가되는 반면 계산 된 열은 해당 열이 속한 테이블 내의 행 수준에서 계산됩니다.

비슷해 보이지만 계산 된 열과 측정 값 사이에는 큰 차이가 있습니다. 계산 된 열의 값은 데이터를 새로 고치는 동안 계산되며 보고서에서 사용자 상호 작용에 의존하지 않는 컨텍스트로 현재 행을 사용합니다.

따라서 다음을 수행 할 때마다 계산 된 열을 정의해야합니다.

  • 계산 된 결과를 슬라이서에 배치하거나 피벗 테이블 (값 영역과 반대) 또는 차트 축의 행 또는 열에서 결과를 보거나 결과를 DAX 쿼리에서 필터 조건으로 사용합니다.
  • 현재 행에 엄격하게 바인딩 된 표현식을 정의하십시오. 예를 들어 가격 * 수량은 평균 또는 두 열의 합계에서 작동 할 수 없습니다.
  • 텍스트 또는 숫자를 분류합니다. 예를 들어 측정 값의 범위입니다.

측정 값은 피벗 테이블의 슬라이서, 행 및 열 선택 또는 차트에 적용된 축 및 필터와 같이 보고서에 적용된 필터에 따라 달라지는 현재 컨텍스트에 의해 정의 된 데이터 집계에서 작동합니다.

따라서 다음과 같은 사용자 선택을 반영하는 결과 계산 값을 표시하려면 항상 측정 값을 정의해야합니다.

  • 특정 데이터 선택에 대한 수익률을 계산할 때.
  • 모든 제품과 비교하여 제품의 비율을 계산하지만 연도 및 지역별로 필터를 유지하는 경우.

Power BI DAX 기본 사항 : DAX의 함수 유형

1. 집계 함수

이 DAX 기능 r열 또는 두 스칼라 식 사이의 최소 숫자 값을 반환합니다.

통사론

()

=([ResellerMargin])

미나

이 DAX 기능 r텍스트로 표시된 논리 값과 숫자를 포함하여 열의 최소값을 eturns합니다.

통사론

미나()

=미나(([우편 번호])

말괄량이

이 DAX 함수는테이블의 각 행에 대한 표현식을 평가하여 얻은 최소 숫자 값입니다.

통사론

말괄량이(

,)

=말괄량이(필터(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Freight] + InternetSales [TaxAmt])

MAX

이 DAX 기능 r텍스트로 표시된 논리 값과 숫자를 포함하여 열의 최대 값을 eturns합니다.

통사론

MAX()

=MAX([ResellerMargin])

MAX

이 DAX 기능 r텍스트로 표시된 논리 값과 숫자를 포함하여 열의 최대 값을 eturns합니다.

통사론

MAX()

=MAX(([우편 번호])

MAXX

이 DAX 함수는테이블의 각 행에 대한 표현식을 평가하여 얻은 최대 숫자 값입니다.

통사론

MAXX(

,)

=MAXX(필터(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Freight] + InternetSales [TaxAmt])

합집합

이 DAX 기능은dds는 열의 모든 숫자입니다.

통사론

합집합()

=합집합(영업 부서])

평균

이 DAX 기능 r열에있는 값의 산술 평균을 반환합니다.

통사론

평균()

=평균(InternetSales [ExtendedSalesAmount])

합산

이 DAX 기능 r표의 각 행에 대해 평가 된 식의 합계를 반환합니다.

통사론

합산(

,)

=합산(필터(InternetSales, InternetSales [SalesTerritoryID] =5),[화물])

AVERAGEX

이 DAX 기능 c테이블에 대해 평가 된 일련의 표현식의 산술 평균을 계산합니다.

통사론

AVERAGEX(

,)

=AVERAGEX(InternetSales, InternetSales [Freight] + InternetSales [TaxAmt])

2. 계수 기능

DISTINCTCOUNT

열에있는 고유 한 항목 수를 반환하는 데 사용되는 DAX 함수입니다. 따라서 동일한 항목이 여러 개있는 경우이 함수는 해당 항목을 단일 항목으로 계산합니다.

통사론

DISTINCTCOUNT()

이클립스 설정 방법

=DISTINCTCOUNT(ResellerSales_USD [SalesOrderNumber])

카운트

열의 항목 수를 반환하는 데 사용되는 DAX 함수입니다. 따라서 동일한 항목이 여러 개있는 경우이 함수는 단일 항목이 아닌 개별 항목으로 계산합니다.

통사론

카운트()

=카운트([선박 날짜])

COUNTA

비어 있지 않은 열의 항목 수를 반환하는 데 사용되는 DAX 함수입니다.

통사론

COUNTA()

=COUNTA( '리셀러'[전화])

카운트

이것은 DAX 함수입니다.지정된 테이블 또는 표현식으로 정의 된 테이블의 행 수를 계산합니다.

통사론

카운트(

)

=카운트('명령')

카운트 블랭크

이것은 DAX 함수입니다.열의 빈 셀 수를 계산합니다.

통사론

카운트 블랭크()

=카운트 블랭크(리셀러 [BankName])

3. 날짜-시간 함수

데이트

이 DAX 기능 r지정된 날짜를 날짜-시간 형식으로 표시합니다.

통사론

데이트(<>,<>,<>)

=데이트(2019 년,12, 17)

이 DAX 기능 r지정된 시간을 0에서 23 (12:00 A.M.에서 11:00 P.M.) 사이의 숫자로 표시합니다.

통사론

()

=( '주문'[거래 시간])

오늘

이 DAX 기능 r현재 날짜를 표시합니다.

통사론

오늘()

지금

이 DAX 기능 r현재 날짜와 시간을 날짜-시간 형식으로 표시합니다.

통사론

지금()

EOMONTH

이 DAX 기능 r지정된 월 수 전후로 해당 월의 마지막 날의 날짜-시간 형식으로 날짜를 표시합니다.

통사론

EOMONTH(,)

=EOMONTH('2008 년 3 월 3 일',1.5)

4. 수학 함수

부분

이 DAX 기능 r주어진 숫자의 절대 값을 반환합니다.

통사론

부분()

=ABS ([딜러 가격]-[정가])

경험치

이 DAX 기능 re의 값을 주어진 숫자만큼 거듭 제곱 한 값을 eturns.

통사론

경험치()

= EXP ([힘])

이 DAX 기능 r숫자의 계승을 반환합니다.

통사론

()

= FACT ([값])

LN

이 DAX 기능 r주어진 숫자의 자연 로그를 내 보냅니다.

통사론

LN()

= LN ([값])

로그

이 DAX 기능 r주어진 숫자를 밑으로하는 로그를 출력합니다.

통사론

로그(,)

다음은 모두 동일한 결과 2를 반환합니다.

= LOG (100,10)

= LOG (100)

= LOG10 (100)

PI

이 DAX 기능 rPi의 값을 반환합니다.

통사론

PI()

이 DAX 기능 r첫 번째 인수의 값을 두 번째 인수의 거듭 제곱으로 내 보냅니다.

통사론

(,<>)

= POWER (5,2)

이 DAX 함수는 나눗셈 r을 수행합니다.몫의 정수 부분을 eturns.

통사론

(,)

= QUOTIENT (5,2)

기호

이 DAX 함수는 주어진 숫자의 부호를 반환합니다.

통사론

기호()

= SIGN (([판매 가격]-[원가]))

SQRT

이 DAX 기능 r주어진 숫자의 제곱근을 반환합니다.

통사론

SQRT()

= SQRT (25)

5. 논리 함수

이 DAX 함수는 두 식에 대해 논리적 AND (결합)를 수행합니다. AND가 true를 반환하려면 지정된 두 조건이 모두 충족되어야합니다.

통사론

(,)

= IF (AND (10>9,-10 <-하나),'모든 사실','하나 이상의 거짓'

AND 함수에 인수로 전달 된 두 조건이 모두 참이므로 수식은 'All True'를 반환합니다.

또는

이 DAX 함수는 두 식에 대해 논리적 OR (분리)를 수행합니다. OR이 true를 반환하려면 지정된 두 조건 중 하나가 충족되어야합니다.

통사론

또는(,)

= IF (OR (10>9,-10>-하나),'진실','그릇된'

OR 함수에 인수로 전달 된 조건 중 하나가 true이므로 수식은 'True'를 반환합니다.

아니

이 DAX 함수는 주어진 식에 대해 논리적 NOT (부정)을 수행합니다.

통사론

아니()

= NOT ([CalculatedColumn1])

계산 된 열 1의 각 행에 대해 NOT 함수는 주어진 값의 논리적 반대를 반환합니다.

만약

이 DAX 함수는 인수에 지정된 조건을 충족하는 입력에 대해 일련의 입력을 테스트합니다.

통사론

만약(논리 _ 테스트>, 값 _if_false)

= IF ([통화]<200,'낮은', IF ([통화]<300,'매질','높은'))

IFERROR

이 DAX 기능 e표현식을 평가하고 표현식이 오류를 반환하면 지정된 값을 반환합니다.

통사론

IFERROR(, value_if_error)

= IFERROR (25/0,9999)

6. 정보 기능

ISBLANK

이 DAX 기능TRUE 또는 FALSE를 반환합니다.값이 비어 있는지 확인합니다.

통사론

ISBLANK(<>)

= IF (ISBLANK ( 'CalculatedMeasures'[PreviousYearTotalSales]), BLANK (), ( 'CalculatedMeasures'[Total Sales]- 'CalculatedMeasures'[PreviousYearTotalSales]) / 'CalculatedMeasures'[PreviousYearTotalSales])

ISNUMBER

이 DAX 기능TRUE 또는 FALSE를 반환합니다.값이 숫자인지 확인합니다.

통사론

ISNUMBER(<>)

= IF (ISNUMBER (0),'숫자','숫자가 아님')

ISTEXT

이 DAX 기능TRUE 또는 FALSE를 반환합니다.값이 텍스트인지 확인합니다.

통사론

ISTEXT(<>)

= IF (ISTEXT ('본문'),'텍스트','텍스트가 아님')

ISNONTEXT

이 DAX 기능TRUE 또는 FALSE를 반환합니다.값이 텍스트가 아닌지 확인합니다.

통사론

ISNONTEXT(<>)

= IF (ISNONTEXT ('본문'),'텍스트가 아님','텍스트')

ISERROR

이 DAX 기능TRUE 또는 FALSE를 반환합니다.값이 오류인지 확인합니다.

통사론

이세로(<>)

= IF (ISERROR (SUM ( 'ResellerSales_USD'[SalesAmount_USD]) / SUM ( 'InternetSales_USD'[SalesAmount_USD])), BLANK (), SUM ( 'ResellerSales_USD'[SalesAmount_USD]) / SUM ( 'InternetSales_USD'[SalesAmount_USD '[SalesAmount_USD])

7. 텍스트 기능

사슬 같이 잇다

이 DAX 함수 j두 개의 텍스트 문자열을 하나로 통합합니다.

통사론

사슬 같이 잇다(,)

= CONCATENATE ( 'Hello', 'World')

CONCATENATEX

이 DAX 기능테이블의 각 행에 대해 평가 된 표현식의 결과.

통사론

CONCATENATEX(

,, [구분자])

= CONCATENATEX (직원, [이름] &““& [성],“,”)

결정된

이 DAX 기능 r지정된 소수 자릿수로 숫자를 울리고 결과를 텍스트로 반환합니다.

통사론

결정된(,,)

= FIXED ([PctCost],,하나)

바꾸다

이 DAX 기능지정한 문자 수에 따라 텍스트 문자열의 일부를 다른 텍스트 문자열로 바꿉니다.

통사론

바꾸다(,,,)

= REPLACE ( '신제품'[제품 코드],하나,2,'OB')

검색

이 DAX 기능 r특정 텍스트 문자열이 처음 발견 된 문자 수를 반환합니다.

통사론

검색(, [, [] [,]])

= SEARCH ('엔','인쇄기')

'n'은 'printer'라는 단어의 네 번째 문자이기 때문에 수식은 4를 반환합니다.

높은

이 DAX 함수는모두 대문자로 된 텍스트 문자열.

통사론

높은()

= UPPER ([ '신제품'[제품 코드])

Power BI DAX 기초 : 첫 번째 측정 값 만들기

전제 조건 : 열어야합니다. 이 주어진 Power BI Desktop 파일 .

이것이 여러분의 첫 번째 작업이라고 가정하고 있으므로 여러분이 따라 할 수 있도록이 부분을 매우 자세하게 작성하겠습니다.

  1. 필드 목록에서 보고서보기 , 마우스 오른쪽 버튼으로 매상 테이블 다음에 새로운 측정 .

  2. 바꾸다 법안 새 측정 이름을 입력하여 이전 분기 판매,포뮬러 바 .

  3. 이 공식에서 당신은 계산하다 함수. 따라서 등호 뒤에 처음 몇 글자를 입력하십시오. CAL 을 클릭 한 다음 사용할 기능을 두 번 클릭합니다.

  4. CALCULATE 함수에는 두 개 이상의 인수가 있습니다. 첫 번째는 평가할 표현식이고 두 번째는 필터 .

  5. 개봉 후 괄호 ( 에 대한 계산하다 기능, 유형 합집합 다른 여는 괄호 뒤에 ( 인수를 전달하려면 합집합 함수.

  6. 입력 시작 소금 을 선택한 다음 매출액 [SalesAmount] , 닫는 괄호가 뒤 따릅니다. ) . 이것은 우리의 첫 번째 표현 인수입니다. 계산하다 함수.

  7. 유형 a 반점 (,) 첫 번째 필터를 지정하기위한 공백이 뒤 따르고 입력 PREVIOUSQUARTER . 이것이 우리의 필터가 될 것입니다.

  8. 당신은 PREVIOUSQUARTER 필터링 할 시간 인텔리전스 기능 합집합 이전 분기의 결과.

  9. 여는 괄호 뒤 ( PREVIOUSQUARTER 함수의 경우 다음을 입력하십시오. 캘린더 [DateKey] .

  10. 그만큼 PREVIOUSQUARTER 함수에는 연속 된 날짜 범위를 포함하는 열인 하나의 인수가 있습니다. 우리의 경우에는 DateKey 달력 테이블의 열.

  11. 두 개의 닫힌 괄호를 입력하여 PREVIOUSQUARTER 및 CALCULATE 함수로 전달되는 인수가 모두 닫혀 있는지 확인하십시오. )) .

  12. 이제 공식은 다음과 같이 보일 것입니다.
    이전 분기 매출 = CALCULATE (SUM (Sales [SalesAmount]), PREVIOUSQUARTER (Calendar [DateKey]))

  13. 수식 표시 줄에서 확인 표시를 클릭하거나 Enter 키를 눌러 수식을 확인합니다.

모델에 추가했으면 짜잔! DAX를 사용하여 측정 값을 생성했으며 그 방법은 쉽지 않았습니다.

이 공식이하는 일은 보고서에 적용된 필터에 따라 이전 분기의 총 매출을 계산합니다.

그래서 우리가 넣어야한다면 판매량 그리고 우리의 새로운 전분기 판매 차트에서 측정 한 다음 추가 QuarterOfYear 같이 슬라이서, 우리는 다음과 같은 것을 얻을 것입니다.

이제 Power BI DAX의 개념을 기본적으로 이해 했으므로 측정 값에 대한 DAX 수식을 직접 만들 수 있습니다. 실제로 배우는 것이 약간 까다로울 수 있지만DAX는 몇 년 동안 사용되어 왔으며웹에서 사용할 수있는 많은 리소스가 있습니다. 이 블로그를 읽고 약간의 실험을 마친 후 Power BI DAX를 통해 비즈니스 솔루션을 찾는 방법을 배울 수 있습니다.