这是一个老问题了,时不时就会有人问起。今天就详细介绍一下这种问题的各种实现方法。
01
问题和数据
问题很简单。现在有一列日期时间数据:
现在需要分成两列,结果如下:
02
方法1 格式化
第一个方法很简单,就是直接进行单元格格式化。
首先,将源数据复制两列:
然后分别设置格式为日期和时间:
这样,就可以得到结果了:
这个方法很简单,每个人都会,但是有一个缺点,那就是尽管看上去有两列:日期和时间,但是实际上,只是显示方式不同,而实际值是一样的:
02
方法2 使用函数
为了得到两列真正的日期(不含时间)和时间(不含日期)的数据,我们可以使用函数。
首先,使用INT函数:
=INT(Sheet1!B3)
INT函数是取整函数,只保留参数的整数部分。由于Excel中的日期数据实际上用整数记录日期部分,用小数记录时间部分。因此,这个公式就会真正取得日期值。
然后,使用MOD函数:
=MOD(Sheet1!B3,1)
MOD函数是用于返回一个数值对另一个数值的余数。所有数字对于1的余数就是小数部分。(关于MOD函数的详细介绍,请阅读一个经常用到的不常用函数:MOD)
将这两列分别设置格式为日期和时间,结果如下:
在这个结果中,日期和时间是真正分开的:
03
方法3 使用Power Query
上面的两种方法有一个共同的缺点,就是不能自动化处理数据。因此,如果希望数据处理过程完全自动化,请使用Power Query。
选择数据区域的任意单元格,在数据选项卡中点击“从表格”,
弹出对话框,将数据区域转换为超级表:
点击确定后,进入到Power Query编辑器中:
选择Time列,然后在添加列选项卡中,点击“重复列”,
选中Time列(第一列),在转换选项卡中,点击数据类型中的日期:
将该列转换为日期:
选中第二列(Time-复制),在转换选项卡中,点击数据类型中的时间:
将该列转换为时间:
修改两列的名称为日期和时间:
在“主页”选项卡中,点击关闭并上载:
在Excel中,新建了一个工作表,就是我们需要的数据:
这个结果是可以根据源数据的变化而自动变换的
在这三种方法中,隆重推荐第三种:Power Query。不仅仅因为这种方法让我们可以创建自动化的数据处理过程,还因为针对日期和时间处理,Power Query提供了更加强大的能力。
加入E学会,学习更多数据处理方法
联系客服