道格拉斯(Douglas)在使用所需的自定义格式时遇到了一些问题。他创建了一种自定义格式,该格式以他想要的方式显示大量数字,例如,$ 1,000,000显示为$ 1.0M,$ 1,000显示为$ 1.0K。此格式如下:

[> 1000000] $#。0 ,,“ M”; [> 1000] $#。0,“ K”; $#,## 0.0。道格拉斯想知道如何调整自定义格式,以使负数以相同的方式显示,但周围带有括号的红色显示,例如($ 1.0K)。

不幸的是,使用单个自定义格式无法实现您想要的操作。原因是因为单个自定义格式只能包含四个条件,每个条件之间用分号分隔。这是自定义格式的一般语法:

positive; negative; zero; text

请注意,当值是正数时使用第一种格式,当值是负数时使用第二种格式,当值正好为零时使用第三种格式,在值是文本时使用第四种格式。尽管这是自定义格式的常规语法,但是您可以以自己的方式“捏造”格式。考虑您使用的格式:

[>1000000]$#.0,,"M";[>1000]$#.0,"K";$#,##0.0

请注意,根据一般语法,第一个分号之前的格式将用于正值,下一个格式将用于负值,第三个用于零值。但是,这不是Excel转换此自定义格式的方式。它将其翻译为“如果大于1,000,000,请执行此操作;如果大于1,000,请执行此操作;否则,请执行此操作”。格式中没有正负含义。实际上,任何负值都将被视为默认处理,即第三种格式。

您试图做的是定义两个积极的条件(一个代表百万,一个代表数千)和两个消极的条件(再次代表百万和数千)。无论您如何尝试将其组合在一起,都无法以单一的自定义格式完成此操作。相反,您应该使用两种自定义格式,例如:

[>=1000000]$#.0,,"M ";[>=1000]$#.0,"K ";$#,##0.0 [Red][<=-1000000]($#.0,,"M");[Red][<=-1000]($#.0,"K");[Red]($#,##0.0)

对于正值,将使用第一种格式;它是技巧提示中建议的原始格式的变体。第二种格式应与负值一起使用。这些自定义格式将需要根据单元格中的值手动应用。

要获得所需的格式,这似乎需要完成很多工作。可以创建一个应用格式的宏,但是该宏并不是一件容易的事。它将需要检查单元格中的值是什么,选择正确的格式,构造格式,将其填充为该单元格的自定义格式,然后移至下一个单元格。

但是,您可以做一件事-您可以将自定义格式的使用与Excel的条件格式设置功能结合在一起。在工作表中设置以下三种自定义格式:

_($#.0_K_);[Red]($#.0_K);;@ _($#.0,"K"_);[Red]($#.0,"K");;@ _($#.0,,"M"_);[Red]($#.0,,"M");;@

然后,您可以使用条件格式设置功能(功能区的“主页”选项卡|条件格式|管理规则)来定义六个不同的格式规则。单击“新建规则”按钮开始定义每个规则时,将在“新建格式规则”对话框的顶部选择“仅格式化包含的单元格”。这是您将定义的六个规则:

Cell Value <= -1000000 Cell Value >= 1000000 Cell Value between -999999 and -1000 Cell Value between 1000 and 999999 Cell Value between -999 and -1 Cell Value between 0 and 999

定义每个规则时,将在“新建格式规则”对话框中单击“格式”按钮。这将显示“设置单元格格式”对话框,您应在其中单击“数字”选项卡。您可以在此处选择“自定义”类别,然后选择定义的三种自定义格式之一。

以下是您应该选择的选项:

  • 对于上面列出的前两个条件格式设置规则,请选择上面列出的第三个自定义格式。

  • 对于上面列出的第三和第四条条件格式设置规则,请选择上面列出的第二种自定义格式。

  • 对于上面列出的第五和第六个条件格式设置规则,请选择上面列出的第一个自定义格式。

而已;条件格式设置规则将对您的值范围进行测试,然后对这些数字应用适当的自定义格式。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(10227)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: