分享

记录数据录入日期时间

 xyanping 2016-06-23

?在日常工作中,经常会遇到需要实时记录数据录入的日期和时间问题。有朋友会说了,用快捷键啊,按Ctrl+;(分号)可以返回当前的系统日期,按Ctrl+Shift+;(分号)可以返回当前的系统时间。但是如果需要同时返回日期和时间又该怎么处理呢?


对于懂得VBA的朋友,这个问题当然不在话下,但相对于V盲的表亲来说,处理这个问题就有点棘手了。


以下图为例,在A列单元格输入内容后,B列就会自动的显示出数据录入时的系统时间。

接下来,咱们就一起学习一下如何实现这样的目的。


B2单元格输入以下公式后向下复制。

=IF(A2='','',IF(B2='',NOW(),B2))


这时候,如果马上在A2单元格输入内容,就会弹出循环引用的警告:

还需要咱们在Excel选项中设置一下。

先单击【确定】,关闭警告对话框。依次单击【文件】,【选项】,弹出【Excel选项】对话框。单击【公式】选项卡,勾选“启用迭代计算”,单击【确定】关闭【Excel选项】对话框。

这时候,只要在A列输入内容,B列就会记录下数据录入时的系统时间。

如果您的工作表中显示的是类似41672.55这样的怪怪的数字,还需要设置一下单元格格式。


设置单元格格式的方法是:按住Ctrl+1,在弹出的【设置单元格格式】对话框中单击【自定义】选项卡,在类型文本框中输入yyyy-m-d h:mm:ss


咱们再简单说一下公式=IF(A2='','',IF(B2='',NOW(),B2))的意思。


NOW()函数返回日期时间格式的当前日期和时间。IF(A2='',''先用IF函数判断A2是否为空值,如果A2是空值返回空白””,否则执行下一段公式IF(B2='',NOW(),B2),这段公式在A2不为空的情况下继续判断B2是否为空值,条件成立则返回当前的系统时间。如果A2B2都不为空,则保留B2的原有的值。该公式对公式所在单元格进行了引用判断,所以要开启迭代计算。

 

这个方法非常简单,也便于操作,但是有一个缺点。如果对A列已经输入的内容进行修改,B列仍然会保留原有的内容,并不能实时的更新最后一次修改内容的时间。

 

如果将上面这个公式写成

=IF(A2='','',IF(A2=CELL('contents'),NOW(),B2))

就可以有效的解决这个问题了。

公式中CELL('contents')部分可以获取最后编辑的单元格内容,利用这个特点,只要A2单元格内容发生变化,公式就会返回当前的系统日期时间了。

 

除了上述的方法以外,使用数据有效性也能够便捷的调用当前的系统日期和时间,能够满足一般情况下的时间记录需要。



实现这样的效果非常简单,并且无需设置迭代计算。首先在任意单元格写入公式=NOW(),本例选择F1单元格。


选中B2:B10单元格区域,依次单击【数据】【数据有效性】,在弹出的【数据有效性】对话框中,序列来源选择=$F$1,单击【确定】完成设置。

设置完成后,就可以在B列单元格区域通过下拉列表选择录入日期时间了。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多