程序员心中的格子:衬衫由此可见,表格是Excel本身最重要的表现形式,而今天我们要说到的单元格,也就是组成表格最基本的元素,俗称“格子”。
球迷心中的格子:格里兹曼在实际使用中,我们可以对单元格进行复制、剪切、粘贴,或者输入公式、添加链接等等操作,而单元格格式则应该是我们认知这些操作之前,首先需要了解和掌握的。因为你必须知道,你不能用Sum公式去求和一列文本(文字或者是以文本形式储存的数字)。
从“1”开始
现在很多职位都需要我们拥有从“0”到“1”的能力,能够开创新的业务、流程,等等。
我们此次不从0开始,而是要先从1展开。
当我们在一个单元格输入“1”,它会默认为常规格式,显示成数字“1”。而当我们点击键盘的快捷键Ctrl+1(先按Ctrl再按1)时,可以调出单元格格式的菜单,并且一般会默认停留在数字选项卡下。
我们依次选择不同的数字格式时,可以看到右侧的示例不断变化。假如我们选择百分比格式,并点击确定后退出,那么可以看到单元格显示为“100%”——我们知道在数学上1=100%——因此可以推测单元格格式只是调整了单元格中,数字的显示样式,并不会真正改变这个数字。
而当我们将单元格格式修改成日期,那么单元格会显示为“1900/1/1”。这里需要着重提到的是,Excel中的日期,实际上也是以数字的形式存在的。通俗说来,在Excel中,数字“1”等于日期“1900/1/1”,而数字2则等于1900/1/2。从1900年1月1日计为1开始,数字每增加1,则代表日期增加1天。
此时会有抖机灵的一问:那数字0呢?在Excel中,数字0不能代表1899年12月31日,如果把0改成日期格式,则会显示为“1900/1/0”这样一个没有意义的日期。因此,小于1的数字在Excel中不能作为有效的日期。
那抖机灵的又一问:数字1.5呢?准确来讲,数字1代表的是1900年1月1日0点0分0秒。而数字1.5则代表这个时间增加了0.5天,也就是整整12个小时。因此,当我们把数字1.5修改成时间格式,则代表的是1900年1月1日12:00:00。
综上,我们确定一个知识点:单元格格式会改变单元格内数字的显示样式,但不会改变数字的实际值,因此各个单元格格式之间可以任意切换,不影响数据存储——文本格式除外。
单元格格式中的“孤独患者”
对于单元格格式的若干类别而言,“孤独患者”这个形容词基本可以概括文本格式这种特殊的格式。
首先,文本格式的单元格长得不一样。在我们没有设置单元格的对齐方式时,默认都是底端对齐,而对左右方向的对齐没有默认值。当我们输入的是数字,会默认右对齐;而如果输入的是文本(文字或者文本格式存储的数字),会默认左对齐——这个很好理解,一般的文字都是从左向右书写,所以文本便是左对齐的。
除此之外,文本格式存储的数字,还会在单元格的左上角增加一个角标,用以注明文本这种特殊的形式。可能有点恶趣味的是,这个角标在左对齐的内容上,像是一个小帽子——恰好还是绿色的。
不喜欢这个恶趣味的可以按照下图修改角标颜色,不过不太建议修改默认设置,因为如果你想要小红帽,可能又会和右上的单元格批注角标混淆……
修改角标颜色此外,以文本格式存储的数字,是不能使用Sum公式进行求和的。这一点很好理解:1+1=2,但是上+下≠卡,数学里的加减乘除是用来计算数字的,而不是计算文字。但是也有例外,如果是真正的文本(比如好的、ok),确实无法用数学符号运算;而以文本格式存储的数字,虽然不能用Sum公式求和,却可以用+-*/这类的运算符将文本格式存储的数字转化成真正的数字。
原理说完了,我们再多说一些关于文本转数字的操作。
所谓文本转数字,是指的以文本格式存储的数字,转化成真正的数字,而不是把汉字“壹、二、叁、四”转化成数字“1、2、3、4”,这样的操作号主也很惭愧并没实现过。
常规的操作,可以选中需要转换的单元格,其中一个单元格的左侧会出现一个悬停的按钮,点击后选择“转换为数字”或者直接点击键盘的“C”,即可将以文本形式存储的数字转换为数字。
直接使用悬停按钮转换数字然而,经常接触由数据库提出的原始数据表格的用户可能知道,大多数数据库中存储的数据,都是以文本格式存在的。数据量较大(比如几万行、几十列),使用上面的悬停按钮转化为数字的方式就会很慢。此时我们需要借用上述+-*/的运算符来批量转换。
具体的操作是:复制一个1(或者0)→选中需要转换的数据区域→单击鼠标右键→点击粘贴选项中的选择性粘贴→选择粘贴选项中的公式,并将选择运算选项为乘(或者加)→点击确定。详见下方图示。
选择性粘贴
粘贴选项及运算选项这种方法可以迅速将大量的文本转化为数字,而原理很好理解:
①任何数字“n”加0或者*1得到的值还是“n”;
②文本形式存储的数字经过加减乘除的运算后,可以转化为真正的数字。
最后,通过上述方式,我们实现了其他数字格式和文本格式之间原本不可逆的转换,可能有用户会觉得,文本格式这么复杂,能不能以后不用文本格式存储数字呢?
当然不行,其一是前文提到过,数据库中直接采集出来的数据,大多都是以文本格式存在。更关键的是,Excel存储数字也有限制,最多只能存储15位的数字,超过这个位数的数字,在15位之后均会变成0,从而影响数据准确性。
这个限制就决定,我们在输入超过15位数字的时候,必须按照文本格式存储在单元格内,最常见的就是身份证号(二代身份证号一共17位数)——因此,如果我们要在Excel里储存身份证号,一定要细心检查,否则一不小心就会将身份证号存储成了数字格式,导致最后两位都变成0而出错。
这里,我们还要讨论一下,对于以文本格式存储的日期(时间),如何迅速转化成真正的日期(时间)。
诚然,上述文本转数字的方法此处仍然适用,但转换出来的往往是一个3万~4万的数字,还需要将单元格格式设置为日期(时间)之后才会真正显示为日期(时间)。
但是经过我们观察可以发现,大多数从数据库采集出来的Excel数据表,其中的日期虽然是左对齐的“文本格式”,但实际上他们已经是常规格式(如下图所示)。
以常规格式存在的假文本型日期我们只需要重新单击编辑栏,然后直接按回车键(Enter),他们就会变成真正的日期。针对这种情况,我们可以使用“替换”的功能,将需要转换的范围内所有“-”全都替换为“/”即可实现(如下图)。
替换的方式转换日期其他单元格格式
我们已经说过了常规、数值、百分比、日期、时间、文本和他们之间的转换。之所以用这么大篇幅说这几种格式,主要还是他们的应用场景相对非常多,我们必须了解清楚。
而其他单元格,主要包括了分数、科学计数、会计、货币和自定义这几类。此处我们不一一展开,有兴趣的朋友可以参考文章结尾的汇总对比图做进一步了解,我们说说“自定义”这种貌似比较高端的格式。
实际上,单元格格式都有自己的格式编码,在自定义格式中可以输入相应的编码从而将单元格调整为“自定义”的格式。
这里我们说一类不太常见,但是也属于临时抖机灵的操作:
有的用户会遇到老板强势要求,每个单元格里面都要带上单位。而表哥表姐们会为难,因为加上单位之后,这些单元格就无法使用公式运算了,由此一种利用自定义单元格格式的折中方案应运而生:在自定义单元格菜单中,输入“0.00元”、“0天”等等,即可在单元格后添加上这种单位——既满足了老板的视觉直观性要求,又“苟全”了自己对于标准化数字的执念。
自定义单元格格式再说一个单元格格式突然错乱的解决方案。由于没有现成的图片,大家可以对照下图回顾一下自己是否曾经遇到过:即原本序号为正常数字的1~10,但当我们某次重新打开这个文件时,单元格突变成了右侧的异常数字壹~拾。
异常的单元格格式此时只需要点击键盘的Ctrl+1打开单元格格式选项,就会看到格式停留在“自定义”下,并且右侧格式框中显示的是一串乱码比如“[$$]00$$001”之类,直接点击格式框右下角的删除并确认,即可去除错乱的格式。(再次告罪,确实没有找到现成案例)
各项单元格格式汇总对比表本次就分享这些,下一次我们会继续探讨Excel操作界面上关于查找/替换,排序/筛选等操作,敬请期待。
——我所见,你所得。