📜  包含日期值的清洗数据

📅  最后修改于: 2020-12-01 05:46:37             🧑  作者: Mango


您从其他来源获得的数据可能包含日期值。在本章中,您将了解如何准备包含要分析的数据值的数据。

您将了解-

  • 日期格式
    • 串行格式的日期
    • 日期以不同的月-日-年格式
  • 将串行格式的日期转换为年月日格式
  • 将年月日格式的日期转换为串行格式
  • 获取今天的日期
  • 在指定的天数后找到工作日
  • 自定义周末的定义
  • 两个给定日期之间的工作日数
  • 从日期中提取年,月,日
  • 从日期中提取星期几
  • 从年,月和日获取日期
  • 计算两个日期之间的年,月和天数

日期格式

Excel以两种方式支持日期值-

  • 序列格式
  • 以不同的年月日格式

您可以转换-

  • 在串行格式的日期以年-月-日格式的日期

  • 以年-月-日格式的日期以串行格式的日期

串行格式的日期

串行日期格式是一个正整数,代表给定日期与1900年1月1日之间的天数。当前日期和1900年1月1日都包括在计数中。例如,42354是代表2015年12月16日的日期

月/日/年格式的日期

Excel根据您选择的区域设置(位置)支持不同的日期格式。因此,您首先需要确定日期格式和手头数据分析的兼容性。请注意,某些日期格式以*(星号)为前缀-

  • 以*(星号)开头的日期格式会响应为操作系统指定的区域日期和时间设置的更改

  • 不带*(星号)的日期格式不受操作系统设置的影响

出于理解目的,您可以将美国作为语言环境。你会发现下面的日期格式选择日期– 6月82016 –

  • * 2016年6月8日(受操作系统设置影响)
  • * 2016年6月8日,星期三(受操作系统设置影响)
  • 6/8
  • 6/8/16
  • 16/06/08
  • 8月8日
  • 16年6月8日
  • 2016年6月8日
  • 16年6月
  • 16年6月
  • Ĵ
  • J-16
  • 2016/6/8
  • 2016年6月8日

如果您仅输入两位数字代表年份,并且-

  • 数字为30或更高,Excel假定数字代表20世纪的年份。

  • 数字小于30,Excel假定数字表示二十一世纪的年份。

例如,将1/1/29视为2029年1月1日,将1/1/30视为1930年1月1日。

将串行格式的日期转换为年月日格式

要将日期从序列格式转换为月日格式,请按照以下步骤操作:

  • 单击格式单元格对话框中的数字选项卡。

  • 点击类别的日期

  • 选择区域设置。可用的日期格式将在“类型”下显示为列表。

  • 单击“类型”下的“格式”以查看Sample旁边的框中的预览。

以串行格式转换日期

选择格式后,单击确定。

将年月日格式的日期转换为串行格式

您可以通过两种方式将Month-Day-Year格式的日期转换为Serial格式-

  • 使用格式单元格对话框

  • 使用Excel DATEVALUE函数

使用格式单元格对话框

  • 单击格式单元格对话框中的数字选项卡。

  • 单击类别下的常规

格式化单元格

使用Excel DATEVALUE函数

您可以使用Excel DATEVALUE函数将日期转换为序列号格式。您需要将Date参数括在“”中。例如,

= DATEVALUE(“ 6/8/2016”)结果为42529

获取今天的日期

如果您需要根据今天的日期进行计算,只需使用Excel函数TODAY()。结果反映了使用日期。

以下TODAY()函数用法的屏幕截图已于2016年5月16拍摄-

获取今天的日期

在指定日期后找到工作日

您可能必须根据工作日执行某些计算。

工作日不包括周末和任何假日。这意味着,如果您可以定义周末和节假日,那么您所做的任何计算都将基于工作日。例如,您可以计算发票到期日,预计交货时间,下一个会议日期等。

您可以使用Excel WORKDAYWORKDAY.INTL函数进行此类操作。

S.No. Function & Description
1.

WORKDAY

Returns the serial number of the date before or after a specified number of workdays

2.

WORKDAY.INTL

Returns the serial number of the date before or after a specified number of workdays using parameters to indicate which and how many days are weekend days

例如,您可以使用“今天”和“工作日”功能指定从今天开始的15工作日(以下屏幕截图于2016年5月16截取)。

寻找工作日

假设5月252016年6月12016假期。然后,您的计算将如下所示-

计算方式

自定义周末的定义

默认情况下,周末是星期六和星期日,即两天。您还可以选择使用WORKDAY.INTL函数定义周末。您可以通过周末编号指定自己的周末,该编号对应于下表中给出的周末天数。您不必记住这些数字,因为当您开始键入函数,您会在下拉列表中获得数字列表和周末。

Weekend Days Weekend-number
Saturday, Sunday 1 or omitted
Sunday, Monday 2
Monday, Tuesday 3
Tuesday, Wednesday 4
Wednesday, Thursday 5
Thursday, Friday 6
Friday, Saturday 7
Sunday only 11
Monday only 12
Tuesday only 13
Wednesday only 14
Thursday only 15
Friday only 16
Saturday only 17

假设,如果仅周末是星期五,则需要在WORKDAY.INTL函数使用数字16。

WORKDAY.INTL函数

两个给定日期之间的工作日数

可能需要计算两个日期之间的工作日数,例如,在计算按天支付的合同雇员的工资的情况下。

您可以使用Excel函数NETWORKDAYSNETWORKDAYS.INTL查找两个日期之间的工作日数。就像WORKDAYS和WORKDAYS.INTL一样,NETWORKDAYS和NETWORKDAYS.INTL允许您指定假期,而NETWORKDAYS.INTL可以另外指定周末。

S.No. Function & Description
1.

NETWORKDAYS

Returns the number of whole workdays between two dates

2.

NETWORKDAYS.INTL

Returns the number of whole workdays between two dates using parameters to indicate which and how many days are weekend days

您可以使用功能TODAY和NETWORKDAYS计算从今天到另一个日期之间的工作日数。在下面给出的屏幕截图,今天是162016年5月和结束日期是162016年6月252016年5月和6月12016假期。

计算工作日

同样,假定周末为星期六和星期日。您可以有自己的周末定义,并使用NETWORKDAYS.INTL函数计算两个日期之间的工作日数。在下面给出的屏幕截图中,只有星期五定义为周末。

周末星期五

从日期中提取年,月,日

您可以使用excel函数DAY,MONTH和YEAR从日期列表中的每个日期中提取相应的日,月和年。

例如,考虑以下日期-

日期

从这些日期中的每个日期,您可以按以下方式提取日,月和年:

从日期中提取年,月,日

从日期中提取星期几

您可以使用Excel WEEKDAY函数从日期列表中的每个日期中提取相应的星期几。

考虑上面给出的相同示例。

从日期中提取星期几

从年,月和日获取日期

您的数据可能分别具有有关年,月和日的信息。您需要获取结合这三个值的日期才能执行任何计算。您可以使用DATE函数获取日期值。

考虑以下数据-

从年,月和日获取日期

使用DATE函数获取DATE值。

DATE功能

计算两个日期之间的年,月和日

您可能需要计算从给定日期开始经过的时间。您可能需要以年,月和日的形式提供此信息。一个简单的例子是计算一个人的当前年龄。实际上,这是生日与今天之间的差。为此,您可以使用Excel DATEDIF,TODAY和CONCATENATE函数。

计算时间间隔

输出如下-

计算延时输出