다음을 통해 공유


VAR

식의 결과를 명명된 변수로 저장한 다음 다른 측정값 식에 인수로 전달할 수 있습니다. 일단 변수 식에 대한 결과 값이 계산되면 변수가 다른 식에서 참조되더라도 해당 값은 변경되지 않습니다.

구문

VAR <name> = <expression>  

매개 변수

용어 정의
name 변수(식별자)의 이름입니다.
구분 기호는 지원되지 않습니다. 예를 들어 'varName' 또는 [varName]에서 오류가 발생합니다.
지원되는 문자 집합: a-z, A-Z, 0-9.
0-9는 첫 번째 문자로 유효하지 않습니다.
__(이중 밑줄)는 식별자 이름의 접두사로 허용됩니다.
다른 특수 문자는 지원되지 않습니다.
예약된 키워드(keyword) 허용되지 않습니다.
기존 테이블의 이름은 허용되지 않습니다.
빈 공간은 허용되지 않습니다.
스칼라 또는 테이블 값을 반환하는 DAX 식입니다.

반환 값

식 인수의 결과를 포함하는 명명된 변수입니다.

설명

  • VAR에 인수로 전달된 식에는 다른 VAR 선언이 포함될 수 있습니다.

  • 변수를 참조하는 경우:

    • 측정값은 측정값 식 외부에 정의된 변수를 참조할 수 없지만 식 내에 정의된 함수 범위 변수를 참조할 수 있습니다.
    • 변수는 측정값을 참조할 수 있습니다.
    • 변수는 이전에 정의된 변수를 참조할 수 있습니다.
    • TableName[ColumnName] 구문을 통해 테이블 변수의 열을 참조할 수 없습니다.
  • VAR을 사용하는 경우 모범 사례는 변수를 사용하여 DAX 수식을 개선하는 방법을 참조 하세요.

  • DAX 쿼리 내에서 VAR을 사용하는 방법에 대한 자세한 내용은 DAX 쿼리를 참조하세요.

예시

변수를 사용하지 않고 전년 대비 증가율을 계산하려면 세 개의 별도 측정값을 만들 수 있습니다. 이 첫 번째 측정값은 판매액 합계를 계산합니다.

Sum of SalesAmount = SUM(SalesTable[SalesAmount])  

두 번째 측정값은 이전 연도의 판매액을 계산합니다.

SalesAmount PreviousYear =
    CALCULATE([Sum of SalesAmount],
    SAMEPERIODLASTYEAR(Calendar[Date])
    )  

그런 다음 다른 두 측정값을 결합하여 증가율을 계산하는 세 번째 측정값을 만들 수 있습니다. SalesAmount의 합계 측정값은 두 곳에서 사용됩니다. 먼저 판매가 있는지 확인한 다음 다시 백분율을 계산합니다.

Sum of SalesAmount YoY%: = 
    IF([Sum of SalesAmount] ,  
        DIVIDE(([Sum of SalesAmount] – [SalesAmount PreviousYear]), [Sum of SalesAmount])
    )  

변수를 사용하여 동일한 결과를 계산하는 단일 측정값을 만들 수 있습니다.

YoY% =
  VAR Sales = 
      SUM(SalesTable[SalesAmount])  
  VAR SalesLastYear =
      CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) )

  return if(Sales, DIVIDE(Sales – SalesLastYear, Sales))  

변수를 사용하면 동일한 결과를 얻을 수 있지만 더 읽기 쉬운 방식으로 얻을 수 있습니다. 식의 결과가 변수에 저장되기 때문에 변수를 사용할 때마다 다시 계산할 필요가 없으므로 측정값의 성능이 크게 향상될 수 있습니다.

변수를 사용하여 DAX 수식 개선
DAX 쿼리