다음을 통해 공유


PowerPivot의 DAX 연산자 참조

DAX(Data Analysis Expression) 언어에서는 연산자를 사용하여 값을 비교하거나, 산술 계산을 수행하거나, 문자열을 사용하는 등의 식을 만듭니다. 이 섹션에서는 각 연산자의 사용 방법에 대해 설명합니다.

연산자의 유형

계산 연산자에는 다음과 같은 네 가지 유형이 있습니다. 산술, 비교, 텍스트 연결 및 논리 연산입니다.

산술 연산자

더하기, 빼기 또는 곱하기와 같은 기본 수치 연산을 수행하고, 숫자를 결합하고, 숫자 결과를 산출하려면 다음 산술 연산자를 사용합니다.

산술 연산자

의미

+(더하기 기호)

더하기

3+3

-(빼기 기호)

빼기 또는 부호

3–1–1

*(별표)

곱하기

3*3

/(슬래시)

나누기

3/3

^(캐럿)

지수

16^4

[!참고]

더하기 기호는 이항 연산자로도 사용할 수 있고 단항 연산자로도 사용할 수 있습니다. 이항 연산자인 경우 연산자의 양쪽 모두에 숫자가 필요하고 더하기를 수행합니다. 이항 연산자의 양쪽에서 DAX 수식의 값을 사용할 경우 DAX는 값이 숫자가 아닌 경우 숫자 데이터 형식으로 캐스팅을 시도합니다. 반면에 단항 연산자는 모든 인수 유형에 적용할 수 있습니다. 더하기 기호는 인수 형식 또는 값에 영향을 주지 않고 단순히 무시되지만, 빼기 연산자는 숫자 값에 사용할 경우 부정 값을 만듭니다.

비교 연산자

다음 연산자를 사용하여 두 값을 비교할 수 있습니다. 이러한 연산자를 사용하여 두 값을 비교하면 그 결과는 TRUE 또는 FALSE 중 하나의 논리 값이 됩니다.

비교 연산자

의미

=

같음

[Region] = "USA"

>

보다 큼

[Sales Date] > "Jan 2009"

<

보다 작음

[Sales Date] < "Jan 1 2009"

>=

크거나 같음

[Amount] >= 20000

<=

작거나 같음

[Amount] <= 100

<>

같지 않음

[Region] <> "USA"

텍스트 연결 연산자

앰퍼샌드(&)를 사용하여 두 개 이상의 텍스트 문자열을 결합 또는 연결하여 단일 텍스트로 만들 수 있습니다.

텍스트 연산자

의미

&(앰퍼샌드)

두 값을 연결하거나 덧붙여서 하나의 연속된 텍스트 값을 만듭니다.

[Region] & ", " & [City]

논리 연산자

논리 연산자 (&&) 및 (||)를 사용하여 식을 조합하고 단일 결과를 만듭니다.

텍스트 연산자

의미

&&(이중 앰퍼샌드)

각각 부울 결과를 갖고 있는 두 식 사이에 AND 조건을 만듭니다. 두 식이 모두 TRUE를 반환할 경우 식 조합에서도 TRUE가 반환되고 그렇지 않으면 조합이 FALSE를 반환합니다.

([Region] = "France") && ([BikeBuyer] = "yes"))

||(이중 파이프 기호)

두 논리 식 사이에 OR 조건을 만듭니다. 어느 한 식이 TRUE를 반환할 경우 결과가 TRUE입니다. 두 식이 모두 FALSE인 경우에만 결과가 FALSE가 됩니다.

(([Region] = "France") || ([BikeBuyer] = "yes"))

연산자 및 우선 순위

일부 경우에는 계산이 수행되는 순서에 따라 반환 값이 달라질 수 있습니다. 따라서 순서가 결정되는 방식을 이해하고 원하는 결과를 얻기 위해 순서를 어떻게 바꿔야 하는지 알아야 합니다.

계산 순서

식에서는 특정 순서에 따라 연산자와 값이 평가됩니다. 모든 식은 항상 등호(=)로 시작됩니다. 등호는 이후에 연속되는 문자들이 하나의 식이라는 것을 나타냅니다.

등호 다음에는 계산 연산자로 구분된 계산할 요소(피연산자)가 옵니다. 식은 항상 왼쪽에서 오른쪽의 순서로 읽혀지지만 괄호를 사용해서 어느 정도까지는 요소가 묶여지는 순서를 조정할 수 있습니다.

연산자 우선 순위

단일 수식에서 여러 연산자를 조합할 경우 연산은 다음 표에 있는 순서를 따릅니다. 연산자의 우선 순위 값이 동일할 경우 왼쪽에서 오른쪽의 순서대로 수행됩니다. 예를 들어 식에 곱하기와 나누기 연산자가 있으면, 식에 표시된 대로 왼쪽에서 오른쪽의 순서로 계산됩니다.

연산자

설명

^

지수

부호(예: -1)

* 및 /

곱하기와 나누기

!

NOT(단항 연산자)

+ 및 -

더하기와 빼기

&

두 텍스트 문자열 연결(연결)

=< ><=>=<>

비교

계산 순서 조정을 위한 괄호 사용

평가 순서를 변경하려면 먼저 계산해야 하는 수식의 일부를 괄호로 묶어야 합니다. 예를 들어 다음 수식에서는 더하기 전에 곱하기가 먼저 계산되므로 결과가 11입니다. 이 수식에서는 2와 3을 곱한 후 결과에 5를 더합니다.

=5+2*3

반면에, 괄호를 사용하여 구문을 변경하면 순서가 변경되어 5와 2를 더한 후 결과에 3을 곱해 21이 됩니다.

=(5+2)*3

다음 예에서는 수식의 첫 번째 부분에 괄호가 있기 때문에 (3 + 0.25) 식을 먼저 평가하는 계산을 수행한 후 그 결과를 (3 - 0.25) 식의 결과로 나눕니다.

=(3 + 0.25)/(3 - 0.25)

다음 예에서는 연산자의 우선 순위 규칙에 따라 지수 연산자를 먼저 적용한 후 부호 연산자를 적용합니다. 이 식의 결과는 -4입니다.

=-2^2

숫자 값에 부호 연산자를 먼저 적용하려면 다음 예와 같이 괄호를 사용하여 연산자를 제어하면 됩니다. 이 식의 결과는 4입니다.

= (-2)^2

호환성 정보

DAX는 여러 데이터 형식을 Microsoft Excel과 상당히 비슷하게 쉽게 처리하고 비교할 수 있습니다. 하지만 기본 계산 엔진은 SQL Server Analysis Services를 기반으로 하며 날짜 및 시간 형식에 대한 다양한 지원을 포함하여 관계형 데이터 저장소의 추가 고급 기능을 제공합니다. 따라서 일부 경우에는 계산 결과 또는 함수의 동작이 Excel과 다를 수 있습니다. 또한 DAX는 Excel보다 많은 데이터 형식을 지원합니다. 이 섹션에서는 주요 차이점에 대해 설명합니다.

피연산자의 데이터 형식 강제 변환

일반적으로 모든 연산자의 왼쪽과 오른쪽에 있는 두 개의 피연산자는 데이터 형식이 동일해야 합니다. 하지만 데이터 형식이 다르더라도 DAX는 이를 비교할 수 있도록 다음과 같이 공통된 데이터 형식으로 변환합니다.

  1. 먼저 두 피연산자를 사용 가능한 가장 큰 공통된 데이터 형식으로 변환한 후

  2. 피연산자를 비교합니다.

예를 들어 조합하려는 두 숫자가 있다고 가정해보십시오. 한 숫자는 =[Price] * .20과 같은 수식으로부터 계산되며, 그 결과에는 많은 소수 자릿수가 포함될 수 있습니다. 다른 숫자는 문자열 값으로 제공된 정수입니다.

이 경우 DAX는 두 종류의 숫자를 모두 저장할 수 있는 가장 큰 숫자 형식을 사용하여 두 숫자를 숫자 형식의 실수로 변환한 후 값을 비교합니다.

반면에 Excel에서는 숫자를 하나의 공통된 형식으로 강제 변환하지 않고 형식이 다른 값을 비교하려고 합니다. 따라서 동일한 비교 식에 대한 DAX와 Excel의 결과가 서로 다를 수도 있습니다.

DAX에 사용되는 데이터 형식

Excel에 사용되는 데이터 형식

숫자(I8, R8)

부울

문자열

DateTime

통화

숫자(R8)

부울

문자열

Variant

통화

암시적 데이터 형식 변환에 대한 자세한 내용은 PowerPivot 통합 문서에서 지원되는 데이터 형식을 참조하십시오.

우선 순위의 차이점

DAX 수식의 연산 우선 순위는 기본적으로 Microsoft Excel에 사용되는 것과 동일하지만 백분율과 같은 일부 Excel 연산자가 지원되지 않습니다. 또한 범위도 지원되지 않습니다.

따라서 Excel에서 수식을 복사하여 붙여 넣을 때는 수식에 사용된 일부 연산자 또는 요소가 유효하지 않을 수 있으므로 수식을 신중하게 검토하십시오. 연산 수행 순서가 확실하지 않을 경우 괄호를 사용하여 연산 순서를 제어하고 결과에 대한 모호성을 미리 제거하는 것이 좋습니다.

참고 항목

개념

PowerPivot의 DAX 구문 사양

DAX(Data Analysis Expressions) 개요