Excel 数据处理思维带你高飞
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 基本处理

本节通过具体案例介绍日期和时间型数据的格式调整、文本型日期数据的处理。

3.2.1 调整格式

在Excel中,能够方便地将日期型数据在各种显示形式之间进行切换。因此,在输入日期型数据时,可以按照自己的习惯选择任何一种形式输入。

例如,在图3-9中,输入了4个日期型数据。如果想要调整日期型数据的显示形式,则可以在如图3-10所示的“设置单元格格式”对话框的“数字”选项卡中选择“日期”分类,将其设置为相应的类型。

图3-9 日期型数据

图3-10 调整日期型数据的显示形式

在默认情况下,Excel在处理日期型数据时不会显示多余的“0”,因此在显示日期时,经常会遇到长短不一致的情况。例如,在图3-9中,由于月份和具体日期长短不一,导致最后显示的日期长度是不一样的。通过图3-10中“日期”分类中的设置方法无法将日期长度调整一致,因此需要使用“自定义”的方式对其进行设置。

在图3-10中选择“自定义”分类,在原有格式“yyyy-m-d”中将用来占位的月份“m”、日期“d”分别设置为“mm”和“dd”,如图3-11所示。

图3-11 通过“自定义”分类调整日期显示长度

设置好的结果如图3-12所示,可以看到日期显示的长度一致了,都为8位数字,在月份和日期为一位数字的前面都补了“0”。

图3-12 设置结果

3.2.2 文本型日期数据的处理

在本章最开始有两个操作失败的例子,一个是希望让日期型数据通过拖动填充柄的形式完成时间序列的填充,但填充后却得到了错误的日期;另一个是在尝试改变日期的显示形式后,却没有得到正确的结果。以上两个问题都是因为不了解日期和时间型数据的本质所导致的,忽略了日期和时间型数据的本质是数值型数据。当一个日期数据是文本型数据时,它并不是真正的日期和时间型数据。在有些情况下,无法对文本型日期按照日期和时间型数据进行处理,只能按照文本型数据对其进行处理。

需要特别注意的是,一般情况下,在Excel中可以对文本型数据按照数值型数据进行处理,或者使用数值型函数对文本型数据进行处理,Excel可能并不会报错,甚至可以得到正确的结果。这是导致处理日期和时间型数据时发生错误的一大根源,因为在对文本型日期数据使用数值型数据处理方式进行处理后,如果Excel没有报错,而运算结果也恰好是正确的,没有出现错误,这就可能会让数据处理者对数据类型产生误解,以为它真的是一个日期和时间型数据,从而使用日期和时间型数据的处理方式对文本型的日期和时间数据进行进一步的处理。问题在于,在不了解日期和时间数据是数值型还是文本型时,盲目使用处理日期和时间型数据的方式处理文本型日期和时间数据,发生错误几乎是必然的,这就为后续的数据处理埋下了隐患。

针对文本型日期和时间数据的处理,通常需要将文本型数据转换为日期和时间型数据,然后再进行下一步的处理。可以采用不同的方式将文本型日期数据调整为数值型数据,例如:

· 使用公式“=--文本型日期数据”。

· 使用公式“=文本型日期数据*1”。

· 使用函数“VALUE(文本型日期数据)”。

当一个文本型数据参与数学运算后,会得到一个数值型数据。前两种方式都是通过采用数学运算的方式,将文本型日期数据变为日期和时间型(数值型)数据。

第1种处理方式,使用公式“=--文本型日期数据”,通过两次取反的形式将文本型日期数据转换为等值的数值型数据。首先在文本型日期数据前面加了一个“-”(负号),让其变为当前文本型数据的相反数,得到了一个数值型数据。其次,再加一个“-”(负号),让数据变为和当前文本型数据相等的数值型数据。

第2种处理方式,让一个文本型日期数据和数值1相乘,使其变为数值型数据。

第3种处理方式,使用函数,将当前文本型日期数据变为数值型数据。

如图3-13所示,B列为文本型日期数据,C列是对B列数据进行处理后得到的日期和时间型数据,D列是C列所采用的公式。在C列中,分别采用了3种不同的方式将文本型日期数据“2017-12-17”变为日期和时间型数据。

图3-13 将文本型日期数据转变为日期和时间型数据

用3-13中B列的日期数据是看起来像日期和时间型数据的文本型日期数据,符合日期和时间型数据的显示形式。在Excel中,有时会有一些不符合日期和时间型数据显示规范而看起来又像日期和时间型数据的数据,如图3-14所示的B2单元格中的数据,虽然看起来像一个日期,但在Excel内并不存在使用“.”对时间进行分隔显示的日期,因此这并不是一个标准的Excel样式日期。如果使用前面介绍的3种方式对单元格B2中的数据进行转换,则会显示“#VALUE!”错误提示。

图3-14 非标准的Excel样式日期

针对这类日期形式的数据,可以考虑使用分列的方式进行处理。选中要处理的数据所在的单元格B2,在“数据”选项卡中的“数据工具”组内选择“分列”,会出现如图3-15所示的“文本分列向导-第1步,共3步”对话框。

图3-15 “文本分列向导-第1步,共3步”对话框

在图3-15中,有文件类型选项,其中“分隔符号”表示要使用固定的分隔符号将原有数据分列,“固定宽度”表示按照固定的宽度将原始数据分列。在本例中,并不想对数据进行分列,而只是想利用分列的处理形式进行类型转换,所以选择哪种类型都可以。在“请选择最合适的文件类型”内选择“分隔符号”,单击“下一步”按钮,会出现如图3-16所示的“文本分列向导-第2步,共3步”对话框。

图3-16 “文本分列向导-第2步,共3步”对话框

在图3-16中,有分隔符号选项,可以根据实际情况在其中选择对应的符号,或者选中其他选项后在其中填入对应的符号。这里并不想将数据真的划分为3列,而仅仅是想将数据转换为日期型数据,因此直接勾选“其他”复选框即可,并不需要在右侧的文本框内填入日期数据中的符号“.”。勾选“分隔符号”中的“其他”复选框,单击“下一步”按钮,会出现如图3-17所示的“文本分列向导-第3步,共3步”对话框。

图3-17 “文本分列向导-第3步,共3步”对话框

在“文本分列向导-第3步,共3步”对话框的“列数据格式”组内选择“日期”为“YMD”;在“目标区域”文本框内填入想要填写结果的单元格,这里仍以原单元格显示,因此填入“B2”。完成上述设置后,单击“完成”按钮。

经过分列处理后,单元格B2内显示日期型数据“2017-12-17”,如图3-18所示。

图3-18 处理结果

“文本分列向导-第3步,共3步”对话框的“列数据格式”组内的“日期”选项中,“YMD”表示“年月日”,在选择时要根据原始数据中年、月、日的不同顺序,选择不同的类别。