Excel 的自定义单元格格式 ( 笔记 )

作者: , 共 1170 字

Excel 中可设置每个单元格显示数字和文本的格式:

Excel设置单元格数字格式的界面

用来自定义单元格格式的字符串的完整格式为:

[条件1][颜色1]数字格式1;[条件2][颜色2]数字格式2;[颜色3]数字格式3;[颜色4]文本格式4

这个字符串可分为四区段,以分号";"隔开。如果单元格里为数字,则当数字满足条件 1 时使用颜色 1 和格式 1 ,当满足条件 2 时使用颜色 2 和格式 2 ,如果数字既不满足条件 1 也不满足条件 2 ,则使用颜色 3 和格式 3 ;如果单元格里为文本,则直接使用文本格式 4。

1. 四区段默认值

这四部分不需要写完。默认情况分为两种情况。如果区段 1 中直接指定了条件 1 ,那么省略的区段默认为「通用格式」,即不设置任何格式,按原始输入的数值显示。如果没有直接指定条件 1 ,那么缺失的数字格式 2 和数字格式 3 都默认等同于数字格式 1 ,文本格式 4 则默认为通用格式。

2. 格式条件

自定义格式中的条件只能使用><>=<<>。比如将单元格格式设置为 [<=60][红色]0.0;[>100][绿色]0.00;[黄色]-;[蓝色]@

条件 1 和条件 2 都可以被省略。当未指定时,条件 1 默认为>0,条件 2 默认为<0。即四个区段中,第一区段用于正数,第二区段用于负数,第三区段用于 0。

3. 格式颜色

每个区段中,可以设置该区段对应的颜色。单元格数字格式的颜色设置优先于单元格本身的文字颜色。该设置可被省略,此时显示为单元格本身的文字颜色。

颜色可以使用以下八种颜色:

[ 黑色 ] [ 蓝色 ] [ 蓝绿色 ] [ 绿色 ] [ 洋红色 ] [ 红色 ] [ 白色 ] [ 黄色 ]

除此之外,还可以使用[颜色#],其中 # 为 0 到 56 的整数。若为 0 ,则代表无颜色。其它 56 个数字与颜色的对应关系如下:

Excel的调色板颜色与序号的对应关系

4. 数字格式

在大多数单元格格式中,条件和颜色都忽略不写,数字格式这一段才是更重要的。

Excel常见的自定义数字格式代码与示例

5. 一些常用的格式

效果 格式
不显示单元格内容,类似方法可只显示数字等 ;;;
不显示绝对值小于 0.01 的数 [>0.01]0;[<-0.01]0;-;@
1 显示为女, 2 显示为男 [=1]"女";[=2]"男";
让数字右对齐时与右边界保持一定间距 0.00_)
让 0 值显示为"-"号并与小数点对齐 0.0%;-0.0%;-))
显示以万为单位,保留 1 位小数 #!.0,"万"
将 20121011 转换为日期格式 0000"-"00"-"00
股市规则:大于 0 显示红色,小于 0 显示绿色 [ 红色 ]0.00%;[ 绿色 ]-0.00%;-))_)

Q. E. D.

类似文章:
键盘流(指尽量使用键盘,少动用鼠标,尤其不要在鼠标和键盘之间来回切换)是我追求的目标。我工作中用的最多的软件是 Excel ,写代码写的最多的是 Excel/VBA。用得多了自然比较关注工作效率,所以我在 Excel 键盘流上略有心得,这里给大家分享一下。网上有很全的快捷键列表,但那不是我想写的,因为太多记不下来不实用。这里只列举一下我在实际工作中的的确确总是在用的,为自己方便,也共享给大伙们。
之前对普通 Excel 文件,我都保存为默认的 xlsx 格式,带 vba 的保存为 xlsm 格式。最近从同事那里见到一个高大上的 excel 文件格式: xlsb。我学习了一下,觉得甚为强大,在此推荐一下。
编程 » Excel, VBA
效果图:
如果一个日期(或者时间),如果用字符串,比如"2010-10-04"的形式,各个系统都没有什么区别。在某些时候,将日期用数字表示,将大大增加对日期查找、比较的效率。而如果用数字来表示日期,在不同的系统之间差别就大了。
相似度: 0.070
编程 » Excel, VBA
Excel VBA 出错时给出的错误信息极少,需要充分利用各种工具来进行调试。
最近用 Matlab 写了个东西,运行效率不如我意。用 Profiler 跟踪了一下,结果让我大吃一惊。其中三分之一的时间花费在 datestr 这个函数上,六分之一的时间花费在 save 和 load 数据上。这里先谈前一个问题,关于 save 和 load 的效率以后再谈。
编程 » Excel, 数据库
在前面的文章里,我已经提到Excel 数据本身可以当做一张 SQL 查询的数据表,并在 Excel 内进行数据库运算操作。数据库查询函数可以用我之前写的Excel 数据库操作函数类。我们可以用以下方式
最近老遇到一个奇怪的问题。在 VS 2013 编译时,爆出很多警告:
Excel 多表合并和查询是一个应用很广泛的问题。下面是一个简单的例子,我们需要从两张数据表里,得出每个行业的股票波动率平均值。第一个数据表保存了股票和行业的对应关系,有两列,第一列为股票名,第二列为每只股票对应的行业。第二张表保存了各个股票在各个交易日的收盘价和前收盘价,有四列,第一列是股票名,第二列为交易日,第三列和第四列分别为股票在这个交易日的前收盘价和收盘价。
我将该问题重新提交到了 Microsoft Community ,有类似问题的请帮忙去点一下「我也是」(访问这里),督促微软早日发布补丁解决此问题。
编程 » Java, Matlab
Matlab 2008b 才开始引入 containers.Map ,这是 Matlab 唯一的数据结构(这里的数据结构是指自带一定逻辑性的数据结构,不包括普通数据类型)。如果要有其它,比如 Queue、Set 等数据结构,只能自己编写一个。File Exchange 上有不少人做过这个工作,我也写过Queue、List、Vector 的 Matlab 对象。不过 Matlad 的面向对象编程效率极低,这种方法只能用于不太注重效率的场合。解决这个问题的另外一个方法是使用 Java 对象。
这一两年,股权质押融资发展非常迅速,其风险却没有被充分认识。