Excel DAX-수식
DAX는 Power PivotTable에서 사용자 지정 계산을 만들기위한 수식 언어입니다. 관계형 데이터로 작업하고 DAX 수식에서 동적 집계를 수행하도록 설계된 DAX 함수를 사용할 수 있습니다.
DAX formulasExcel 공식과 매우 유사합니다. DAX 수식을 만들려면 등호 뒤에 함수 이름 또는 식과 필요한 값 또는 인수를 입력합니다.
DAX 함수와 DAX 수식
DAX 수식은 DAX 함수를 포함하고 그 사용법을 활용할 수 있습니다. 여기서 DAX 수식이 중요한 측면에서 DAX 함수와 다른 경향이 있습니다.
DAX 함수는 항상 전체 열 또는 테이블을 참조합니다. 테이블이나 열의 특정 값만 사용하려는 경우 수식에 필터를 추가 할 수 있습니다.
행 단위로 계산을 사용자 지정하려는 경우 Power Pivot은 현재 행 값 또는 관련 값을 사용하여 컨텍스트에 따라 다른 계산을 수행 할 수있는 함수를 제공합니다.
DAX에는 단일 값이 아닌 테이블을 결과로 반환하는 함수 유형이 포함되어 있습니다. 이러한 함수를 사용하여 다른 함수에 입력을 제공하여 전체 테이블 또는 열에 대한 값을 계산할 수 있습니다.
일부 DAX 함수는 의미있는 날짜 범위를 사용하여 계산을 만들고 병렬 기간에 걸쳐 결과를 비교할 수있는 시간 인텔리전스를 제공합니다.
DAX 수식 구문 이해
모든 DAX 수식에는 다음과 같은 구문이 있습니다.
각 수식은 등호로 시작해야합니다.
등호 오른쪽에서 함수 이름을 입력하거나 선택하거나 표현식을 입력 할 수 있습니다. 식에는 DAX 연산자로 연결된 테이블 이름과 열 이름이 포함될 수 있습니다.
다음은 몇 가지 유효한 DAX 공식입니다-
- [column_Cost] + [column_Tax]
- = 오늘 ()
IntelliSense 기능 이해
DAX는 DAX 수식을 빠르고 정확하게 작성할 수있는 IntelliSense 기능을 제공합니다. 이 기능을 사용하면 테이블, 열 및 함수 이름을 완전히 입력 할 필요가 없지만 DAX 수식을 작성하는 동안 드롭 다운 목록에서 관련 이름을 선택합니다.
함수 이름의 처음 몇 글자를 입력하기 시작합니다. 자동 완성은 해당 문자로 시작하는 이름으로 사용 가능한 함수 목록을 표시합니다.
함수 이름 중 하나에 포인터를 놓습니다. IntelliSense 도구 설명이 표시되어 함수를 사용할 수 있습니다.
함수 이름을 클릭하십시오. 함수 이름이 수식 입력 줄에 나타나고 인수를 선택할 때 안내하는 구문이 표시됩니다.
원하는 테이블 이름의 첫 글자를 입력하십시오. 자동 완성은 해당 문자로 시작하는 이름의 사용 가능한 테이블 및 열 목록을 표시합니다.
Tab 키를 누르거나 이름을 클릭하여 자동 완성 목록의 항목을 수식에 추가합니다.
클릭 Fx버튼을 눌러 사용 가능한 기능 목록을 표시합니다. 드롭 다운 목록에서 함수를 선택하려면 화살표 키를 사용하여 항목을 강조 표시하고 확인을 클릭하여 함수를 수식에 추가합니다.
가능한 테이블 및 열의 드롭 다운 목록에서 인수를 선택하거나 필수 값을 입력하여 함수에 인수를 제공합니다.
이 편리한 IntelliSense 기능을 사용하는 것이 좋습니다.
DAX 수식은 어디에 사용합니까?
계산 된 열과 계산 된 필드를 만들 때 DAX 수식을 사용할 수 있습니다.
열을 추가 한 다음 수식 입력 줄에 식을 입력하여 계산 된 열에서 DAX 수식을 사용할 수 있습니다. PowerPivot 창에서 이러한 수식을 만듭니다.
계산 된 필드에서 DAX 수식을 사용할 수 있습니다. 이 공식을 만듭니다-
계산 된 필드 대화 상자의 Excel 창에서 또는
테이블 계산 영역의 Power Pivot 창에서
수식이 계산 된 열에 사용되는지 계산 된 필드에 사용되는지에 따라 동일한 수식이 다르게 작동 할 수 있습니다.
계산 된 열에서 수식은 항상 테이블 전체에있는 열의 모든 행에 적용됩니다. 행 컨텍스트에 따라 값이 변경 될 수 있습니다.
그러나 계산 된 필드에서 결과 계산은 컨텍스트에 따라 크게 달라집니다. 즉, 피벗 테이블의 디자인과 행 및 열 머리글 선택은 계산에 사용되는 값에 영향을줍니다.
DAX 수식을 작성하려면 DAX의 컨텍스트 개념을 이해하는 것이 중요합니다. DAX 여정을 시작할 때는 다소 어려울 수 있지만 일단 이해하면 복잡하고 동적 인 데이터 분석에 필요한 효과적인 DAX 수식을 작성할 수 있습니다. 자세한 내용은 DAX 컨텍스트 장을 참조하십시오.
DAX 수식 만들기
이전 섹션에서 IntelliSense 기능에 대해 이미 배웠습니다. DAX 수식을 만드는 동안 사용하는 것을 잊지 마십시오.
DAX 수식을 만들려면 다음 단계를 사용하십시오.
등호를 입력하십시오.
등호 오른쪽에 다음을 입력하십시오-
함수 또는 테이블 이름의 첫 글자를 입력하고 드롭 다운 목록에서 전체 이름을 선택합니다.
함수 이름을 선택한 경우 괄호 '('를 입력합니다.
테이블 이름을 선택한 경우 대괄호 '['를 입력합니다. 열 이름의 첫 글자를 입력하고 드롭 다운 목록에서 전체 이름을 선택합니다.
']'로 열 이름을 닫고 ')'로 함수 이름을 닫으십시오.
식 사이에 DAX 연산자를 입력하거나 ','를 입력하여 함수 인수를 구분합니다.
DAX 수식이 완료 될 때까지 1-5 단계를 반복합니다.
예를 들어 동부 지역의 총 판매액을 찾으려고합니다. 아래와 같이 DAX 수식을 작성할 수 있습니다. East_Sales는 테이블의 이름입니다. 금액은 테이블의 열입니다.
SUM ([East_Sales[Amount])
DAX 구문 장에서 이미 논의했듯이 열 이름에 대한 모든 참조에서 열 이름과 함께 테이블 이름을 사용하는 것이 좋습니다. 이를 "정규화 된 이름"이라고합니다.
DAX 수식은 계산 된 필드 용인지 계산 된 열용인지에 따라 달라질 수 있습니다. 자세한 내용은 아래 섹션을 참조하십시오.
계산 된 열에 대한 DAX 수식 만들기
Power Pivot 창에서 계산 된 열에 대한 DAX 수식을 만들 수 있습니다.
- 계산 된 열을 추가 할 테이블의 탭을 클릭합니다.
- 리본에서 디자인 탭을 클릭합니다.
- 추가를 클릭하십시오.
- 수식 입력 줄에 계산 된 열에 대한 DAX 수식을 입력합니다.
= DIVIDE (East_Sales[Amount], East_Sales[Units])
이 DAX 공식은 East_Sales 테이블의 모든 행에 대해 다음을 수행합니다.
행의 금액 열에있는 값을 같은 행에있는 단위 열의 값으로 나눕니다.
결과를 동일한 행의 새로 추가 된 열에 배치합니다.
테이블의 모든 행을 완료 할 때까지 1 단계와 2 단계를 반복합니다.
위 공식을 사용하여 해당 단위가 판매되는 단가 열을 추가했습니다.
보시다시피 계산 된 열에는 계산 및 저장 공간도 필요합니다. 따라서 필요한 경우에만 계산 된 열을 사용하십시오. 가능하고 충분한 경우 계산 된 필드를 사용하십시오.
자세한 내용은 계산 된 열 장을 참조하십시오.
계산 된 필드에 대한 DAX 수식 만들기
Excel 창 또는 Power Pivot 창에서 계산 된 필드에 대한 DAX 수식을 만들 수 있습니다. 계산 된 필드의 경우 이름을 미리 제공해야합니다.
Excel 창에서 계산 된 필드에 대한 DAX 수식을 만들려면 계산 된 필드 대화 상자를 사용합니다.
Power Pivot 창에서 계산 된 필드에 대한 DAX 수식을 만들려면 관련 테이블의 계산 영역에서 셀을 클릭합니다. CalculatedFieldName : =을 사용하여 DAX 수식을 시작합니다.
예 : Total East Sales Amount : = SUM ([East_Sales [Amount])
Excel 창에서 계산 된 필드 대화 상자를 사용하면 저장하기 전에 수식을 확인하고 올바른 수식 사용을 보장하기위한 필수 습관으로 만들 수 있습니다.
이러한 옵션에 대한 자세한 내용은 계산 된 필드 장을 참조하십시오.
수식 입력 줄을 사용하여 DAX 수식 만들기
Power Pivot 창에는 Excel 창 수식 입력 줄과 같은 수식 입력 줄도 있습니다. 수식 표시 줄을 사용하면 자동 완성 기능을 사용하여 수식을 쉽게 만들고 편집 할 수 있으므로 구문 오류를 최소화 할 수 있습니다.
테이블 이름을 입력하려면 테이블 이름 입력을 시작하십시오. 수식 자동 완성은 해당 문자로 시작하는 유효한 테이블 이름이 포함 된 드롭 다운 목록을 제공합니다. 필요한 경우 한 글자로 시작하고 더 많은 글자를 입력하여 목록의 범위를 좁힐 수 있습니다.
열 이름을 입력하려면 선택한 테이블의 열 이름 목록에서 열 이름을 선택할 수 있습니다. 테이블 이름 오른쪽에 대괄호 '['를 입력 한 다음 선택한 테이블의 열 목록에서 열을 선택합니다.
자동 완성 사용을위한 팁
다음은 자동 완성 사용에 대한 몇 가지 팁입니다-
DAX 수식에 함수와 수식을 중첩 할 수 있습니다. 이러한 경우 중첩 함수가있는 기존 수식 중간에 수식 자동 완성을 사용할 수 있습니다. 삽입 지점 바로 앞의 텍스트는 드롭 다운 목록에 값을 표시하는 데 사용되며 삽입 지점 뒤의 모든 텍스트는 변경되지 않습니다.
상수에 대해 생성 한 정의 된 이름은 자동 완성 드롭 다운 목록에 표시되지 않지만 여전히 입력 할 수 있습니다.
함수의 닫는 괄호는 자동으로 추가되지 않습니다. 혼자서해야합니다.
각 함수의 구문이 올바른지 확인해야합니다.
삽입 기능 기능 이해
다음과 같이 레이블이 지정된 함수 삽입 단추를 찾을 수 있습니다. fx, Power Pivot 창과 Excel 창 모두에서.
Power Pivot 창의 함수 삽입 단추는 수식 입력 줄의 왼쪽에 있습니다.
Excel 창의 함수 삽입 단추는 수식 오른쪽의 계산 된 필드 대화 상자에 있습니다.
클릭하면 fx버튼을 누르면 함수 삽입 대화 상자가 나타납니다. 함수 삽입 대화 상자는 DAX 수식과 관련된 DAX 함수를 찾는 가장 쉬운 방법입니다.
함수 삽입 대화 상자는 범주별로 함수를 선택하는 데 도움이되며 각 함수에 대한 간단한 설명을 제공합니다.
DAX 수식에서 삽입 함수 사용
다음 계산 된 필드를 만들고 싶다고 가정합니다.
Medal Count: = COUNTA (]Medal])
다음 단계를 사용하여 함수 삽입 대화 상자를 사용할 수 있습니다-
- 결과 테이블의 계산 영역을 클릭합니다.
- 수식 입력 줄에 다음을 입력하십시오-
Medal Count: =
- 함수 삽입 버튼 (fx).
함수 삽입 대화 상자가 나타납니다.
다음 스크린 샷과 같이 범주 선택 상자에서 통계를 선택합니다.
다음 스크린 샷과 같이 기능 선택 상자에서 COUNTA를 선택합니다.
보시다시피 선택한 DAX 함수 구문과 함수 설명이 표시됩니다. 이를 통해 삽입하려는 함수인지 확인할 수 있습니다.
확인을 클릭하십시오. Medal Count : = COUNTA (수식 입력 줄에 나타나고 함수 구문을 표시하는 도구 설명도 나타납니다.
[. 즉, 열 이름을 입력하려고합니다. 현재 테이블의 모든 열 및 계산 된 필드의 이름이 드롭 다운 목록에 표시됩니다. IntelliSense를 사용하여 수식을 완료 할 수 있습니다.
M을 입력합니다. 드롭 다운 목록에 표시되는 이름은 'M'으로 시작하는 이름으로 제한됩니다.
메달을 클릭합니다.
메달을 두 번 클릭합니다. 메달 개수 : = COUNTA ([메달]이 수식 입력 줄에 표시됩니다. 괄호를 닫습니다.
엔터 키를 치시오. 완료되었습니다. 동일한 절차를 사용하여 계산 된 열을 만들 수도 있습니다. 동일한 단계에 따라 함수 삽입 기능을 사용하여 Excel 창의 계산 된 필드 대화 상자에 함수를 삽입 할 수도 있습니다.
함수 삽입 (fx) 버튼을 누릅니다.
함수 삽입 대화 상자가 나타납니다. 나머지 단계는 위와 동일합니다.
DAX 수식에서 여러 함수 사용
DAX 수식에는 최대 64 개의 중첩 함수가 포함될 수 있습니다. 그러나 DAX 수식에 너무 많은 중첩 함수가 포함되어있을 가능성은 거의 없습니다.
DAX 수식에 중첩 함수가 많으면 다음과 같은 단점이 있습니다.
- 공식은 만들기가 매우 어려울 것입니다.
- 수식에 오류가 있으면 디버그하기가 매우 어렵습니다.
- 공식 평가는 그리 빠르지 않습니다.
이러한 경우 수식을 더 작은 관리 가능한 수식으로 분할하고 점진적으로 큰 수식을 작성할 수 있습니다.
표준 집계를 사용하여 DAX 수식 만들기
데이터 분석을 수행 할 때 집계 된 데이터에 대해 계산을 수행합니다. DAX 수식에서 사용할 수있는 SUM, COUNT, MIN, MAX, DISTINCTCOUNT 등과 같은 여러 DAX 집계 함수가 있습니다.
Power Pivot 창의 AutoSum 기능을 사용하여 표준 집계를 사용하여 수식을 자동으로 만들 수 있습니다.
- Power Pivot 창에서 결과 탭을 클릭합니다. 결과 테이블이 표시됩니다.
- 메달 열을 클릭합니다. 전체 열 – 메달이 선택됩니다.
- 리본에서 홈 탭을 클릭합니다.
- 계산 그룹에서 AutoSum 옆에있는 아래쪽 화살표를 클릭합니다.
- 드롭 다운 목록에서 COUNT를 클릭합니다.
보시다시피 계산 된 메달 개수 필드가 메달 열 아래의 계산 영역에 나타납니다. DAX 공식은 공식 막대에도 나타납니다.
Count of Medal: = COUNTA([Medal])
AutoSum 기능이 자동으로 수행되었습니다. 데이터 집계를위한 계산 된 필드를 만들었습니다. 또한 AutoSum은 DAX 함수 COUNT의 적절한 변형, 즉 COUNTA를 사용합니다 (DAX에는 COUNT, COUNTA, COUNTAX 함수가 있음).
주의 사항 – AutoSum 기능을 사용하려면 리본의 AutoSum 옆에있는 아래쪽 화살표를 클릭해야합니다. 대신 AutoSum 자체를 클릭하면-
Sum of Medal: = SUM([Medal])
그리고 Medal은 숫자 데이터 열이 아니며 열의 텍스트를 숫자로 변환 할 수 없기 때문에 오류가 표시됩니다.
장을 참조 할 수 있습니다- DAX Error Reference DAX 오류에 대한 자세한 내용은
DAX 수식 및 관계형 모델
아시다시피 Power Pivot의 데이터 모델에서는 여러 데이터 테이블로 작업하고 관계를 정의하여 테이블을 연결할 수 있습니다. 이렇게하면 계산을 위해 관련 테이블 간의 열 상관 관계를 사용하는 흥미로운 DAX 수식을 만들 수 있습니다.
두 테이블 간의 관계를 생성 할 때 키로 사용되는 두 열에 적어도 대부분의 행에 대해 일치하는 값이 있는지 확인해야합니다. Power Pivot 데이터 모델에서는 Power Pivot이 참조 무결성을 적용하지 않기 때문에 키 열에 일치하지 않는 값이 있어도 관계를 만들 수 있습니다 (자세한 내용은 다음 섹션 참조). 그러나 키 열에 비어 있거나 일치하지 않는 값이 있으면 DAX 수식의 결과와 피벗 테이블의 모양에 영향을 미칠 수 있습니다.
참조 무결성
참조 무결성을 설정하려면 데이터를 입력하거나 삭제할 때 테이블간에 정의 된 관계를 유지하기위한 규칙 집합을 작성해야합니다. 이를 독점적으로 보장하지 않으면 Power Pivot에서 적용하지 않으므로 데이터 변경이 이루어지기 전에 생성 된 DAX 수식으로 올바른 결과를 얻지 못할 수 있습니다.
참조 무결성을 적용하면 다음과 같은 함정을 방지 할 수 있습니다.
기본 테이블에 연관된 행이없는 경우 (즉, 키 열에 일치하는 값이있는 경우) 관련 테이블에 행 추가.
관련 테이블에서 고아 행이되는 기본 테이블의 데이터 변경 (즉, 기본 테이블 키 열에 일치하는 값이없는 키 열에 데이터 값이있는 행).
관련 테이블의 행에 일치하는 데이터 값이있는 경우 기본 테이블에서 행을 삭제합니다.