Excel自定义数字格式详解数字格式是单元格格式中最有用的功能之一,专门用于对单元格数值进行格式化。单击菜单“格式”→“单元格”,或者按Ctrl+1组合键,用户可以在“单元格格式”对话框的“数字”选项卡中看到有关数字格式的各项设置,如图68-1所示。通过选择不同的格式设置,甚至应用自定义的格式,能够让单元格的显示更加符合它的表达目标。图68-1“单元格格式”对话框中的“数字”选项卡注意无论为单元格应用了何种数字格式,都只会改变单元格的显示形式,而不会改变单元存储的真正内容。反之,用户在工作表上看到的单元格内容,并不一定是其真正的内容,而可能是原始内容经过各种变化后的一种表现形式。如果用户需要在改变格式的同时也改变实际内容,需要借助TEXT或其他函数来实现。68-1Excel内置的数字格式Excel内置的数字格式多种多样,能够满足用户在一般情况下的需要。下面用几个例子来说明同样的数字被设置为不同的数字格式后,显示效果会有哪些改变。假设一个单元格中有数字1023.4,在默认情况下,Excel不对单元格设置任何数字格式,此时的格式名称为“常规”,数值按照它的真实面貌显示出来。用户在“单元格格式”对话框的“数字”选项卡中可以看到一个“示例”项目,它可以在用户单击“确定”按钮以前就显示当前单元格的数值在应用了指定的数字格式以后的样式,如图68-2所示。图68-2“常规”数字格式就是没有任何格式在“分类”列表框中选择“数值”项,然后勾选“使用千位分隔符”复选框,示例内容会发生改变,如图68-3所示。图68-3“数值”数字格式在“分类”列表框中选择“货币”项,然后在“货币符号(国家/地区)”列表框中选择“¥中文(中国)”,则示例内容将再次发生改变,如图68-4所示。图68-4“货币”数字格式以下是在“分类”列表框中选择“百分比”项后的示例内容,如图68-5所示。图68-5“百分比”数字格式在“分类”列表框选择“分数”项,示例内容中的数值以分数形式显示,如图68-6所示。图68-6“分数”数字格式“分类”列表框中还有许多其他项目,每个项目中又有多个参数可选,读者可以自己进行尝试,以找到符合需要的最佳格式。68-2创建自定义数字格式如果Excel内置的数字格式无法满足用户在实际工作中的需求,还可以创建自定义数字格式。在“单元格格式”对话框中,选择“分类”为“自定义”,如图68-7所示。图68-7自定义数字格式在“类型”文本框中输入自定义的数字格式代码,或者修改原有格式代码。单击“确定”即完成。在“类型”下方的列表框中,已经有许多的格式代码,这些代码就是Excel内置的数字格式所对应的格式代码,或是由用户成功创建的自定义数字格式的格式代码。如果用户先在“分类”列表框中选定一个内置的数字格式,然后再选定“自定义”项,就能够在“类型”文本框中看到与之对应的格式代码。在原有格式代码的基础上进行修改,能够更快速地得到自己的自定义格式代码。68-3自定义数字格式的代码组成规则许多Excel用户可能不了解自定义数字格式能够让他们几乎随心所欲地显示单元格数值,或者因为害怕面对长长的格式代码而放弃这个有用的工具。而实际上,自定义数字格式代码并没有想像中那么复杂和困难,只要掌握了它的规则,就很容易读懂和书写格式代码来创建自定义数字格式。自定义格式代码可以为4种类型的数值指定不同的格式:正数、负数、零值和文本。在代码中,用分号来分隔不同的区段,每个区段的代码作用于不同类型的数值。完整格式代码的组成结构为:“大于条件值”格式;“小于条件值”格式;“等于条件值”格式;文本格式在没有特别指定条件值的时候,默认的条件值为0,因此,格式代码的组成结构也可视作:正数格式;负数格式;零值格式;文本格式用户并不需要每次都严格按照4个区段来编写格式代码,只写1个或2个区段也是可以的。表68-1中列出了没有按4区段写代码时,代码结构的变化。表68-1自定义数据格式代码结构规则区段数代码结构1格式代码作用于所有类型的数值2第1区段作用于正数和零值,第二区段作用于负数3第1区段作用于正数,第二区段作用于负数,第三区段作用于零值下面有一个自定义数字格式代码的例子,它针对4种不同类型的数值定义了不同的格式:#,##0.00_;[红色]-#,##0.00;[绿色]G/通用格式;“@”图68-8是Excel中应用了这种数字格式的单元格的显示。图68-8自定义数字格式的单元格的显示68-4常用自定义数字格式的代码与示例表68-2常用自定义数字格式的代码与示例代码注释与示例G/通用格式不设置任何格式,按原始输入的数值显示#数字占位符,只显示有效数字,不显示无意义的零值0数字占位符,当数字比代码的数量少时,显示无意义的0从上图可见,可以利用代码0来让数值显示前导零,并让数值固定按指定位数显示。下图是使用#与0组合为最常用的带小数的数字格式?数字占位符,需要的时候在小数点两侧增加空格;也可以用于具有不同位数的分数.小数点%百分数,千位分隔符E科学计数符号\显示格式里的下一个字符续表代码注释与示例*重复下一个字符来填充列宽_留出与下一个字符等宽的空格利用这种格式可以很容易地将正负数对齐“文本”显示双引号里面的文本@文本占位符,如果只使用单个@,作用是引用原始文本如果使用多个@,则可以重复文本[颜色]颜色代码「颜色」可以是[black]/[黑色]、[white]/[白色]、[red]/[红色]、[cyan]/[青色]、[blue]/[蓝色]、[yellow]/[黄色]、[magenta]/[紫红色]或[green]/[绿色]要注意的是,在英文版用英文代码,在中文版则必须用中文代码[颜色n]显示Excel调色板上的颜色,n是0~56之间的一个数值[条件值]设置格式的条件有关日期与时间方面的自定义格式方法,请参阅技巧69。日期与时间是用户在Excel中经常需要处理的一类数值,在不同的报告中,会使用不同的日期格式来表示它们。在默认情况下,当用户在单元格中输入日期或时间的时候,Excel会使用系统短日期格式来显示。更改系统日期格式设置的方法如下。单击Windows的开始菜单→“设置”→“控制面板”。在控制面板”对话框中双击“区域和语言选项”图标。在“区域和语言选项”对话框中单击“自定义”按钮,然后可以分别对系统日期格式与时间格式进行设置,如图69-1所示。图69-1系统日期与时间格式的设置注意在这里的更改,会影响到多个应用程序而不仅仅是Excel。Excel也内置了许多日期与时间类的格式,在“单元格格式”对话框的“数字”选项卡中,用户可以在“分类”列表框中选择“日期”或“时间”项下面的某种格式并应用它们如图69-2所示。用户还可以自定义日期与时间类的数字格式,只是格式代码会简单很多。表69-1介绍了用于定义日期与时间的代码,关于如何创建自定义数字格式,请参阅68-2小节。图69-2Excel内置的日期与时间格式表69-1日期与时间类自定义数字格式代码代码注释m使用没有前导零的数字来显示月份(1~12)mm使用有前导零的数字来显示月份(01~12)mmm使用英文缩写来显示月份(Jan~Dec)mmmm使用英文全称来显示月份(January~December)mmmmm显示月份的英文首字母(J~D)d使用没有前导零的数字来显示日期(1~31)dd使用有前导零的数字来显示日期(01~31)ddd使用英文缩写来显示星期几(Sun~Sat)dddd使用英文全称来显示星期几(Sunday~Saturday)aaaa使用中文来显示星期几(星期一~星期日)aaa使用中文显示星期几(一~日),不显示“星期”两字yy使用两位数显示年份(00~99)yyyy使用4位数显示年份(1900~9999)h使用没有前导零的数字来显示小时(0~23)hh使用有前导零的数字来显示小时(00~23)m使用没有前导零的数字来显示分钟(0~59)mm使用有前导零的数字来显示分钟(00~59)s使用没有前导零的数字来显示秒钟(0~59)ss使用有前导零的数字来显示秒钟(00~59)[]显示超出进制的时间(如大于24的小时数或大于60的分与秒)AM/PM上午/下午使用12小时制显示小时图69-3中用上述代码创建了一些常用的实例,其中的“原始数值”是日期或时间的序列值。图69-3日期/时间自定义格式实例在本技巧中,读者可以学习到一些自定义数字格式的经典实例。有关自定义数字格式的创建与应用方法,请参阅技巧68。70-1零值不显示单击菜单“工具”→“选项”,在“选项”对话框的“视图”中,如果取消勾选“零值”复选框,Excel将不显示当前工作表中的零值。利用自定义数字格式,用户不但能够实现同样的效果,而且能够让工作表中的一部分单元格不显示零值而其他的单元格仍然显示零值。G/通用格式;G/通用格式;上面的格式代码中,第3区段留空,这样就可以使零值显示为空白。当然,对应于正数与负数的第1、2区段,也可以另行定义格式。70-2快速放缩数值许多用户在工作中常常需要处理很大的数字,利用下面的自定义数字格式,能够在不改变数值本身的同时,把它们进行缩放,如图70-1所示。图70-1使用自定义数字格式缩放数值70-3智能显示百分比下面的自定义数字格式只让小于1的数字按“百分比”格式显示,大于等于1的数字使用标准格式显示,同时还让所有的数字排列整齐,如图70-2所示。图70-2智能显示百分比格式代码:[1]0.00%;#.00_%这段代码有两个区段,第1个区段使用了一个判断,对应数值小于1时的格式,第2个区段则对应不小于1时的格式。在第2个区段中,百分号前使用了一个下划线,目的是保留一个与百分号等宽的空格。70-4显示分数Excel内置了一些分数的格式,用户还可以使用自定义数字格式得到更多分数的表示方法,比如在显示的时候加上“又”字、加上表示单位的符号,或者使用一个任意的数字作为分母,如图70-3所示。图70-3更多显示分数的自定义数字格式有关分数的其他信息,请参阅技巧54。70-5隐藏某些类型的内容可以使用自定义数字格式隐藏某些类型的输入内容,或者把某些类型的输入内容用特定的内容来替换,如图70-4所示。图70-4使用自定义数字格式隐藏某种类型的数值在技巧68中谈到过:无论为单元格应用了何种数字格式,都只会改变单元格的显示内容,而不会改变单元存储的真正内容。因此,Excel没有提供直接的方法来让用户得到自定义数字格式的显示值。如果复制一个有格式的单元格到另一个单元格,用户只能得到原始数值。但是,仍有多种技巧可以帮助用户达到这一目的,下面介绍一种最简单有效的方法。选定应用了数字格式的单元格或单元格区域。快速地连续两次按Ctrl+C组合键,Office剪贴板出现在任务窗格中,如图71-1所示。图71-1连续两次按Ctrl+C会让Office剪贴板出现选定目标单元格或单元格区域,单击Office剪贴板中刚才复制项目旁边的下拉箭头,在弹出的菜单中选择“粘贴”命令,如图71-2所示。这样,原始区域的数据会被粘贴到目标区域。图71-2从Office剪贴板粘贴数值到目标区域单击菜单“编辑”→“选择性粘贴”,在“选择性粘贴”对话框中选择“文本”,然后单击“确定”,如图71-3所示。图71-3“选择性粘贴”对话框中选择“文本”经过两次粘贴,用户最终可以得到与原始区域显示值完全相同的内容。