DAX文本 - FORMAT 函数



描述

根据指定的格式将值转换为文本。

语法

FORMAT (<value>, <format_string>) 

参数

序号 参数及描述
1

一个值或表达式,计算结果为单个值。

2

格式字符串

表示格式样式的字符串。

  • 要格式化数字,可以使用预定义的数字格式或创建用户定义的数字格式。

请查看本章末尾给出的部分 - FORMAT 函数的预定义数字格式和自定义数字格式。

  • 要格式化日期和时间,可以使用预定义的日期/时间格式或创建用户定义的日期/时间格式。

请参考本教程库中的教程 – DAX,了解有关格式化日期和时间的详细信息。

返回值

包含根据 format_string 定义的格式的值的字符串。

备注

  • 如果值为 BLANK (),FORMAT 函数将返回空字符串。

  • 如果 format_string 为 BLANK (),则值将使用“常规数字”或“常规日期”格式进行格式化(根据值数据类型)。

示例

下表显示了使用第一行中给出的第一个参数值和第一列中给出的 format_string 的 FORMAT 函数的结果。请参考此表下方的部分以了解格式字符串。

"5" "-5" "0.5" "0"
零长度字符串("") 5 -5 0.5 0
0 5 -5 1 0
0.00 5.00 -5.00 0.50 0.00
#,##0 5 -5 1 0
$#,##0;($#,##0) $5 ($5) $1 $0
$#,##0.00;($#,##0.00) $5.00 ($5.00) $0.50 $0.00
0% 500% -500% 50% 0%
0.00% 500.00% -500.00% 50.00% 0.00%
0.00E+00 5.00E+00 -5.00E+00 5.00E-01 0.00E+00
0.00E-00 5.00E00 -5.00E00 5.00E-1 0.00E00
"$#,##0;;\Z\e\r\o" $5 $-5 $1

FORMAT 函数的预定义数字格式

下表标识了可按名称为 Format 函数的格式样式参数使用的预定义数字格式名称。

序号 格式字符串及描述
1

"常规数字"

显示没有千位分隔符的数字。

2

"货币"

显示带有千位分隔符的数字(如果适用)。

显示小数点右边两位数字。

输出基于系统区域设置。

3

"固定"

显示小数点左边至少一位数字,右边两位数字。

4

"标准"

显示带有千位分隔符的数字,小数点左边至少一位数字,右边两位数字。

5

"百分比"

显示乘以 100 并附加百分号 (%) 的数字。

始终显示小数点右边两位数字。

6

"科学计数法"

使用标准科学计数法,提供两位有效数字。

7

"是/否"

如果数字为 0,则显示否。否则,显示是。

8

"真/假"

如果数字为 0,则显示假。否则,显示真。

9

"开/关"

如果数字为 0,则显示关。否则,显示开。

FORMAT 函数的自定义数字格式

用户定义的数字格式表达式可以包含一个到三个用分号分隔的部分。

如果 Format 函数的 format_string 参数包含预定义的数字格式之一,则只允许一个部分。

下表显示了格式化时如何应用这些部分。

序号 部分数量及格式结果
1

只有一部分

格式表达式应用于所有值。

2

两部分

第一部分应用于正值和零。

第二部分应用于负值。

3

三部分

第一部分应用于正值。

第二部分应用于负值。

第三部分应用于零。

如果包含没有任何内容的分号,则使用正值的格式打印缺失的部分。

下表标识了您可以用来创建用户定义的数字格式的字符。

序号 格式说明及描述
1

显示没有格式化的数字。

2

0(零字符)

数字占位符。显示数字或零。

如果表达式在格式字符串中零出现的位置有数字,则显示该数字。否则,在该位置显示零。

如果数字的小数点左边的位数少于格式表达式中小数点左边零的位数,则显示前导零。如果数字的小数点右边的位数少于格式表达式中小数点右边零的位数,则显示尾随零。

如果数字的小数点右边的位数多于格式表达式中小数点右边零的位数,则将数字四舍五入到与零的位数相同的位数。

如果数字的小数点左边的位数多于格式表达式中小数点左边零的位数,则显示多余的数字,而不进行修改。

  • 如果表达式在格式字符串中 # 字符出现的位置有数字,则显示该数字。

  • 否则,在该位置不显示任何内容。

此符号的作用类似于 0 数字占位符,不同之处在于,如果数字的小数点左边或右边的位数少于格式表达式中小数点左边或右边的 # 字符的位数,则不显示前导零和尾随零。

3

。(点字符)

小数占位符。小数占位符决定显示小数点左边和小数点右边的位数。

  • 如果格式表达式中此符号左边只有 # 字符,则小于 1 的数字以小数点开头。

  • 要显示带有小数的数字的前导零,请使用零作为小数点左边第一个数字占位符。

在某些区域设置中,逗号用作小数分隔符。格式化输出中用作小数占位符的实际字符取决于您的系统识别的数字格式。因此,即使您使用逗号作为小数分隔符的区域设置,也应在格式中使用句点作为小数占位符。格式化字符串将以适合该区域设置的正确格式显示。

4

%

百分比占位符。将表达式乘以 100。百分号 (%) 将插入在其在格式字符串中出现的位置。

5

,(逗号字符)

千位分隔符。千位分隔符将小数点左边有四位或更多位的数字中的千位与百位分开。

如果格式包含由数字占位符 (0 或 #) 包围的千位分隔符,则指定千位分隔符的标准用法。小数点左边紧挨着的小数分隔符(无论是否指定小数)或字符串中最右边的字符表示“通过将其除以 1,000 来缩放数字,根据需要进行舍入”。

  • 小于 1,000 但大于等于 500 的数字显示为 1,小于 500 的数字显示为 0。

  • 在此位置的两个相邻的千位分隔符按一百万的系数进行缩放,每个附加的分隔符再乘以 1,000。

  • 除小数点左边紧挨着的位置或字符串中最右边的位置之外,任何位置的多个分隔符都仅被视为指定使用千位分隔符。

在某些区域设置中,句点用作千位分隔符。格式化输出中用作千位分隔符的实际字符取决于您的系统识别的数字格式。因此,即使您使用句点作为千位分隔符的区域设置,也应在格式中使用逗号作为千位分隔符。格式化字符串将以适合该区域设置的正确格式显示。

示例 -

  • "#,0." 使用千位分隔符将 1 亿这个数字格式化为字符串“100,000,000”。

  • "#0,." 使用一千的系数进行缩放,将 1 亿这个数字格式化为字符串“100000”。

  • "#,0,." 使用千位分隔符和一千的系数进行缩放,将 1 亿这个数字格式化为字符串“100,000”。

6

:(冒号字符)

时间分隔符。时间分隔符在格式化时间值时分隔小时、分钟和秒。

在某些区域设置中,其他字符可能用于表示时间分隔符。格式化输出中用作时间分隔符的实际字符由您的系统设置确定。

7

/(正斜杠字符)

日期分隔符。日期分隔符在格式化日期值时分隔日、月和年。

在某些区域设置中,其他字符可能用于表示日期分隔符。格式化输出中用作日期分隔符的实际字符由您的系统设置确定。

8

E-、E+、e-、e+

科学计数法。

如果格式表达式在 E-、E+、e- 或 e+ 的左边至少有一个数字占位符 (0 或 #),则数字将以科学计数法显示,并且 E 或 e 将插入在数字及其指数之间。

  • 左边的数字占位符的数量决定指数中的数字位数。
  • 使用 E- 或 e- 将负号放在负指数旁边。
  • 使用 E+ 或 e+ 将负号放在负指数旁边,将正号放在正指数旁边。
  • 您还必须在此符号右边包含数字占位符才能获得正确的格式。
9

-+$()

文字字符。这些字符将完全按在格式字符串中键入的方式显示。

要显示除列出的字符以外的其他字符,请在其前面加上反斜杠 (\) 或将其括在双引号 (" ") 中。

10

\(反斜杠字符)

显示格式字符串中的下一个字符。要将具有特殊含义的字符显示为字面字符,请在其前面加上反斜杠 (\)。

  • 反斜杠本身不会显示。
  • 使用反斜杠与将下一个字符括在双引号中相同。
  • 要显示反斜杠,请使用两个反斜杠。

但是,某些字符无法显示为字面字符。例如:

  • 日期格式和时间格式字符 (a、c、d、h、m、n、p、q、s、t、w、y、/ 和 :)
  • 数字格式字符 (#、0、%、E、e、逗号和句点)
  • 字符串格式字符 (@、&、<、> 和 !)
11

"ABC"

显示双引号 (" ") 内的字符串。要从代码中在样式参数中包含字符串,必须使用 Chr(34) 将文本括起来 (34 是引号 (") 的字符代码)。

dax_functions_text.htm
广告