다음을 통해 공유


사용자 지정 숫자 형식 문자열

하나 이상의 사용자 지정 숫자 서식 지정자로 구성된 사용자 지정 숫자 서식 문자열을 만들어 숫자 데이터의 서식을 지정하는 방법을 정의할 수 있습니다. 사용자 지정 숫자 서식 문자열은 표준 숫자 형식 문자열이 아닌 모든 형식 문자열입니다.

다음 표에서는 사용자 지정 숫자 서식 지정자 및 각 서식 지정자로 생성되는 샘플 출력을 보여 줍니다. 사용자 지정 숫자 형식 문자열을 사용하는 방법에 대한 추가 정보는 Notes 섹션으로 이동하고, 예제 섹션을 참조하세요.

형식 지정자 속성 설명 예제
"0" 0 자리 표시자 해당 숫자가 있을 경우 0을 해당 숫자로 바꾸고, 그렇지 않으면 결과 문자열에 0을 표시합니다.

추가 정보: "0" 사용자 지정 지정자
1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46
"#" 10진수 자리 표시자 해당 숫자가 있을 경우 "#" 기호를 해당 숫자로 바꾸고, 그렇지 않으면 결과 문자열에 숫자를 표시하지 않습니다.

입력 문자열의 해당 숫자가 중요하지 않은 0이면 결과 문자열에 숫자가 나타나지 않습니다. 예를 들어 0003("####") -> 3입니다.

추가 정보: "#" 사용자 지정 지정자
1234.5678 ("#####") -> 1235

0.45678 ("#.##", en-US) -> .46

0.45678 ("#.##", fr-FR) -> ,46
"." 소수점 결과 문자열에서 소수 구분 기호의 위치를 결정합니다.

추가 정보: "." 사용자 지정 지정자
0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46
"," 그룹 구분 기호 및 숫자 배율 그룹 구분 기호 지정자와 숫자 배율 지정자로 모두 사용됩니다. 그룹 구분 기호로 사용될 경우 각 그룹 사이에 지역화된 그룹 구분 기호 문자를 삽입합니다. 숫자 크기 조정 지정자로 사용될 경우 숫자를 쉼표 단위로 끊어서 1000으로 나눕니다.

추가 정보: "," 사용자 지정 지정자
그룹 구분 기호 지정자:

2147483647 ("##,#", en-US) -> 2,147,483,647

2147483647 ("##,#", es-ES) -> 2.147.483.647

배율 지정자:

2147483647 ("#,#,,", en-US) -> 2,147

2147483647 ("#,#,,", es-ES) -> 2.147
"%" 백분율 자리 표시자 숫자에 100을 곱하고 결과 문자열에 지역화된 백분율 기호를 삽입합니다.

추가 정보: "%" 사용자 지정 지정자
0.3697 ("%#0.00", en-US) -> %36.97

0.3697 ("%#0.00", el-GR) -> %36,97

0.3697 ("##.0 %", en-US) -> 37.0 %

0.3697 ("##.0 %", el-GR) -> 37,0 %
"‰" 천분율 자리 표시자 숫자에 1000을 곱하고 결과 문자열에 지역화된 천분율 기호를 삽입합니다.

추가 정보: "‰" 사용자 지정 지정자
0.03697 ("#0.00‰", en-US) -> 36.97‰

0.03697 ("#0.00‰", ru-RU) -> 36,97‰
"E0"

"E+0"

"E-0"

"E0"

"E+0"

"E-0"
지수 표기법 적어도 하나의 0이 뒤에 오면 지수 표기법을 사용하여 결과의 서식을 지정합니다. "E" 또는 "e" 문자는 결과 문자열에 표시되는 지수 기호의 대/소문자를 나타냅니다. "E" 또는 "e" 문자 뒤에 오는 0의 수에 따라 지수의 최소 자릿수가 결정됩니다. 더하기 기호(+)는 기호 문자가 항상 지수 앞에 온다는 것을 나타냅니다. 빼기 기호(-)는 기호 문자가 음의 지수 앞에만 온다는 것을 나타냅니다.

추가 정보: "E" 및 "e" 사용자 지정 지정자
987654("#0.0e0") -> 98.8e4

1503.92311 ("0.0##e+00") -> 1.504e+03

1.8901385E-16("0.0e+00") -> 1.9e-16
"\", "''", """" 이스케이프 문자 다음 문자 또는 문자가 사용자 지정 형식 지정자가 아닌 리터럴로 해석되도록 합니다.

추가 정보: 이스케이프 문자.
987654 ("\###00\#") -> #987654#

987654 ("'#'##00'#'") -> #987654#

987654 ("""#"""##00"""#"") -> #987654#
'string'

"string"
리터럴 문자열 구분 기호 괄호로 묶인 문자가 변경되지 않은 상태로 결과 문자열에 복사되어야 함을 나타냅니다.

추가 정보: 리터럴 문자
68 ("# 'degrees'") -> 68도

68 ("#' degrees'") -> 68도
; 섹션 구분 기호 양수, 음수 및 0에 따라 별도의 서식 문자열을 사용하여 섹션을 정의합니다.

추가 정보: ";" 섹션 구분 기호
12.345 ("#0.0#;( #0.0#);-\0-") -> 12.35

0 ("#0.0#;( #0.0#);-\0-") -> -0-

-12.345 ("#0.0#;( #0.0#);-\0-") -> (12.35)

12.345 ("#0.0#;( #0.0#)") -> 12.35

0 ("#0.0#;( #0.0#)") -> 0.0

-12.345 ("#0.0#;( #0.0#)") -> (12.35)
기타 다른 모든 문자 문자가 변경되지 않은 상태로 결과 문자열에 복사됩니다.

추가 정보: 리터럴 문자
68 ("# °") -> 68 °

다음 단원에서는 각 사용자 지정 숫자 서식 지정자에 대해 자세히 설명합니다.

"0" 사용자 지정 지정자

"0" 사용자 지정 지정자는 0 자리 표시자 기호로 사용됩니다. 서식을 지정할 값이 서식 문자열의 0이 표시된 위치에 숫자를 가지고 있으면 해당 숫자가 결과 문자열로 복사되고, 그렇지 않으면 결과 문자열에 0이 표시됩니다. 소수점 앞 가장 왼쪽의 0과 소수점 뒤 가장 오른쪽 0의 위치는 결과 문자열에 항상 표시될 자릿수의 범위를 결정합니다.

"00" 지정자를 사용하면 해당 값이 소수점 뒤 첫째 자리에서 반올림되며 항상 0 이상의 정수 값으로 표시됩니다. 예를 들어, 34.5의 서식을 "00"으로 지정하면 결과는 35가 됩니다.

다음 예제에서는 0 자리 표시자가 포함된 사용자 지정 서식 문자열을 사용하여 여러 가지 값을 표시합니다.

let
    Source =
    {
        Number.ToText(123, "00000", ""),
        // Displays 00123

        Number.ToText(1.2, "0.00", ""),
        // Displays 1.20

        Number.ToText(1.2, "00.00", ""),
        // Displays 01.20

        Number.ToText(1.2, "00.00", "da-DK"),
        // Displays 01,20

        Number.ToText(.56, "0.0", ""),
        // Displays 0.6

        Number.ToText(1234567890, "0,0", ""),
        // Displays 1,234,567,890

        Number.ToText(1234567890, "0,0", "el-GR"),
        // Displays 1.234.567.890

        Number.ToText(1234567890.123456, "0,0.0", ""),
        // Displays 1,234,567,890.1

        Number.ToText(1234.567890, "0,0.00", "")
        // Displays 1,234.57
    }
in
    Source

참고 항목

이전 샘플에서 Number.ToText 마지막 매개 변수의 빈 텍스트 값("")은 고정 문화권을 나타냅니다.

표로 이동

"#" 사용자 지정 지정자

"#" 사용자 지정 지정자는 숫자 표시자 기호로 사용됩니다. 서식을 지정할 값이 서식 문자열의 "#" 기호가 표시된 위치에 숫자를 가지고 있으면 해당 숫자가 결과 문자열로 복사되고, 그렇지 않으면 결과 문자열의 해당 위치에 아무 것도 저장되지 않습니다.

이 지정자는 문자열에서 0이 유일한 숫자인 경우에도 유효 자릿수가 아닌 0을 표시하지 않습니다. 표시되는 숫자에서 유효 자릿수인 경우에만 0을 표시합니다.

"##" 서식 문자열을 사용하면 해당 값이 소수점 뒤 첫째 자리에서 반올림되며 항상 0 이상의 정수로 표시됩니다. 예를 들어, 34.5의 서식을 "##"으로 지정하면 결과는 35가 됩니다.

다음 예제에서는 숫자 자리 표시자가 포함된 사용자 지정 서식 문자열을 사용하여 여러 가지 값을 표시합니다.

let
    Source =
    {
        Number.ToText(1.2, "#.##", ""),
        // Displays 1.2

        Number.ToText(123, "#####"),
        // Displays 123

        Number.ToText(123456, "[##-##-##]"),
        // Displays [12-34-56]

        Number.ToText(1234567890, "#"),
        // Displays 1234567890

        Number.ToText(1234567890, "(###) ###-####")
        // Displays (123) 456-7890
    }
in
    Source

빈 숫자 또는 선행 0이 공백으로 대체되는 결과 문자열을 반환하려면 다음 예제와 같이 Text.PadStart 사용하여 필드 너비를 지정합니다.

let
   Source = Text.Format("The value is: '#{0}'", {Text.PadStart(Number.ToText(.324, "#.###"), 5)})
in
   Source

// The example displays the following output if the current culture
// is en-US:
//      The value is: ' .324'

표로 이동

"." 사용자 지정 지정자

"." 사용자 지정 서식 지정자는 결과 문자열에 지역화된 소수 구분 기호를 삽입합니다. 서식 문자열의 첫째 마침표 문자는 서식이 지정될 값에서 소수 구분 기호의 위치를 결정하며, 다른 마침표 문자는 무시됩니다. 서식 지정자가 "."로 끝나는 경우 유효 자릿수만 결과 문자열로 서식이 지정됩니다.

결과 문자열에서 소수 구분 기호로 사용되는 문자가 항상 마침표가 아닌 경우 서식을 제어하는 문화권에 따라 결정됩니다.

다음 예제에서는 "." 서식 지정자를 사용하여 여러 결과 문자열에서 소수점의 위치를 정의합니다.

let
    Source =
    {
        Number.ToText(1.2, "0.00", ""),
        // Displays 1.20

        Number.ToText(1.2, "00.00", ""),
        // Displays 01.20

        Number.ToText(1.2, "00.00", "da-DK"),
        // Displays 01,20

        Number.ToText(.086, "#0.##%", ""),
        // Displays 8.6%

        Number.ToText(Double.From(86000), "0.###E+0", "")
        // Displays 8.6E+4
    }
in
    Source

표로 이동

"," 사용자 지정 지정자

"," 문자는 그룹 구분 기호 지정자와 숫자 배율 지정자로 사용됩니다.

  • 그룹 구분 기호 지정자: 두 개의 10진수 자리 표시자(0 또는 #) 사이에 정수 계열 자릿수의 서식을 지정하는 하나 이상의 쉼표 문자가 지정된 경우 정수 계열 출력 부분의 각 숫자 그룹 사이에 그룹 구분 문자가 삽입됩니다.

    문화권은 숫자 그룹 구분 기호로 사용되는 문자와 각 숫자 그룹의 크기를 결정합니다. 예를 들어, 문자열 "#,#"과 고정 문화권을 사용하여 숫자 1000의 서식을 지정할 경우 "1,000"이 출력됩니다.

  • 숫자 배율 지정자: 명시적 또는 암시적 소수점의 바로 왼쪽에 하나 이상의 쉼표가 지정된 경우 서식이 지정될 숫자는 쉼표 단위로 끊어서 1000으로 나뉩니다. 예를 들어, 문자열 "0,,"을 사용하여 숫자 100000000의 서식을 지정할 경우 "100"이 출력됩니다.

동일한 서식 문자열에 그룹 구분 기호와 숫자 배율 지정자를 함께 사용할 수 있습니다. 예를 들어, 문자열 "#,0,,"과 고정 문화권을 사용하여 숫자 1000000000의 서식을 지정할 경우 "1,000"이 출력됩니다.

다음 예제에서는 쉼표를 그룹 구분 기호로 사용하는 방법을 보여 줍니다.

let
    Source =
    {
        Number.ToText(1234567890, "#,#", ""),
        // Displays 1,234,567,890

        Number.ToText(1234567890, "#,##0,,", "")
        // Displays, 1,235
    }
in
    Source

다음 예제에서는 쉼표를 숫자 크기 조정 지정자로 사용하는 방법을 보여 줍니다.

let
    Source =
    {
        Number.ToText(1234567890, "#,,", ""),
        // Displays 1235

        Number.ToText(1234567890, "#,,,", ""),
        // Displays 1

        Number.ToText(1234567890, "#,##0,,", "")
        // Displays 1,235
    }
in
    Source

표로 이동

"%" 사용자 지정 지정자

서식 문자열의 백분율 기호(%)를 사용하면 서식이 지정되기 전에 숫자를 100으로 곱합니다. 서식 문자열에서 %가 표시된 위치에 있는 숫자에는 지역화된 백분율 기호가 삽입됩니다. 사용되는 백분율 문자는 문화권에 의해 정의됩니다.

다음 예제에서는 "%" 사용자 지정 지정자를 포함하는 사용자 지정 형식 문자열을 정의합니다.

let
    Source = Number.ToText(.086, "#0.##%", "")
    // Displays 8.6%
in
    Source

표로 이동

"‰" 사용자 지정 지정자

형식 문자열의 밀리당 문자(‰ 또는 \u2030)를 사용하면 서식이 지정되기 전에 숫자를 1000으로 곱합니다. 서식 문자열에서 ‰가 표시된 위치에 있는 반환된 문자열에는 적절한 천분율 기호가 삽입됩니다. 사용되는 밀리당 문자는 문화권별 서식 정보를 제공하는 문화권에 의해 정의됩니다.

다음 예제에서는 "‰" 사용자 지정 지정자가 포함된 사용자 지정 서식 문자열을 정의합니다.

let
    Source = Number.ToText(.00354, "#0.##" & Character.FromNumber(0x2030), "")
    // Displays 3.54‰
in
    Source

표로 이동

"E" 및 "e" 사용자 지정 지정자

서식 문자열에 "E", "E+", "E-", "e", "e+" 또는 "e-" 문자열이 표시되고 바로 뒤에 적어도 하나의 0이 오면, 해당 수와 지수 사이에 "E" 또는 "e"가 삽입되는 과학적 표기법으로 서식이 지정됩니다. 과학적 표기법 표시기 뒤에 오는 0의 개수는 이 숫자의 지수로 나타낼 최소 자릿수를 결정합니다. "E+" 및 "e+" 서식은 더하기 기호나 빼기 기호가 항상 지수 앞에 와야 한다는 것을 나타냅니다. "E", "E-", "e" 또는 "e-" 서식은 기호 문자가 음의 지수 앞에만 와야 한다는 것을 나타냅니다.

다음 예제에서는 과학적 표기법 지정자를 사용하여 여러 가지 숫자 값에 서식을 지정합니다.

let
    Source =
    {
        Number.ToText(86000, "0.###E+0", ""),
        // Displays 8.6E+4

        Number.ToText(86000, "0.###E+000", ""),
        // Displays 8.6E+004

        Number.ToText(86000, "0.###E-000", "")
        // Displays 8.6E004
    }
in
    Source

표로 이동

이스케이프 문자

서식 문자열의 "#", "0", ".", ",", "%" 및 "‰" 기호는 리터럴 문자가 아닌 서식 지정자로 해석됩니다. 사용자 지정 서식 문자열의 위치에 따라 대문자 및 소문자 "E"와 + 및 - 기호를 형식 지정자로 해석할 수도 있습니다.

문자가 형식 지정자로 해석되지 않도록 하려면 다음을 수행할 수 있습니다.

  • 백슬래시 앞에 섰습니다.
  • 작은따옴표로 묶습니다.
  • 두 개의 큰따옴표로 묶습니다.

이러한 각 문자는 이스케이프 문자 역할을 합니다. 이스케이프 문자는 뒤에 오는 문자가 변경되지 않은 상태로 결과 문자열에 포함되어야 하는 문자 리터럴임을 나타냅니다.

결과 문자열에 백슬래시를 포함하려면\\처럼 두 개의 백슬래시를 연속해서 입력해야 합니다.

결과 문자열에 작은따옴표를 포함하려면 백슬래시(\')를 사용하여 이스케이프해야 합니다. 이스케이프되지 않은 다른 작은따옴표가 이스케이프된 작은따옴표 앞에 있으면 백슬래시는 대신 표시됩니다('\' 표시 \).

결과 문자열에 큰따옴표를 포함하려면 백슬래시(\"")를 사용하여 두 개의 따옴표를 이스케이프해야 합니다.

다음 예제에서는 이스케이프 문자를 사용하여 서식 지정 작업이 "#", "0" 및 "" 문자를 이스케이프 문자 또는 형식 지정자로 해석하지 못하도록 합니다.

let
    Source =
    {
        Number.ToText(123, "\#\#\# ##0 dollars and \0\0 cents \#\#\#"),
        // Displays ### 123 dollars and 00 cents ###

        Number.ToText(123, "'###' ##0 dollars and '00' cents '###'"),
        // Displays ### 123 dollars and 00 cents ###

        Number.ToText(123, """###"" ##0 dollars and ""00"" cents ""###"""),
        // Displays ### 123 dollars and 00 cents ###

        Number.ToText(123, "\\\\\\ ##0 dollars and \0\0 cents \\\\\\"),
        // Displays \\\ 123 dollars and 00 cents \\\

        Number.ToText(123, "'\\\' ##0 dollars and '00' cents '\\\'"),
        // Displays \\\ 123 dollars and 00 cents \\\

        Number.ToText(123, """\\\"" ##0 dollars and ""00"" cents ""\\\""")
        // Displays \\\ 123 dollars and 00 cents \\\
    }
in
    Source

표로 이동

";" 섹션 구분 기호

세미콜론(;)은 해당 값이 양수인지 여부에 따라 서로 다른 서식을 숫자에 적용하는 조건부 서식 지정자입니다. 이렇게 하려면 사용자 지정 서식 문자열에 세미콜론으로 구분된 최대 세 개의 섹션이 포함되어야 합니다. 다음 표에서는 이러한 섹션에 대해 설명합니다.

섹션 수 설명
한 섹션 형식 문자열이 모든 값에 적용됩니다.
두 섹션 첫째 섹션은 양수 값과 0에 적용되고, 둘째 섹션은 음수 값에 적용됩니다.

서식을 지정할 수가 음수였는데 둘째 섹션의 서식에 따라 반올림한 후에 0이 된 경우, 결과값 0은 첫째 섹션에 따라 서식이 지정됩니다.
세 섹션 첫째 섹션은 양수 값에 적용되고, 둘째 섹션은 음수 값에 적용되며, 셋째 섹션은 0에 적용됩니다.

세미콜론 사이에 아무 것도 없어서 둘째 섹션이 비어 있는 경우에는 첫째 섹션을 0이 아닌 모든 값에 적용합니다.

서식을 지정할 수가 0이 아니었는데 첫째 또는 둘째 섹션의 서식에 따라 반올림한 후에 0이 된 경우, 결과값 0은 셋째 섹션에 따라 서식이 지정됩니다.

섹션 구분 기호는 마지막 값의 서식을 지정할 때 숫자와 연관된 기존 서식을 무시합니다. 예를 들어, 섹션 구분 기호가 사용되면 음수 값은 항상 빼기 기호 없이 표시됩니다. 마지막에 서식을 지정한 값에 빼기 기호를 붙이려면 빼기 기호를 사용자 지정 서식 지정자의 일부로 명시적으로 포함시켜야 합니다.

다음 예제에서는 ";" 서식 지정자를 사용하여 양수, 음수 및 0의 서식을 각각 다르게 지정합니다.

let
    Source =
    {
        Number.ToText(1234, "##;(##)"),
        // Displays 1234

        Number.ToText(-1234, "##;(##)"),
        // Displays (1234)

        Number.ToText(0, "##;(##);**Zero**")
        // Displays **Zero**
    }
in
    Source

표로 이동

문자 리터럴

사용자 지정 숫자 서식 문자열에서 나타나는 서식 지정자는 리터럴 문자가 아닌 서식 지정 문자로 해석됩니다. 여기에는 다음과 같은 문자가 포함됩니다.

다른 모든 문자는 항상 문자 리터럴로 해석되며, 형식 지정 작업에서 변경되지 않고 결과 문자열에 포함됩니다. 구문 분석 작업에서는 입력 문자열의 문자와 정확히 일치해야 하며, 비교 시 대/소문자를 구분합니다.

다음 예제에서는 리터럴 문자 단위(이 경우에는 천)의 일반적인 사용을 한 가지 보여줍니다.

let
    Source = Number.ToText(123.8, "#,##0.0K")
    // Displays 123.8K
in
    Source

문자가 결과 문자열에 포함되거나 입력 문자열에서 성공적으로 구문 분석될 수 있도록 하기 위해 문자를 서식 지정 문자가 아니라 리터럴 문자로 해석되도록 지정하는 두 가지 방법이 있습니다.

  • 서식 지정 문자를 이스케이프하는 방법입니다. 자세한 내용은 이스케이프 문자이동합니다.

  • 전체 리터럴 문자열을 따옴표 아포스트로피로 묶습니다.

다음 예제에서는 사용자 지정 숫자 서식 문자열에서 예약된 문자를 포함하는 두 가지 방법을 사용합니다.

let
    Source =
    {
        Number.ToText(9.3, "##.0\%"),
        // Displays 9.3%

        Number.ToText(9.3, "\'##\'"),
        // Displays '9'

        Number.ToText(9.3, "\\##\\"),
        // Displays \9\

        Number.ToText(9.3, "##.0'%'"),
        // Displays 9.3%

        Number.ToText(9.3, "'\'##'\'"),
        // Displays \9\

        Number.ToText(9.3, "##.0""%"""),
        // Displays 9.3%

        Number.ToText(9.3, "\""##\""")
        // Displays "9"
    }
in
    Source

주의

부동 소수점 무한대 및 NaN

형식 문자열에 관계없이 Decimal.Type, Single.Type 또는 Double.Type 부동 소수점 형식의 값이 무한대, 음수 무한대 또는 숫자(NaN)가 아닌 경우 서식이 지정된 문자열은 현재 적용 가능한 문화권에 지정된 각 Number.PositiveInfinity, Number.NegativeInfinity또는 Number.NaN 상수의 값입니다.

반올림 및 고정 소수점 서식 문자열

고정 소수점 서식 문자열(즉, 과학적 표기법 서식 문자를 포함하지 않는 서식 문자열)의 경우 소수점 오른쪽에 숫자 자리 표시자가 있는 만큼 소수 자릿수로 반올림됩니다. 서식 문자열에 소수점이 없으면 숫자가 가장 가까운 정수로 반올림됩니다. 숫자의 자릿수가 소수점 왼쪽의 10진수 자리 표시자보다 많으면, 초과 숫자가 결과 문자열의 첫째 10진수 자리 표시자 바로 앞에 복사됩니다.

표로 이동

예시

다음 예제에서는 두 개의 사용자 지정 숫자 서식 문자열을 보여 줍니다. 두 경우 모두에서 숫자 자리 표시자(#)는 숫자 데이터를 표시하며, 다른 모든 문자는 결과 문자열에 복사됩니다.

let
    Source =
    {
        Number.ToText(1234567890, "(###) ###-####"),
        // Displays (123) 456-7890

        Number.ToText(42, "My Number = #")
        // Displays My number = 42
    }
in
    Source

표로 이동