Power BI Desktop의 데이터 형식
이 문서에서는 Power BI Desktop 및 DAX(Data Analysis Expressions)에서 지원하는 데이터 형식을 설명합니다.
Power BI는 데이터를 로드할 때 원본 열의 데이터 형식을 보다 효율적인 스토리지, 계산 및 데이터 시각화를 지원하는 데이터 형식으로 변환하려고 시도합니다. 예를 들어 Excel에서 가져오는 값 열에 소수 자릿수 값이 없는 경우, Power BI Desktop은 데이터 열을 정수 저장에 더 적합한 정수 데이터 형식으로 변환합니다.
일부 DAX 함수에는 특정 데이터 형식 요구 사항이 있기 때문에 이 개념은 중요합니다. 대부분의 경우 DAX는 데이터 형식을 암시적으로 변환하지만 경우에 따라 변환하지 않습니다. 예를 들어, DAX 함수에서 날짜 데이터 형식이 필요한데 열의 데이터 형식은 텍스트인 경우 DAX 함수가 제대로 작동하지 않습니다. 따라서 열에 올바른 데이터 형식을 사용하는 것이 중요하고 유용합니다.
열의 데이터 형식 확인 및 지정
Power BI Desktop에서는 Power Query 편집기, 데이터 보기 또는 보고서 보기의 열 데이터 형식을 결정하고 지정할 수 있습니다.
Power Query 편집기 열을 선택한 다음 리본의 변환 그룹에서 데이터 형식을 선택합니다.
데이터 보기 또는 보고서 보기에서 열을 선택한 다음 리본 메뉴의 열 도구 탭에서 데이터 형식 옆에 있는 드롭다운 화살표를 선택합니다.
Power Query 편집기의 데이터 형식 드롭다운에는 현재 데이터 또는 보고서 보기에는 없는 두 가지 데이터 형식, 즉 날짜/시간/표준 시간대와 기간이 있습니다. 해당 데이터 형식의 열을 Power BI 모델에서 로드하면 날짜/시간/표준 시간대 열이 날짜/시간 데이터 형식으로 변환되고 기간 열은 10진수 데이터 형식으로 변환됩니다.
이진 데이터 형식은 Power Query 편집기 외부에서 지원되지 않습니다. Power Query 편집기 내에서 이진 파일을 Power BI 모델에 로드하기 전에 다른 데이터 형식으로 변환하는 경우 이진 데이터 형식을 사용할 수 있습니다. 레거시 이유로 인해 이진 선택이 [데이터 보기] 및 [보고서 보기] 메뉴에 있지만, 이진 열을 Power BI 모델에 로드하려고 하면 오류가 발생할 수 있습니다.
숫자 형식
Power BI Desktop 10진수, 고정 10진수 및 정수의 세 가지 숫자 형식을 지원합니다.
TOM(테이블 형식 개체 모델) 열 DataType 속성을 사용하여 숫자 형식에 대한 DataType 열거형을 지정할 수 있습니다. Power BI에서 프로그래밍 방식으로 개체를 수정하는 방법에 대한 자세한 내용은 테이블 형식 개체 모델을 사용하여 Power BI 의미 체계 모델 프로그래밍을 참조하세요.
10진수
10진수는 가장 일반적인 숫자 형식이며 소수 값과 정수를 사용하여 숫자를 처리할 수 있습니다. 10진수는 -1.79E +308에서 -2.23E -308까지의 음수 값이 있는 64비트(8바이트) 부동 소수점 숫자, 2.23E -308에서 1.79E +308까지의 양수 값, 0을 나타냅니다. 예를 들어 34, 34.01, 34.000367063 등은 유효한 10진수입니다.
10진수 형식이 나타낼 수 있는 가장 긴 전체 자릿수는 15자리입니다. 소수 구분 기호는 숫자 안의 어디에나 놓일 수 있습니다. 이 형식은 Excel에서 숫자를 저장하는 방법에 해당하며 TOM은 이 형식을 DataType.Double
열거형으로 지정합니다.
고정된 10진수
고정 10진수 데이터 형식에는 10진수 구분 기호에 대한 고정 위치가 있습니다. 소수 구분 기호는 항상 오른쪽 4자리이며 19개의 숫자가 허용됩니다. 고정 10진수가 나타낼 수 있는 가장 큰 값은 양수 또는 음수 922,337,203,685,477.5807입니다.
고정 10진수 형식은 반올림에서 오류가 발생할 수 있는 경우에 유용합니다. 소수 부분의 값이 작은 숫자는 간혹 누적되어 숫자 값에 약간 차이가 있게 됩니다. 고정된 10진수 형식은 소수 구분 기호의 오른쪽에 있는 4자리 숫자 이후 값을 잘라서 이와 같은 유형의 오류를 방지하는 데 도움이 될 수 있습니다.
이 데이터 형식은 SQL Server의 10진수(19,4) 또는 Analysis Services의 통화 형식과 Excel의 Power Pivot에 해당합니다. TOM은 이 형식을 DataType.Decimal
열거형으로 지정합니다.
정수
정수 – 64비트(8바이트) 정수 값을 나타냅니다. 정수이기 때문에 소수점 오른쪽에 자리가 없습니다. 이 형식은 -9,223,372,036,854,775,807 (-2^63+1)에서 9,223,372,036,854,775,806 (2^63-2) 사이의 양수 또는 음수 정수 19자리를 허용하므로 가능한 가장 많은 숫자 데이터 형식을 나타낼 수 있습니다.
고정 10진수 형식처럼 정수 형식도 반올림을 억제해야 하는 상황에서 유용할 수 있습니다. TOM은 정수 데이터 형식을 DataType.Int64
열거형으로 나타냅니다.
참고 항목
Power BI Desktop 데이터 모델은 64비트 정수 값을 지원하지만 JavaScript 제한 때문에 Power BI 시각적 개체가 안전하게 표현할 수 있는 가장 큰 수는 9,007,199,254,740,991(2^53-1)입니다. 데이터 모델에 숫자가 더 많은 경우 시각적 개체에 추가하기 전에 계산을 통해 크기를 줄일 수 있습니다.
숫자 형식 계산의 정확도 보장
10진수 데이터 형식의 열 값은 부동 소수점 숫자에 대한 IEEE 754 표준에 따라 근사 데이터 형식으로 저장됩니다. 근사 데이터 형식은 숫자의 정확한 값을 저장하는 대신 매우 가깝거나 반올림된 근사값으로 저장될 수 있으므로 기본적으로 정밀도가 제한됩니다.
부동 소수점 값이 부동 소수점 숫자 수를 안정적으로 정량화할 수 없는 경우 전체 자릿수가 손실되거나 부정확성이 발생할 수 있습니다. 일부 보고 시나리오에서는 예기치 않거나 부정확한 계산의 결과로 부정성이 발생할 수 있습니다.
10진수 데이터 형식 값 간의 같음 관련 비교 계산은 잠재적으로 예기치 않은 결과를 반환할 수 있습니다. 같음 비교에는 =
과 같음, >
보다 큼, <
보다 작음, >=
보다 크거나 같음, <=
보다 작거나 같음이 포함됩니다.
이는 결과가 두 번 계산되어 약간 다른 숫자를 얻게 되는 DAX 식에서 RANKX 함수를 사용할 때 가장 두드러지게 나타납니다. 보고서 사용자는 두 숫자의 차이를 알 수 없지만 순위 결과는 눈에 띄게 부정확할 수 있습니다. 예기치 않은 결과를 피하려면 열 데이터 형식을 10진수에서 고정 10진수 또는 정수로 변경하거나 ROUND를 사용하여 강제로 반올림하면 됩니다. 고정 10진수 데이터 형식은 소수 구분 기호의 오른쪽에 항상 4자리가 있기 때문에 전체적인 자릿수가 더 깁니다.
드물긴 하지만 10진수 데이터 형식의 열 값을 합산하는 계산이 예기치 않은 결과를 반환할 수 있습니다. 양수와 음수가 모두 많이 있는 열에서 이렇게 될 가능성이 큽니다. 합산 결과는 열의 행에 대한 값 분포의 영향을 받습니다.
쿼리 결과를 반환하는 데 필요한 계산이 대부분의 양수를 합산한 후 대부분의 음수를 합산하는 경우 처음의 큰 양수 부분 합계가 결과를 왜곡할 수 있습니다. 계산에서 균형 잡힌 양수와 음수를 추가하는 경우 쿼리는 정밀도를 더 유지하므로 더 정확한 결과를 반환합니다. 예기치 않은 결과를 피하려면 열 데이터 형식을 10진수에서 고정 10진수 또는 정수로 변경하면 됩니다.
날짜/시간 형식
Power BI Desktop은 Power Query 편집기에서 5가지 날짜/시간 데이터 형식을 지원합니다. 로드하는 동안 날짜/시간/표준 시간대와 기간은 모두 Power BI Desktop 데이터 모델로 변환됩니다. 모델은 날짜/시간을 지원하거나 값을 날짜 또는 시간으로 독립적으로 서식을 지정할 수 있습니다.
날짜/시간 - 날짜 및 시간 값을 나타냅니다. 기본 날짜/시간 값은 10진수 형식으로 저장되므로 두 형식 간에 변환할 수 있습니다. 시간 부분은 1/300초(3.33ms)의 배수에 대한 분수로 저장됩니다. 데이터 형식은 1900년에서 9999년 사이의 날짜를 지원합니다.
날짜는 시간 부분이 없는 날짜만 나타냅니다. 모델로 변환할 때 날짜는 소수 자릿수 값이 0인 날짜/시간 값으로 변환됩니다.
시간은 날짜 부분이 없는 시간만 나타냅니다. 모델로 변환할 때 시간은 소수점 왼쪽에 자릿수가 없는 날짜/시간 값으로 변환됩니다.
날짜/시간/표준 시간대는 표준 시간대 오프셋이 있는 UTC 날짜/시간을 나타내며 모델에 로드될 때 날짜/시간으로 변환됩니다. Power BI 모델은 사용자의 위치나 로캘을 기반으로 표준 시간대를 조정하지 않습니다. 09:00 값이 미국에서 모델에 로드되면 어디에서 보고서를 열거나 보든 09:00으로 표시됩니다.
기간 은 시간의 길이를 나타내며 모델에 로드될 때 10진수 형식으로 변환됩니다. 10진수 형식으로 날짜/시간 값의 값을 올바른 결과로 추가하거나 빼고 크기를 표시하는 시각화에 값을 쉽게 사용할 수 있습니다.
텍스트 형식
텍스트 데이터 형식은 텍스트 형식으로 표현되는 문자, 숫자 또는 날짜일 수 있는 유니코드 문자 데이터 문자열입니다. 문자열 길이에 대한 실제 최대 제한은 Power BI 기본 파워 쿼리 엔진과 텍스트 데이터 형식 길이에 대한 해당 제한에 따라 약 32,000개의 유니코드 문자입니다. 실제 최대 한도를 초과하는 텍스트 데이터 형식을 사용하면 오류가 발생할 수 있습니다.
Power BI에서 텍스트 데이터를 저장하는 방식으로 인해 특정 상황에서 데이터가 다르게 표시될 수 있습니다. 다음 섹션에서는 텍스트 데이터가 Power Query 편집기 데이터를 쿼리하고 Power BI에 로드하는 사이에 모습을 약간 변경할 수 있는 일반적인 상황에 대해 설명합니다.
대/소문자 구분
Power BI에서 데이터를 저장하고 쿼리하는 엔진은 대/소문자를 구분하지 않으며 서로 다른 대문자 대문자를 동일한 값으로 처리합니다. “A”는 “a”와 같습니다. 그러나 Power Query 대/소문자를 구분합니다. 여기서 “A”는 “a”와 동일하지 않습니다. 대/소문자 구분의 차이로 인해 Power BI에 로드한 후 텍스트 데이터가 대문자로 변경되는 상황으로 이어질 수 있습니다.
다음 예제에서는 주문 데이터를 보여줍니다. 각 주문에 대해 고유한 OrderNo 열과 주문 시 수동으로 입력한 주소 이름을 보여 주는 주소 열입니다. Power Query 편집기는 동일한 주소 이름이 다양한 대/소문자로 시스템에 입력된 여러 주문을 보여줍니다.
Power BI가 데이터를 로드한 후 데이터 탭에서 중복된 이름의 대/소문자가 원래 항목으로부터 대/소문자 변환 중 하나로 변경됩니다.
이 변경은 Power Query 편집기 대/소문자를 구분하므로 원본 시스템에 저장된 데이터를 정확하게 표시하기 때문에 발생합니다. Power BI에 데이터를 저장하는 엔진은 대/소문자를 구분하지 않으므로 문자의 소문자 및 대문자 버전을 동일하게 처리합니다. Power BI 엔진에 로드된 Power Query 데이터는 그에 따라 변경될 수 있습니다.
Power BI 엔진은 위쪽에서 시작하여 데이터를 로드할 때 각 행을 개별적으로 평가합니다. 각 텍스트 열(예: 주소)에 대해 엔진은 데이터 압축을 통해 성능을 개선하기 위해 고유한 값의 사전을 저장합니다. 엔진은 주소 열의 처음 세 값을 고유한 값으로 보고 사전에 저장합니다. 그 후 엔진은 대/소문자를 구분하지 않으므로 이름을 동일하게 평가합니다.
엔진에서는 “Taina Hasu”라는 이름이 “TAINA HASU” 및 “Taina HASU”와 동일하므로 변형을 저장하지는 않지만 저장된 첫 번째 변형을 나타냅니다. “MURALI DAS”라는 이름은 대문자로 나타납니다. 왜냐하면 엔진이 데이터를 위에서 아래로 로드할 때 이 이름이 처음 나타났기 때문입니다.
이 이미지는 평가 프로세스를 보여 줍니다.
위의 예제에서 Power BI 엔진은 데이터의 첫 번째 행을 로드하고, 주소 사전을 만든 후 Taina Hasu를 추가합니다. 또한 엔진은 로드한 테이블의 주소 열에서 해당 값에 대한 참조를 추가합니다. 엔진은 두 번째 행과 세 번째 행에 대해 동일한 작업을 수행합니다. 해당 이름은 대/소문자를 무시할 때 다른 이름과 동일하지 않기 때문입니다.
네 번째 행의 경우 엔진은 사전의 이름과 값을 비교하고 이름을 찾습니다. 엔진은 대/소문자를 구분하지 않으므로 “TAINA HASU” 및 “Taina Hasu”와 동일합니다. 엔진은 사전에 새 이름을 추가하지 않지만 기존 이름을 참조합니다. 나머지 행에도 동일한 프로세스가 발생합니다.
참고 항목
Power BI에서 데이터를 저장하고 쿼리하는 엔진은 대/소문자를 구분하지 않으므로 대/소문자를 구분하는 원본을 사용하여 DirectQuery 모드에서 작업할 때 특별히 주의해야 합니다. Power BI는 원본이 중복 행을 제거했다고 가정합니다. Power BI는 대/소문자를 구분하지 않으므로 대/소문자별로만 다른 두 값을 중복으로 처리하지만 원본은 해당 값으로 처리하지 않을 수 있습니다. 이 경우 최종 결과가 정의되지 않습니다.
이 상황을 방지하려면 대/소문자를 구분하는 데이터 원본에서 DirectQuery 모드를 사용하는 경우 원본 쿼리 또는 Power Query 편집기에서 대/소문자를 정규화합니다.
선행 및 후행 공백
Power BI 엔진은 텍스트 데이터 뒤의 후행 공백을 자동으로 자르지만 데이터 앞에 오는 선행 공백은 제거하지 않습니다. 혼동을 방지하려면 선행 또는 후행 공백이 포함된 데이터로 작업할 때 Text.Trim 함수를 사용하여 텍스트의 시작 또는 끝에 있는 공백을 제거해야 합니다. 선행 공백을 제거하지 않으면 중복 값으로 인해 관계를 만들지 못하거나 시각적 개체가 예기치 않은 결과를 반환할 수 있습니다.
다음 예시에서는 고객에 대한 데이터, 즉 고객 이름을 포함하는 이름 열과 각 항목에 대해 고유한 인덱스 열을 로드했습니다. 이름은 명확성을 위해 따옴표 안에 표시됩니다. 고객 이름은 네 번 반복되지만 선행 및 후행 공백의 조합이 매번 다릅니다. 이러한 변형은 시간이 지남에 따라 수동 데이터 입력 시 발생할 수 있습니다.
Row | 선행 공백 | 후행 공백 | 이름 | 색인 | Text length |
---|---|---|---|---|---|
1 | 예 | 아니요 | "Dylan Williams" | 1 | 14 |
2 | 예 | 예 | "Dylan Williams " | 10 | 15 |
3 | 예 | 아니요 | " Dylan Williams" | 20 | 15 |
4 | 예 | 예 | " Dylan Williams " | 40 | 16 |
Power Query 편집기 결과 데이터는 다음과 같이 표시됩니다.
데이터를 로드한 후 Power BI의 데이터 탭으로 이동하면 이전과 동일한 수의 행이 있는 동일한 테이블이 다음 이미지와 같이 표시됩니다.
그러나 이 데이터를 기반으로 하는 시각적 개체는 2개의 행만 반환합니다.
앞의 이미지에서 첫 번째 행은 인덱스 필드의 총 값이 60이므로 시각적 개체의 첫 번째 행은 로드된 데이터의 마지막 두 행을 나타냅니다. 총 인덱스 값이 11 인 두 번째 행은 처음 두 행을 나타냅니다. 시각적 개체와 데이터 테이블 간의 행 수 차이는 엔진이 후행 공백을 자동으로 제거하거나 자르지만 선행 공백은 제거하지 않기 때문에 발생합니다. 따라서 엔진은 첫 번째 및 두 번째 행과 세 번째 및 네 번째 행을 동일하게 평가하고 시각적 개체는 해당 결과를 반환합니다.
이 동작으로 인해 중복된 값이 검색되기 때문에 관계와 관련된 오류 메시지도 발생할 수 있습니다. 예를 들어 관계 구성에 따라 다음 이미지와 유사한 오류가 표시될 수 있습니다.
다른 경우에는 중복된 값이 검색되므로 다대일 또는 일대일 관계를 만들 수 없습니다.
해당 오류를 선행 또는 후행 공백으로 다시 추적하고 변환에서 텍스트.자르기 또는 자르기를 사용하여 해결함으로써 Power Query 편집기에서 공백을 제거할 수 있습니다.
True/False 형식
True/false 데이터 형식은 True 또는 False의 부울 값입니다. 가장 일관된 최상의 결과를 위해 부울 정보가 포함된 열을 Power BI에 로드할 때 열 형식을 True/False로 설정합니다.
Power BI는 특정 상황에서 데이터를 변환하여 다르게 표시합니다. 이 섹션에서는 부울 값을 변환하는 일반적인 사례와 Power BI에서 예기치 않은 결과를 생성하는 변환을 해결하는 방법을 설명합니다.
이 예제에서는 고객이 뉴스레터에 등록했는지 여부에 대한 데이터를 로드합니다. TRUE 값은 고객이 뉴스레터에 가입했음을 나타내며 FALSE 값은 가입하지 않았음을 나타냅니다.
그러나 보고서를 Power BI 서비스에 게시할 때 뉴스레터 등록 상태를 추적하는 열은 예상되는 TRUE 또는 FALSE 값 대신 0 및 -1로 표시됩니다. 다음 단계에서는 이 변환이 발생하는 방법과 이를 방지하는 방법을 설명합니다.
이 테이블에 대한 간소화된 쿼리가 다음 이미지에 표시됩니다.
뉴스레터 구독 열의 데이터 형식은 Any로 설정되고, 결과적으로 Power BI는 데이터를 모델에 텍스트로 로드합니다.
고객별 세부 정보를 보여 주는 간단한 시각화를 추가하면 Power BI Desktop에서와 Power BI 서비스에 게시될 때 데이터는 시각적 개체에서 예상대로 표시됩니다.
그러나 Power BI 서비스에서 의미 체계 모델을 새로 고치면 시각적 개체의 Subscribed To Newsletter 열은 값을 TRUE 또는 FALSE로 표시하는 대신 -1 및 0으로 표시합니다.
Power BI Desktop에서 보고서를 다시 게시하면 뉴스레터 구독 열에 다시 예상한 대로 TRUE 또는 FALSE가 표시되지만 Power BI 서비스에서 새로 고침이 발생하면 값이 다시 -1 및 0으로 변경됩니다.
이와 같은 일이 발생하지 않도록 하는 솔루션은 Power BI Desktop에서 부울 열을 True/False 형식으로 설정한 후 보고서를 다시 게시하는 것입니다.
변경하면 시각화에 뉴스레터 구독 열의 값이 약간 다르게 표시됩니다. 표에 입력된 텍스트가 모두 대문자가 되지 않고 첫 번째 문자만 대문자로 표시됩니다. 이 변경은 열의 데이터 형식을 변경한 결과 중 하나입니다.
데이터 형식이 변경되어 Power BI 서비스에 다시 게시되고 새로 고침이 발생하면 보고서는 값을 예상대로 True 또는 False로 표시합니다.
요약하자면, Power BI에서 부울 데이터로 작업할 때 열이 Power BI Desktop에서 True/False 데이터 형식으로 설정되는지 확인합니다.
빈 형식
공백은 SQL null을 표현 및 대체하는 DAX의 데이터 형식입니다. BLANK 함수를 사용하여 공백을 만들고 ISBLANK 논리 함수를 사용하여 공백을 테스트할 수 있습니다.
이진 형식
이진 데이터 형식은 이진 형식의 다른 데이터를 나타내는 데 사용할 수 있습니다. Power Query 편집기 내에서 이진 파일을 Power BI 모델에 로드하기 전에 다른 데이터 형식으로 변환하는 경우 이 데이터 형식을 사용할 수 있습니다.
이진 열은 Power BI 데이터 모델에서 지원되지 않습니다. 레거시 이유로 인해 [데이터 보기] 및 [보고서 보기] 메뉴에 있지만, 이진 열을 Power BI 모델에 로드하려고 하면 오류가 발생할 수 있습니다.
참고 항목
이진 열이 쿼리 단계의 출력에 있는 경우 게이트웨이를 통해 데이터를 새로 고치려고 하면 오류가 발생할 수 있습니다. 이진 열은 쿼리의 마지막 단계로 명시적으로 제거하는 것이 좋습니다.
테이블 유형
DAX는 집계, 시간 인텔리전스 계산 등과 같이 다양한 함수에서 테이블 데이터 형식을 사용합니다. 일부 함수에는 테이블에 대한 참조가 필요합니다. 다른 함수는 다른 함수에 대한 입력으로 사용할 수 있는 테이블을 반환합니다.
입력으로 테이블이 필요한 여러 함수에서 테이블을 평가하는 식을 지정할 수 있습니다. 일부 함수에는 기본 테이블에 대한 참조가 필요합니다. 특정 함수의 요구 사항에 대한 정보는 DAX 함수 참조에서 확인하세요.
명시적 및 암시적 데이터 형식 변환
각 DAX 함수에는 입력 및 출력에 사용되는 데이터 형식에 따라 특정한 요구 사항이 있습니다. 예를 들어 어떤 함수에서는 특정 인수에는 정수를, 다른 인수에는 날짜를 요구합니다. 다른 함수에는 텍스트 또는 테이블이 필요합니다.
인수로 지정한 열의 데이터가 함수에서 요구하는 데이터 형식과 호환되지 않으면 DAX가 오류를 반환할 수 있습니다. 그러나 가능한 경우 DAX는 데이터를 필요한 데이터 형식으로 암시적으로 변환하려고 시도합니다.
예시:
- 문자열로 날짜를 입력하는 경우 DAX는 이 문자열을 구문 분석하여 이를 Windows 날짜 및 시간 형식 중 하나로 캐스팅하려 합니다.
- TRUE + 1을 추가하고 2의 결과를 받을 수 있습니다. TRUE는 암시적으로 숫자 1로 변환되므로 1+1 연산이 수행됩니다.
- 두 열에 값을 추가했으며 한 값은 텍스트(“12”), 다른 값이 숫자(12)인 경우 DAX는 암시적으로 문자열을 숫자로 변환하며 더하기를 통해 숫자 결과를 반환합니다. 식 = “22” + 22는 44를 반환합니다.
- 두 숫자를 연결하려고 하면 DAX에서 문자열로 표시한 다음 연결합니다. 식 = 12 및 34 "1234" 반환.
암시적 데이터 변환 표
연산자는 요청된 작업을 수행하기 전에 필요한 값을 캐스팅하여 DAX가 수행하는 변환 유형을 결정합니다. 다음 표에는 연산자가 나열되어 있으며, 교차하는 셀의 데이터 형식과 쌍을 이루는 경우 각 데이터 형식에서 DAX 변환이 수행됩니다.
참고 항목
해당 테이블에는 텍스트 데이터 형식이 포함되지 않습니다. 숫자를 텍스트 형식으로 표현할 때, 일부 경우 Power BI가 숫자 유형을 판단하고 해당 데이터를 숫자로 표시하려 합니다.
더하기(+)
INTEGER | 통화 | REAL | 날짜/시간 | |
---|---|---|---|---|
INTEGER | INTEGER | 통화 | REAL | 날짜/시간 |
CURRENCY | 통화 | 통화 | REAL | Date/time |
REAL | REAL | REAL | REAL | Date/time |
Date/time | 날짜/시간 | 날짜/시간 | 날짜/시간 | 날짜/시간 |
예를 들어, 통화 데이터와 연결된 더하기 작업에서 실수를 사용할 경우 DAX는 두 값을 실수로 변환하며 결과도 실수로 반환합니다.
빼기(–)
다음 테이블에서 행 머리글은 피감수(왼쪽), 열 머리글은 감수(오른쪽)를 나타냅니다.
INTEGER | 통화 | REAL | 날짜/시간 | |
---|---|---|---|---|
INTEGER | INTEGER | 통화 | REAL | REAL |
CURRENCY | 통화 | 통화 | REAL | REAL |
REAL | REAL | REAL | REAL | REAL |
Date/time | 날짜/시간 | 날짜/시간 | 날짜/시간 | 날짜/시간 |
예를 들어, 다른 데이터 형식과의 빼기 작업에 날짜를 사용할 경우 DAX는 두 값을 모두 날짜로 변환하며 반환 값도 날짜입니다.
참고 항목
데이터 모델은 단항 연산자 -(음수)를 지원하지만 이 연산자는 피연산자의 데이터 형식을 변경하지 않습니다.
곱하기(*)
INTEGER | 통화 | REAL | 날짜/시간 | |
---|---|---|---|---|
INTEGER | INTEGER | 통화 | REAL | INTEGER |
CURRENCY | 통화 | REAL | 통화 | 통화 |
REAL | REAL | 통화 | REAL | REAL |
예를 들어, 정수가 곱하기 작업에서 실수와 연결된 경우 DAX는 두 숫자 모두 실수로 변환하며 반환되는 값도 실수입니다.
나누기(/)
다음 표에서 행 머리글은 분자, 열 머리글은 분모입니다.
INTEGER | 통화 | REAL | 날짜/시간 | |
---|---|---|---|---|
INTEGER | REAL | 통화 | REAL | REAL |
CURRENCY | 통화 | REAL | 통화 | REAL |
REAL | REAL | REAL | REAL | REAL |
Date/time | REAL | REAL | REAL | REAL |
예를 들어, 정수가 나누기 작업에서 통화 값과 연결된 경우 DAX는 두 값 모두 실수로 변환하며 반환되는 값도 실수입니다.
비교 연산자
비교 식에서 DAX는 문자열 값보다 큰 부울 값과 숫자 또는 날짜/시간 값보다 큰 문자열 값을 고려합니다. 숫자와 날짜/시간 값의 순위는 동일합니다.
DAX는 부울 또는 문자열 값에 대해 암시적 변환을 수행하지 않습니다. BLANK 또는 빈 값은 다른 비교 값의 데이터 형식에 따라 0, “” 또는 False로 변환됩니다.
다음 DAX 식은 이 동작을 보여 줍니다.
=IF(FALSE()>"true","Expression is true", "Expression is false")
는 “Expression is true”를 반환합니다.=IF("12">12,"Expression is true", "Expression is false")
는 “Expression is true”를 반환합니다.=IF("12"=12,"Expression is true", "Expression is false")
는 “Expression is false”를 반환합니다.
DAX는 다음 표에 설명된 대로 숫자 또는 날짜/시간 형식에 대한 암시적 변환을 수행합니다.
비교 연산자 |
INTEGER | 통화 | REAL | 날짜/시간 |
---|---|---|---|---|
INTEGER | INTEGER | 통화 | REAL | REAL |
CURRENCY | 통화 | 통화 | REAL | REAL |
REAL | REAL | REAL | REAL | REAL |
Date/time | REAL | REAL | REAL | 날짜/시간 |
공백, 빈 문자열 및 0 값
DAX에서 null, 빈 값, 공백 셀 또는 누락된 값은 동일한 새 값 형식인 BLANK로 나타납니다. BLANK 함수를 사용하여 공백을 생성하거나 ISBLANK 함수를 사용하여 공백을 테스트할 수도 있습니다.
더하기 또는 연결 등의 연산에서 공백이 처리되는 방식은 개별 함수에 따라 다릅니다. 다음 표에서는 DAX와 Microsoft Excel 식 사이에서 공백 처리 방식의 차이점을 요약합니다.
식 | DAX | Excel |
---|---|---|
BLANK + BLANK | BLANK | 0(영) |
BLANK + 5 | 5 | 5 |
BLANK * 5 | BLANK | 0(영) |
5/BLANK | Infinity(무한) | 오류 |
0/BLANK | NaN | 오류 |
BLANK/BLANK | BLANK | 오류 |
FALSE OR BLANK | FALSE | FALSE |
FALSE AND BLANK | FALSE | FALSE |
TRUE OR BLANK | TRUE | TRUE |
TRUE AND BLANK | FALSE | TRUE |
BLANK OR BLANK | BLANK | 오류 |
BLANK AND BLANK | BLANK | Error |
관련 콘텐츠
Power BI Desktop 및 데이터로 모든 종류의 작업을 수행할 수 있습니다. Power BI 기능에 대한 자세한 내용은 다음 리소스를 확인하세요.