DAX Text - FORMAT 函数

描述

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

语法

FORMAT (<value>, <format_string>) 

参数

Sr.No. 参数与说明
1

value

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

2

format_string

表示格式样式的字符串。

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

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

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

有关格式化日期和时间的详细信息,请参阅本教程库中的教程 - DAX次。

返回值

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

备注

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

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

示例

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

"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 \o" $5 $-5 $1 Zero

FORMAT 函数的预定义数字格式

下表列出了 Format 函数的格式样式参数中可以使用的预定义数字格式名称。

Sr.No. 格式字符串 &描述
1

"一般数字"

显示不带千位分隔符的数字。

2

"货币"

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

显示小数点分隔符右侧的两位数字。

输出基于系统区域设置。

3

"固定"

在小数点分隔符左侧至少显示一位数字,在小数点分隔符右侧显示两位数字。

4

"标准"

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

5

"百分比"

显示乘以 100 的数字,并在右侧立即附加百分号 (%)。

始终在小数点分隔符右侧显示两位数字。

6

"科学"

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

7

"是/否"

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

8

"真/假"

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

9

"开/关"

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

FORMAT 函数的自定义数字格式

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

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

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

Sr.No. 部分数量 &格式化结果
1

仅一个部分

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

2

两个部分

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

第二部分适用于负值。

3

三个部分

第一部分适用于正值。

第二部分适用于负值。

第三部分适用于零。

如果如果您在分号之间添加了任何内容,则使用正值的格式打印缺失部分。

下表列出了可用于创建用户定义数字格式的字符。

Sr.No. 格式规范和说明
1

显示无格式的数字。

2

0(零字符)

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

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

如果数字的位数少于格式表达式中零的数量(小数点两侧),则显示前导零或尾随零。

如果数字在小数点分隔符右侧的位数多于格式表达式中小数点分隔符右侧的零的数量,则将数字四舍五入为与零的数量相同的小数位数。

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

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

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

此符号的作用类似于 0 位占位符,但如果数字的位数少于格式表达式中小数点分隔符两边的 # 个字符,则不会显示前导零和尾随零。

3

.(点字符)

小数占位符。小数占位符决定小数分隔符左侧和右侧显示多少位数字。

  • 如果格式表达式仅包含此符号左侧的 # 个字符,则小于 1 的数字以小数分隔符开头。

  • 要显示小数的前导零,请使用零作为小数分隔符左侧的第一个数字占位符。

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

4

%

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

5

,(逗号字符)

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

如果格式包含由数字占位符(0 或 #)包围的千位分隔符,则指定千位分隔符的标准用法。千位分隔符位于小数分隔符左侧(无论是否指定小数)或字符串最右边的字符,表示"将数字除以 1,000,并根据需要进行四舍五入。"

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

  • 此位置的两个相邻千位分隔符按 100 万倍缩放,每个额外的分隔符按 1000 倍缩放。

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

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

示例 −

  • "#,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.html