다음을 통해 공유


DAX 연산자

데이터 분석 식(DAX) 언어는 연산자를 사용하여 values비교하고, 산술 계산을 수행하고, or 문자열 작업을 수행하는 식을 만듭니다.

연산자 유형

산술 연산자, 비교, 텍스트 연결, 논리 and 네 가지 유형의 계산 연산자가 있습니다.

산술 연산자

덧셈, 뺄셈, 그리고 or 곱셈과 같은 기본 수학 연산을 수행하고, 숫자를 결합하여 and 수치 결과를 생성하려면 다음의 산술 연산자를 사용하십시오.

산술 연산자 의미 본보기
+(sign추가) 덧셈 3+3
-(sign빼기) 빼기 orsign 3-1-1
* (별표) 곱셈 3*3
/(앞슬래시) 나눗셈 3/3
^(캐럿) 지수화 16^4

메모

더하기 sign는 이진 연산자로도, 단항 연산자로도and 기능할 수 있습니다. 이진 연산자는 연산자의 양쪽에 숫자가 필요하며, and는 덧셈을 수행합니다. 이진 연산자의 양쪽에 있는 DAX 수식에서 values 사용하는 경우 DAXvalues 숫자 데이터 형식으로 캐스팅하려고 ifnot. 반면 단항 연산자는 모든 형식의 인수에 적용할 수 있습니다. 더하기 기호는 단순히 무시되는 orvalueand 형식에 영향을 줄 not 있지만, 빼기 연산자는 숫자 value적용된 if 음수 value만듭니다.

비교 연산자

두 개의 values를 다음 연산자를 사용하여 비교할 수 있습니다. 이러한 연산자를 사용하여 두 values를 비교하면 결과는 논리 value이며, TRUEor또는FALSE입니다.

비교 연산자 의미 본보기
= 같음 [지역] = "USA"
== 엄격한 같음 [지역] == "USA"
> 보다 큼 [판매 Date] > "2009년 1월"
< 미만 [판매 Date] < "2009년 1월 1일"
>= 보다 크거나 같은 or [금액] >= 20000
<= or 이하 [금액] <= 100
<> Not 같음 [지역] <> "미국"

All 비교 연산자 except == 은 BLANK를 숫자 0, 빈 문자열 "", DATE(1899, 12, 30), orFALSE과 동일하게 취급합니다. 따라서 [Column]의 value이 0이거나 or또는BLANK일 때, [Column] = 0은 true입니다. 반면, [Column] == 0은 [Column]의 value이 0일 때만 true입니다.

텍스트 연결 연산자

앰퍼샌드(&)를 사용하여 조인, orconcatenate, 두 개의 or 더 많은 텍스트 문자열을 사용하여 단일 텍스트를 생성합니다.

텍스트 연산자 의미 본보기
&(앰퍼샌드) 결합, or 두 개의 values을 결합하여 하나의 연속 텍스트 value를 생성합니다. [Region] & ", " & [City]

논리 연산자

논리 연산자(&&) and(||)를 사용하여 식을 결합하여 단일 결과를 생성합니다.

텍스트 연산자 의미 예제
&&(이중 앰퍼샌드) 각각 부울 결과가 있는 두 식 사이에 AND 조건을 만듭니다. If 두 식이 모두 TRUE을 반환하면, 그 식의 조합도 TRUE을 반환합니다. 그렇지 않으면 조합이 FALSE을 반환합니다. ([Region] = "France") && ([BikeBuyer] = "yes"))
|| (이중 파이프 기호) 두 논리 식 간에 OR 조건을 만듭니다. 두 식 중 하나가 TRUE반환할 If 결과는 TRUE; 두 식이 모두 FALSE 경우에만 결과 FALSE. (([Region] = "France") || ([BikeBuyer] = "yes"))
IN 테이블과 비교되는 각 행 간에 논리적 OR 조건을 만듭니다. 참고: 테이블 생성자 구문은 중괄호를 사용합니다. 'Product'[Color] IN { "Red", "Blue", "Black" }

연산자 and 우선 순위 순서

경우에 따라 계산이 수행되는 순서가 반환 value영향을 줄 수 있습니다. 따라서 순서를 결정하는 방법 and 원하는 결과를 얻기 위해 순서를 변경하는 방법을 이해하는 것이 중요합니다.

계산 순서

식은 특정 순서로 andvalues 연산자를 평가합니다. All 식은 항상 등호 sign(=)로 시작합니다. 등수 sign 후행 문자가 식을 구성한다는 것을 나타냅니다.

sign 다음에는 계산할 요소(피연산자)가 있으며, 이들은 계산 연산자로 구분됩니다. 수식은 항상 left에서 right까지 읽히지만, 요소가 그룹화되는 순서는 괄호를 사용하여 어느 정도 제어할 수 있습니다.

연산자 우선 순위

여러 연산자를 단일 수식으로 결합할 If 작업은 다음 표에 따라 정렬됩니다. 연산자의 우선 순위가 value동일할 Ifleft 순서가 right. 예를 들어, 식 if 에서 contains 는 곱하기 and 와 나누기 연산자로, 이들은 식에 나타나는 순서대로 left 에서 right까지 계산됩니다.

운영자 설명
^ 지수화
Sign (예를 들어 –1)
* and / 곱하기 and 나누기
+ and 더하기 and 빼기
& 텍스트의 두 문자열을 연결합니다(연결 연산).
=,==,<,>,<=,>=,<>,IN 비교
NOT NOT(단항 연산자)

괄호를 사용하여 계산 순서 제어

계산 순서를 변경하려면, first수식에서 계산이 필요한 부분을 괄호로 묶어야 합니다. 예를 들어, 다음 수식은 곱셈이 덧셈보다 먼저 계산되기 때문에 11을 생성합니다. 수식은 2를 3으로 곱한 and 결과에 5를 추가합니다.

=5+2*3  

반면, 괄호를 사용하여 구문을 변경하는 if 5개 and 2가 함께 추가되도록 순서가 변경됩니다. and 결과를 3을 곱하여 21을 생성합니다.

=(5+2)*3  

다음 예제에서는 수식의 first 부분 주위에 괄호를 적용하여, 먼저 식 (3 + 0.25)firstand을 evaluate하도록 강제하고, 그 결과를 (3 - 0.25)의 결과로 divide합니다.

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

다음 예제에서는 지수 연산자가 적용되고, 연산자의 우선 순위 규칙에 따라 first, 그 후에 andsign 연산자가 적용됩니다. 이 식의 결과는 -4입니다.

=-2^2  

sign 연산자가 숫자 valuefirst적용되도록 하려면 다음 예제와 같이 괄호를 사용하여 연산자를 제어할 수 있습니다. 이 식의 결과는 4입니다.

= (-2)^2  

호환성

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

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

일반적으로 연산자의 leftandright 쪽에 있는 두 피연산자는 동일한 데이터 형식이어야 합니다. 그러나 if 데이터 형식이 다르다면, 경우에 따라 연산자를 적용하기 위해 DAX 형식을 convert 공통 데이터 형식으로 변환합니다.

  1. 두 피연산자는 가능한 가장 큰 공통 데이터 형식으로 변환됩니다.
  2. 연산자가 적용되어 if 가능합니다.

예를 들어 결합하려는 두 개의 숫자가 있다고 가정해 보겠습니다. 한 숫자는 =[Price] * .20같은 수식에서 나온 결과이며, 이 and 결과는 많은 소수 자릿수를 포함할 수 있습니다. 다른 숫자는 문자열 value제공된 정수입니다.

이 경우 DAX 두 종류의 숫자를 모두 저장할 수 있는 가장 큰 숫자 format 사용하여 숫자 format두 숫자를 실제 숫자로 convert. 그런 다음 DAX 곱셈을 적용합니다.

데이터 형식 조합에 따라 비교 작업에 형식 강제 변환을 적용할 not 있습니다. 지원하는 데이터 형식의 전체 목록은 BI Desktop테이블 형식 모델데이터 형식에서 지원되는 데이터 형식을 참조하세요.

정수, 실수, Currency, Date/timeandBlank 비교를 위해 숫자로 간주됩니다. Blank 비교를 수행할 때 0으로 평가됩니다. 비교 작업에는 다음과 같은 데이터 형식 조합이 지원됩니다.

Left 측면 데이터 타입 Right 사이드 데이터 형식
숫자 숫자
부울 부울
문자열 문자열

다른 혼합 데이터 유형의 비교는 error을 반환합니다. 예를 들어, ="1" > 0과 같은 수식은 DAX 비교 작업에서 텍스트 형식의 values를 정수형식의 values와 비교하는 것이 not 지원되지 않는다는 것을 나타내는 error을 반환합니다.

DAX에서 사용되는 데이터 형식 Excel에서 사용되는 데이터 형식
숫자(I8, R8) 숫자(R8)
문자열 문자열
부울 부울
날짜시간 (DateTime) 변형
Currency Currency

우선 순위 차이

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

따라서 Excel에서 and 붙여넣기 수식을 복사할 때마다 수식의 일부 연산자 or 요소가 유효하지 not 수 있으므로 수식을 신중하게 검토해야 합니다. 작업이 수행되는 순서에 대해 의심의 여지가 있는 경우 괄호를 사용하여 작업의 순서를 제어하고 결과에 대한 모호성을 제거하는 and 것이 좋습니다.

DAX 구문
DAX 매개 변수 명명