分析业务数据时,经常需要利用Excel中的日期数据来解答诸如“今天盈利多少”或“与上周同一天相比如何”等问题。如果Excel无法正确识别这些数据为日期格式,分析工作就会变得棘手。
不幸的是,这种情况并不少见,尤其是在多人输入信息、从其他系统复制粘贴或从数据库导入数据时。
本文将介绍四种不同的情景以及如何将文本数据转换为日期值的解决方案。
日期中使用句点/点号
初学者在使用Excel输入日期时,最常见的错误之一就是使用句点来分隔日、月和年。
Excel不会将这种格式识别为日期值,而是会将其存储为文本。不过,您可以使用查找和替换功能来解决这个问题。通过将句点替换为斜杠(/),Excel将自动识别这些值为日期。
首先,选择需要进行查找和替换的列。
然后,点击“开始”选项卡 > “查找和选择” > “替换”,或者直接按下Ctrl+H快捷键。
在“查找和替换”窗口中,将句点(.)输入到“查找内容”字段,将斜杠(/)输入到“替换为”字段。最后,点击“全部替换”。
所有句点都将被替换为斜杠,Excel会将新的格式识别为日期。
如果您的电子表格数据经常变化,需要一种自动化的解决方案来处理这种情况,可以使用 SUBSTITUTE函数。
=VALUE(SUBSTITUTE(A2,".","/"))
SUBSTITUTE函数是一个文本函数,因此不能单独将文本转换为日期。VALUE函数则可以将文本值转换为数值。
结果如下所示,该值需要格式化为日期。
您可以通过“开始”选项卡上的“数字格式”列表来完成格式化。
这里使用的句点分隔符只是一个例子。您可以使用相同的技术来替换或修改任何其他分隔符。
转换yyyymmdd格式
如果收到的日期格式如下所示,则需要采用不同的方法。
这种格式在技术上相当标准,因为它消除了不同国家在日期值存储上的歧义。然而,Excel最初无法理解这种格式。
对于快速的手动解决方案,可以使用“文本分列”功能。
选择需要转换的值范围,然后点击“数据”选项卡 > “文本分列”。
将会出现“文本分列向导”。在前两步直接点击“下一步”,进入第三步,如下图所示。选择“日期”,然后从列表中选择单元格中使用的日期格式。在本例中,我们需要选择“YMD”格式。
如果您希望使用公式来解决问题,则可以使用DATE函数来构造日期。
这将需要与文本函数LEFT、MID和RIGHT一起使用,以从单元格内容中提取日期的三个部分(日、月、年)。
下面的公式使用示例数据展示了如何使用该函数。
=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))
使用这些方法,您可以转换任何八位数字的值。例如,您可能会收到ddmmyyyy格式或mmddyyyy格式的日期。
DATEVALUE和VALUE函数
有时问题不是由分隔符引起的,而是由于其存储为文本时的不规则日期结构。
以下是一些具有不同结构的日期列表,尽管我们都可以识别它们为日期。不幸的是,它们被存储为文本,需要进行转换。
对于这些情况,可以使用多种技术轻松进行转换。
本文将介绍两种可以处理这些情况的函数,分别是DATEVALUE和VALUE。
DATEVALUE函数将文本转换为日期值(您可能已经了解),而VALUE函数将文本转换为通用的数字值。它们之间的差异很小。
在上图中,其中一个值也包含时间信息。这会展示出这两个函数的细微差别。
下面的DATEVALUE公式将把每一个值转换为日期值。
=DATEVALUE(A2)
请注意,第4行结果中的时间部分被移除了。这个公式严格地只返回日期值。结果仍然需要格式化为日期。
以下公式使用了VALUE函数。
=VALUE(A2)
此公式会产生相同的结果,但第4行除外,其中时间值也保留了下来。
然后可以将结果格式化为日期和时间,或仅格式化为日期,以隐藏时间值(但不能删除)。