FORMAT 函数的自定义数字格式

用户定义的数字格式表达式可以包含一至三个部分(各部分之间用分号分隔)。 如果 Format 函数的 Style 参数包含预定义的数字格式之一,则只允许有一部分。

如果您使用

则结果为

只有一部分

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

两部分

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

三部分

第一部分应用于正值,第二部分应用于负值,第三部分应用于零。

格式规范

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

格式规范

说明

显示不带格式的数字。

0(零字符)

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

如果数字的位数少于格式表达式中零的个数(不管在小数点的哪一侧),将显示前导零或尾随零。 如果小数点分隔符右侧的数字位数多于格式表达式中小数点分隔符右侧的零的个数,将对数字四舍五入,使其小数位数与零的个数一样多。 如果小数点分隔符左侧的数字位数多于格式表达式中小数点分隔符左侧的零的个数,则将显示多出的位数而不作任何修改。

#

数字占位符。 显示一个数字或不显示任何内容。 如果表达式在格式字符串中出现 # 字符的位置有一个数字,则显示该数字,否则该位置什么也不显示。

除了当数字的位数少于格式表达式中小数点分隔符任意一侧的 # 字符数时不显示前导零或尾随零外,该符号的作用类似于零 (0) 数字占位符。

.(圆点字符)

小数点占位符。 小数点占位符确定在小数点分隔符左侧和右侧显示几位数。 如果格式表达式中该符号的左侧只包含 # 字符,则小于 1 的数字以小数点分隔符开头。 若要显示随小数显示的前导零,请使用零作为小数点分隔符左侧的第一个数字占位符。 在某些区域设置中,用逗号作为小数点分隔符。 在格式化输出中用作小数点占位符的实际字符取决于系统所识别的数字格式。 因此,在您的格式中应将句点用作小数点占位符,即使您位于使用逗号作为小数点占位符的区域设置中。 格式化字符串将以适合区域设置的正确格式显示。

%

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

,(逗号字符)

千位分隔符。 千位分隔符将在小数点分隔符左侧具有四位或更多位数的数字中的千位和百位分隔开。 如果格式包含一个由数字占位符(0 或 #)包围的千位分隔符,则指定千位分隔符的标准用法。

一个千位分隔符紧挨小数点分隔符的左侧(无论是否指定小数)或者作为字符串中最右侧的字符表示“通过除以 1000 来将数字按比例减小,并按需要四舍五入”。小于 1,000 但大于或等于 500 的数字显示为 1,小于 500 的数字显示为 0。 此位置有两个相邻千位分隔符表示按一百万倍的比例因子缩小,并且每增加一个分隔符表示另外缩小 1,000 倍。

多个分隔符出现在紧挨小数点分隔符左侧或字符串最右侧位置被视为指定使用千位分隔符。 在某些区域设置中,用句点作为千位分隔符。 在格式化输出中用作千位分隔符的实际字符取决于您的系统所识别的数字格式。 因此,在您的格式中应将逗号用作千位分隔符,即使您位于使用句点作为千位分隔符的区域设置中。 格式化字符串将以适合区域设置的正确格式显示。

例如,考虑以下三个格式字符串:

“#,0.”,该字符串使用千位分隔符将数字一亿的格式设置为字符串“100,000,000”。

“#0,.”,该字符串按 1000 的因子进行缩小,将数字一亿的格式设置为字符串“100000”。

“#,0,.”该字符串使用千位分隔符和按 1000 的因子进行缩小,将数字一亿的格式设置为字符串“100,000”。

:(冒号字符)

时间分隔符。 在某些区域设置中,可能用其他字符表示时间分隔符。 在设置时间值的格式时,时间分隔符用于分隔小时、分钟和秒。 在格式化输出中用作时间分隔符的实际字符取决于您的系统设置。

/(正斜杠字符)

日期分隔符。 在某些区域设置中,可能用其他字符表示日期分隔符。 在设置日期值的格式时,日期分隔符用于分隔年、月和日。 在格式化输出中用作日期分隔符的实际字符取决于您的系统设置。

E-E+e-e+

科学记数法格式。 如果格式表达式在 E-、E+、e- 或 e+ 的左侧至少包含一个数字占位符(0 或 #),则以科学记数法格式显示数字,并在数字与其指数之间插入 E 或 e。 左侧的数字占位符的个数决定了指数中的数字个数。 使用 E- 或 e- 可在负指数的后面放置一个减号。 使用 E+ 或 e+ 可在负指数的后面放置一个减号,在正指数的后面放置一个加号。 还必须在该符号右侧包括数字占位符以获取正确的格式。

- + $ ( )

文字字符。 这些字符将完全按格式字符串中所键入的形式显示。 若要显示所列字符以外的其他字符,请在该字符前加上一个反斜杠 (\) 或将该字符放在双引号 (" ") 中。

\(反斜杠字符)

显示格式字符串中的下一个字符。 若要将具有特殊含义的字符显示为文字字符,请在该字符前加上一个反斜杠 (\)。 反斜杠本身不显示。 使用反斜杠与将下一个字符放在双引号中的作用是相同的。 若要显示反斜杠,请使用两个反斜杠 (\\)。

不能显示为文字字符的字符示例为日期格式字符和时间格式字符(a、c、d、h、m、n、p、q、s、t、w、y、/ 和 :)、数字格式字符(#、0、%、E、e、逗号和句点)和字符串格式字符(@、&、<、> 和 !)。

"ABC"

显示双引号 (" ") 里面的字符串。 若要将字符串包含在代码内的样式参数中,必须将文本放在 Chr (34) 之间(34 为引号 (") 的字符代码)。

下表包含用于表示数字的一些示例格式表达式。 (所有这些示例均假设您的系统区域设置为“英语 - 美国”)第一列包含 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-01

0.00E00

"$#,##0;;\Z\e\r\o"

$5

$-5

$1

注释

如果包含两个连续的分号,则缺少的部分用正值的格式显示。

请参阅

参考

FORMAT 函数

FORMAT 函数的预定义数字格式

FORMAT 函数的自定义日期和时间格式