Power BI Desktop의 데이터 형식Data types in Power BI Desktop

이 문서에서는 Power BI Desktop 및 DAX(Data Analysis Expressions)에서 지원하는 데이터 형식을 설명합니다.This article describes data types supported in Power BI Desktop and Data Analysis Expressions (DAX).

데이터를 로드할 때 Power BI Desktop은 원본 열의 데이터 형식을 더 효율적인 저장, 계산 및 데이터 시각화를 지원할 수 있는 데이터 형식으로 변환하려 합니다.When you load data into Power BI Desktop, it will attempt to convert the data type of the source column into a data type that better supports more efficient storage, calculations, and data visualization. 예를 들어 Excel에서 가져오는 값 열에 소수 자릿수 값이 없는 경우, Power BI Desktop은 데이터의 전체 열을 정수 저장에 더 적합한 한정수 데이터 형식으로 변환합니다.For example, if a column of values you import from Excel has no fractional values, Power BI Desktop will convert the entire column of data to a Whole Number data type, which is better suited for storing integers.

일부 DAX 함수에는 특정 데이터 형식 요구 사항이 있기 때문에 이 작업이 중요합니다.This is important because some DAX functions have special data type requirements. 많은 경우 DAX는 암시적으로 데이터 형식을 변환하나 그렇지 않은 경우도 일부 존재합니다.While in many cases DAX will implicitly convert a data type for you, there are some cases where it will not. 예를 들어, DAX 함수에서 날짜 데이터 형식이 필요한데 열의 데이터 형식은 텍스트인 경우 DAX 함수가 제대로 작동하지 않습니다.For instance, if a DAX function requires a Date data type and the data type for your column is Text, the DAX function will not work correctly. 따라서 열에 정확한 데이터 형식을 확보하는 것이 중요하면서 유용합니다.So, it’s both important and useful to get the correct data type for a column. 암시적 변환은 이 문서의 뒷부분에서 설명합니다.Implicit conversions are described later in this article.

열의 데이터 형식 확인 및 지정Determine and specify a column’s data type

Power BI Desktop에서는 쿼리 편집기, 데이터 보기 또는 보고서 보기의 열 데이터 형식을 결정 및 지정할 수 있습니다.In Power BI Desktop, you can determine and specify a column’s data type in the Query Editor, or in Data View or Report View:

쿼리 편집기의 데이터 형식Data types in Query Editor

데이터 보기 또는 보고서 보기의 데이터 형식Data types in Data View or Report View

쿼리 편집기의 데이터 형식 드롭다운에는 현재 데이터 또는 보고서 보기에는 없는 두 가지 데이터 형식이 있습니다. 즉 날짜/시간/표준 시간대기간입니다.The Data Type drop down in Query Editor has two data types not currently present in Data or Report View: Date/Time/Timezone and Duration. 이러한 데이터 형식이 있는 열을 모델에 로드하고 데이터 또는 보고서 보기에서 볼 때는 날짜/시간/표준 시간대 데이터 형식의 열은 날짜/시간으로, 기간 데이터 형식의 열은 10진수로 변환됩니다. When a column with these data types are loaded into the model and viewed in Data or Report view, a column with a Date/Time/Timezone data type will be converted into a Date/Time, and a column with a Duration data type is converted into a Decimal Number.

숫자 형식Number types

Power BI Desktop은 3가지 숫자 형식을 지원합니다.Power BI Desktop supports three number types:

10진수 – 64비트(8바이트) 부동 소수점 숫자를 나타냅니다.Decimal Number – Represents a 64 bit (eight-byte) floating point number. 가장 일반적인 숫자 형식이며, 보통 떠올리는 숫자에 해당합니다.It’s the most common number type and corresponds to numbers as you usually think of them. 자릿수 값을 포함하는 숫자를 처리할 수 있게 설계되었으나 정수도 처리합니다.Although designed to handle numbers with fractional values, it also handles whole numbers. 10 진수 형식은 음수 -1.79E +308 ~ -2.23E -308, 0, 양수 2.23E -308 ~ 1.79E + 308 범위의 값을 처리할 수 있습니다.The Decimal Number type can handle negative values from -1.79E +308 through -2.23E -308, 0, and positive values from 2.23E -308 through 1.79E + 308. 예를 들어 34, 34.01, 34.000367063 등은 유효한 10진수입니다.For example, numbers like 34, 34.01, and 34.000367063 are valid decimal numbers. 10진수 형식으로 나타낼 수 있는 가장 큰 값은 15자리 길이입니다.The largest value that can be represented in a Decimal Number type is 15 digits long. 소수 구분 기호는 숫자 안의 어디에나 놓일 수 있습니다.The decimal separator can occur anywhere in the number. 10진수 형식은 Excel이 숫자를 저장하는 방법에 해당합니다.The Decimal Number type corresponds to how Excel stores its numbers.

고정 10진수 – 소수 구분 기호의 고정 위치가 있습니다.Fixed Decimal Number – Has a fixed location for the decimal separator. 소수 구분 기호는 항상 오른쪽 4자리이며 19개의 숫자가 허용됩니다.The decimal separator always has four digits to its right and allows for 19 digits of significance. 나타낼 수는 가장 큰 값은 922,337,203,685,477.5807(양수 또는 음수)입니다.The largest value it can represent is 922,337,203,685,477.5807 (positive or negative). 고정 10진수 형식은 반올림에서 오류가 발생할 수 있는 경우에 유용합니다.The Fixed Decimal Number type is useful in cases where rounding might introduce errors. 소수 부분의 값이 작은 많은 숫자를 작업할 때 간혹 누적되어 숫자 값에 약간 차이가 있게 됩니다.When you work with many numbers that have small fractional values they can sometimes accumulate and force a number to be just slightly off. 소수 구분 기호 오른쪽 4자리를 벗어난 값은 잘리므로 고정 10진수 형식은 이런 종류의 오류를 방지하는 데 도움이 됩니다.Since the values past the four digits to the right of decimal separator are truncated, the Fixed Decimal type can help you avoid these kinds of errors. SQL Server에 익숙할 경우 이 데이터 형식은 SQL Server의 10진수(19,4) 또는 Power Pivot의 통화 데이터 형식에 해당합니다.If you’re familiar with SQL Server, this data type corresponds to SQL Server’s Decimal (19,4), or the Currency Data type in Power Pivot.

정수 – 64비트(8바이트) 정수 값을 나타냅니다.Whole Number – Represents a 64 bit (eight-byte) integer value. 정수이기 때문에 소수점 오른쪽에 자리가 없습니다.Because it’s an integer, it has no digits to the right of the decimal place. -9,223,372,036,854,775,808(-2^63) ~ 9,223,372,036,854,775,807(2^63-1) 범위의 양수 또는 음수 19자리가 허용됩니다.It allows for 19 digits; positive or negative whole numbers between -9,223,372,036,854,775,808 (-2^63) and 9,223,372,036,854,775,807 (2^63-1). 다양한 숫자 데이터 형식 중에서 나타낼 수 있는 숫자 값이 가장 큽니다.It can represent the largest possible number of the various numeric data types. 고정 10진수 형식처럼 실수 형식도 반올림을 억제해야 하는 상황에서 유용할 수 있습니다.As with the Fixed Decimal type, the Whole Number type can be useful in cases where you need to control rounding.

날짜/시간 형식Date/time types

Power BI Desktop은 쿼리 보기에서 5가지, 보고서 보기 및 모델에서 3가지 날짜/시간 데이터 형식을 지원합니다.Power BI Desktop supports five Date/Time data types in Query View and three in the Report View and model. 모델로 로드하는 동안 날짜/시간/표준 시간대와 기간이 모두 변환됩니다.Both Date/Time/Timezone and Duration are converted during load into the model.

날짜/시간 - 날짜 및 시간 값을 나타냅니다.Date/Time – Represents both a date and time value. 내부적으로 날짜/시간 값은 10진수 숫자 형식으로 저장됩니다.Underneath the covers, the Date/Time value is stored as a Decimal Number Type. 따라서 실질적으로 두 값 사이를 변환할 수 있습니다.So you can actually convert between the two. 날짜의 시간 부분은 1/300초(3.33ms)의 배수에 대한 분수로 저장됩니다.The time portion of a date is stored as a fraction to whole multiples of 1/300 seconds (3.33ms). 1900 ~ 9999 사이의 날짜를 지원합니다.Dates between years 1900 and 9999 are supported.

날짜 – (시간을 제외한) 날짜 부분만 나타냅니다.Date – Represents just a Date (no time portion). 모델로 변환할 때 날짜는 소수 자릿수 값이 0인 날짜/시간 값과 동일합니다.When converted into the model, a Date is the same as a Date/Time value with zero for the fractional value.

시간 – (날짜를 제외한) 시간만 나타냅니다.Time – Represents just Time (no Date portion). 모델로 변환할 때 시간 값은 소수점 왼쪽에 자릿수가 없는 날짜/시간 값과 동일합니다.When converted into the model, a Time value is the same as a Date/Time value with no digits to the left of the decimal place.

날짜/시간/표준 시간대 – UTC 날짜/시간을 나타냅니다.Date/Time/Timezone – Represents a UTC Date/Time. 현재, 모델로 로드할 때 날짜/시간으로 변환됩니다.Currently, it’s converted into Date/Time when loaded into the model.

기간 – 시간의 길이를 나타냅니다.Duration – Represents a length of time. 모델에 로드할 때 10진수 숫자 형식으로 변환됩니다.It’s converted into a Decimal Number Type when loaded into the model. 10진수 형식이므로 날짜/시간 필드에서 가감하여 정확한 결과를 얻을 수 있습니다.As a Decimal Number type it can be added or subtracted from a Date/Time field with correct results. 10 진수 형식이기 때문에 크기를 나타내는 시각화 요소에서 간편하게 사용할 수 있습니다.As a Decimal Number type, you can easily use it in visualizations that show magnitude.

텍스트 형식Text type

텍스트 - 유니코드 문자 데이터 문자열입니다.Text - A Unicode character data string. 텍스트 형식의 문자열, 숫자 또는 날짜일 수 있습니다.Can be strings, numbers or dates represented in a text format. 최대 문자열 길이는 유니코드268,435,456자(256 메가 캐릭터) 또는 536,870,912바이트입니다.Maximum string length is 268,435,456 Unicode characters (256 mega characters) or 536,870,912 bytes.

True/False 형식True/false type

True/False -True 또는 False의 부울 값입니다.True/False – A Boolean value of either a True or False.

공백/Null 형식Blanks/nulls type

공백 - SQL null을 표현 및 대체하는 DAX의 데이터 형식입니다.Blank - Is a data type in DAX that represents and replaces SQL nulls. BLANK 함수를 사용하여 공백을 만들고 ISBLANK 논리 함수를 사용하여 공백을 테스트할 수 있습니다.You can create a blank by using the BLANK function, and test for blanks by using the ISBLANK logical function.

테이블 데이터 형식Table data type

DAX는 집계, 시간 인텔리전스 계산 등과 같이 다양한 함수에서 테이블 데이터 형식을 사용합니다.DAX uses a table data type in many functions, such as aggregations and time intelligence calculations. 어떤 함수에는 테이블에 대한 참조가 필요하고 어떤 함수는 다른 함수에 대한 입력으로 사용할 수 있게 테이블을 반환합니다.Some functions require a reference to a table; other functions return a table that can then be used as input to other functions. 입력으로 테이블이 필요한 여러 함수에서 테이블을 평가하는 식을 지정할 수 있습니다. 어떤 함수에서는 기본 테이블에 대한 참조가 필요합니다.In some functions that require a table as input, you can specify an expression that evaluates to a table; for some functions, a reference to a base table is required. 특정 함수의 요구 사항에 대한 정보는 DAX 함수 참조에서 확인하세요.For information about the requirements of specific functions, see DAX Function Reference.

DAX 수식의 암시적 및 명시적 데이터 형식 변환Implicit and explicit data type conversion in DAX formulas

각 DAX 함수에는 입력 및 출력에 사용되는 데이터 형식에 따라 특정한 요구 사항이 있습니다.Each DAX function has specific requirements as to the types of data that are used as inputs and outputs. 예를 들어 어떤 함수에서는 특정 인수에는 정수를, 다른 인수에는 날짜를 요구하며 다른 함수에서는 텍스트나 테이블이 필요합니다.For example, some functions require integers for some arguments and dates for others; other functions require text or tables.

인수로 지정한 열의 데이터가 함수에서 요구하는 데이터 형식과 호환되지 않으면 대부분의 경우 DAX가 오류를 반환합니다.If the data in the column you specify as an argument is incompatible with the data type required by the function, DAX in many cases will return an error. 그러나 가능한 모든 상황에서 DAX는 암시적으로 데이터를 필요한 데이터 형식으로 변환하려 합니다.However, wherever possible DAX will attempt to implicitly convert the data to the required data type. 예:For example:

  • 문자열로 날짜를 입력할 수 있으며, DAX는 이 문자열을 구문 분석하여 이를 Windows 날짜 및 시간 형식 중 하나로 캐스팅하려 합니다.You can type a date as a string, and DAX will parse the string and attempt to cast it as one of the Windows date and time formats.
  • TRUE + 1을 추가하고 2의 결과를 받을 수 있습니다. TRUE는 암시적으로 숫자 1로 변환되므로 1+1 연산이 수행됩니다.You can add TRUE + 1 and get the result 2, because TRUE is implicitly converted to the number 1 and the operation 1+1 is performed.
  • 두 열에 값을 추가했으며 한 값은 텍스트(“12”), 다른 값이 숫자(12)인 경우 DAX는 암시적으로 문자열을 숫자로 변환하며 더하기를 통해 숫자 결과를 반환합니다.If you add values in two columns, and one value happens to be represented as text ("12") and the other as a number (12), DAX implicitly converts the string to a number and then does the addition for a numeric result. "22" + 22 식은 44를 반환합니다.The following expression returns 44: = "22" + 22.
  • 두 숫자를 연결하려 할 경우 Excel은 이를 문자열로 표현하여 연결합니다.If you attempt to concatenate two numbers, Excel will present them as strings and then concatenate. 12 &34;식은 "1234"를 반환합니다.The following expression returns "1234": = 12 & 34.

암시적 데이터 변환 표Table of implicit data conversions

수행되는 변환 유형은 요청된 연산을 수행하기 전에 필요한 값을 캐스팅하는 연산자에 따라 결정됩니다.The type of conversion that is performed is determined by the operator, which casts the values it requires before performing the requested operation. 이 표에서는 연산자를 나열하며 교차하는 행의 데이터 형식과 연결될 때 열에서 각 데이터 형식에 대해 수행되는 변환을 표시합니다.These tables list the operators, and indicate the conversion that is performed on each data type in the column when it is paired with the data type in the intersecting row.

참고

텍스트 데이터 형식은 이 표에 포함되지 않았습니다.Text data types are not included in these tables. 숫자를 텍스트 형식으로 표현할 때, 일부 경우 Power BI가 숫자 유형을 판단하고 숫자로 표시하려 합니다.When a number is represented as in a text format, in some cases Power BI will attempt to determine the number type and represent it as a number.

더하기(+)Addition (+)

연산자(+)Operator(+) 정수INTEGER 통화CURRENCY 실수REAL 날짜/시간Date/time
정수INTEGER 정수INTEGER 통화CURRENCY 실수REAL 날짜/시간Date/time
통화CURRENCY 통화CURRENCY 통화CURRENCY 실수REAL 날짜/시간Date/time
실수REAL 실수REAL 실수REAL 실수REAL 날짜/시간Date/time
날짜/시간Date/time 날짜/시간Date/time 날짜/시간Date/time 날짜/시간Date/time 날짜/시간Date/time

예를 들어, 통화 데이터와 연결된 더하기 작업에서 실수를 사용할 경우 두 값이 실수로 변환되며 결과도 실수로 반환됩니다.For example, if a real number is used in an addition operation in combination with currency data, both values are converted to REAL, and the result is returned as REAL.

빼기(-)Subtraction (-)

다음 표에서 행 머리글은 피감수(왼쪽), 열 머리글은 감수(오른쪽)를 나타냅니다.In the following table the row header is the minuend (left side) and the column header is the subtrahend (right side).

연산자(-)Operator(-) 정수INTEGER 통화CURRENCY 실수REAL 날짜/시간Date/time
정수INTEGER 정수INTEGER 통화CURRENCY 실수REAL 실수REAL
통화CURRENCY 통화CURRENCY 통화CURRENCY 실수REAL 실수REAL
실수REAL 실수REAL 실수REAL 실수REAL 실수REAL
날짜/시간Date/time 날짜/시간Date/time 날짜/시간Date/time 날짜/시간Date/time 날짜/시간Date/time

예를 들어, 다른 데이터 형식과의 빼기 작업에 날짜를 사용할 경우 두 값이 모두 날짜로 변환되며 반환 값도 날짜입니다.For example, if a date is used in a subtraction operation with any other data type, both values are converted to dates, and the return value is also a date.

참고

데이터 모델은 단항 연산자 -(음수)도 지원하지만 이 연산자는 피연산자의 데이터 형식을 변경하지 않습니다.Data models also support the unary operator, - (negative), but this operator does not change the data type of the operand.

곱하기(*)Multiplication(*)

연산자(*)Operator(*) 정수INTEGER 통화CURRENCY 실수REAL 날짜/시간Date/time
정수INTEGER 정수INTEGER 통화CURRENCY 실수REAL 정수INTEGER
통화CURRENCY 통화CURRENCY 실수REAL 통화CURRENCY 통화CURRENCY
실수REAL 실수REAL 통화CURRENCY 실수REAL 실수REAL

예를 들어, 정수가 곱하기 작업에서 실수와 연결된 경우 두 숫자 모두 실수로 변환되며 반환되는 값도 실수입니다.For example, if an integer is combined with a real number in a multiplication operation, both numbers are converted to real numbers, and the return value is also REAL.

나누기(/)Division (/)

다음 표에서 행 머리글은 분자, 열 머리글은 분모입니다.In the following table, the row header is the numerator and the column header is the denominator.

연산자(/)(행/열)Operator(/) (Row/Column) 정수INTEGER 통화CURRENCY 실수REAL 날짜/시간Date/time
정수INTEGER 실수REAL 통화CURRENCY 실수REAL 실수REAL
통화CURRENCY 통화CURRENCY 실수REAL 통화CURRENCY 실수REAL
실수REAL 실수REAL 실수REAL 실수REAL 실수REAL
날짜/시간Date/time 실수REAL 실수REAL 실수REAL 실수REAL

예를 들어, 정수가 나누기 작업에서 통화 값과 연결된 경우 두 숫자 모두 실수로 변환되며 반환되는 값도 실수입니다.For example, if an integer is combined with a currency value in a division operation, both values are converted to real numbers, and the result is also a real number.

비교 연산자Comparison operators

비교 식에서 부울 값은 문자열 값보다 크고, 문자열 값은 숫자 또는 날짜/시간 값보다 크며, 숫자 및 날짜/시간 값은 동일한 순위로 간주됩니다.In comparison expressions, Boolean values are considered greater than string values and string values are considered greater than numeric or date/time values; numbers and date/time values are considered to have the same rank. 부울 또는 문자열 값에는 암시적 변환이 수행되지 않으며 공백 또는 빈 값은 타 비교 대상 값의 데이터 형식에 따라 0/""/false로 변환됩니다.No implicit conversions are performed for Boolean or string values; BLANK or a blank value is converted to 0/""/false depending on the data type of the other compared value.

다음 DAX 식은 이 동작을 보여줍니다.The following DAX expressions illustrate this behavior:

=IF(FALSE()>"true","Expression is true", "Expression is false"), returns "Expression is true"=IF(FALSE()>"true","Expression is true", "Expression is false"), returns "Expression is true"

=IF("12">12,"Expression is true", "Expression is false"), returns "Expression is true".=IF("12">12,"Expression is true", "Expression is false"), returns "Expression is true".

=IF("12"=12,"Expression is true", "Expression is false"), returns "Expression is false"=IF("12"=12,"Expression is true", "Expression is false"), returns "Expression is false"

다음 표에서 설명한 것처럼 숫자 또는 날짜/시간 형식에 대해 변환이 암시적으로 수행됩니다.Conversions are performed implicitly for numeric or date/time types as described in the following table:

비교 연산자Comparison Operator 정수INTEGER 통화CURRENCY 실수REAL 날짜/시간Date/time
정수INTEGER 정수INTEGER 통화CURRENCY 실수REAL 실수REAL
통화CURRENCY 통화CURRENCY 통화CURRENCY 실수REAL 실수REAL
실수REAL 실수REAL 실수REAL 실수REAL 실수REAL
날짜/시간Date/time 실수REAL 실수REAL 실수REAL 날짜/시간Date/Time

공백, 빈 문자열 및 0 값 처리Handling blanks, empty strings, and zero values

DAX에서 null, 빈 값, 공백 셀 또는 누락된 값은 모두 동일한 새 값 형식인 BLANK로 나타냅니다.In DAX, a null, blank value, empty cell, or a missing value are all represented by the same new value type, a BLANK. BLANK 함수를 사용하여 공백을 만들거나 ISBLANK 함수로 공백을 테스트할 수도 있습니다.You can also generate blanks by using the BLANK function, or test for blanks by using the ISBLANK function.

더하기 또는 연결 등의 연산에서 공백이 처리되는 방식은 개별 함수에 따라 다릅니다.How blanks are handled in operations such as addition or concatenation depends on the individual function. 다음 표에서는 DAX와 Microsoft Excel 식 사이에서 공백 처리 방식의 차이점을 요약합니다.The following table summarizes the differences between DAX and Microsoft Excel formulas, in the way that blanks are handled.

Expression DAXDAX ExcelExcel
BLANK + BLANKBLANK + BLANK BLANKBLANK 0(zero)0(zero)
BLANK + 5BLANK + 5 55 55
BLANK * 5BLANK * 5 BLANKBLANK 0(zero)0(zero)
5/BLANK5/BLANK 무한대Infinity 오류Error
0/BLANK0/BLANK NaNNaN 오류Error
BLANK/BLANKBLANK/BLANK BLANKBLANK 오류Error
FALSE OR BLANKFALSE OR BLANK FALSEFALSE FALSEFALSE
FALSE AND BLANKFALSE AND BLANK FALSEFALSE FALSEFALSE
TRUE OR BLANKTRUE OR BLANK TRUETRUE TRUETRUE
TRUE AND BLANKTRUE AND BLANK FALSEFALSE TRUETRUE
BLANK OR BLANKBLANK OR BLANK BLANKBLANK 오류Error
BLANK AND BLANKBLANK AND BLANK BLANKBLANK 오류Error