嗨,各位同学们好呀!我是小E~
小E还为同学们准备了100+Excel模板,获取直接在公种号【秋叶Excel】回复【头条】~
Excel 中,有许多「自动」功能,可以大幅提高表哥表姐们的办公效率,例如:
❶ 自动标亮整行数据。
❷ 自动合并工作表。
❸ 到期自动提醒。
……
今天要给大家讲的,也是一个「自动」功能:
在 Excel 中输入数据后,会自动记录时间。修改数据后,既可以让日期时间跟随修改而变化,也可以让它保持不变。
不懂?来看看动图:
▲ 修改数据,日期时间变化
▲ 修改数据,日期时间不变
相对于手工录入时间,自动记录修改时间效率更高,错误几率更小。
还是不懂?没关系。我们来看具体案例。
修改数据,日期时间变化
秋叶小店需要记录报单和产品出入库时间,如果有出入库情况,还得修改库存。如下图:
(为了更好地演示,这里仅展示部分数据。)
但是,由于产品数量太多,每次记录都要多次核查,总担心时间没有记、记错了、库存数量没有更改等等,特别麻烦。
怎么办呢?
这时,我们就需要用到「自动记录时间」的小技巧了,而且,还需要让日期和时间随着数据的修改而变化。
这样就可以清楚地知道,库存、入库/出库有没有登记好。
以后再打开时,还可以看到上一次修改的时间,便于盘点。
怎么做呢?我们可以用 VBA 代码。
VBA?!
淡定,别慌。
不用自己写,网络上已经有很多大佬写的现成代码,我们只需套用即可。
来看看操作步骤:
❶ 打开 VBA。
按【Alt】+【F11】打开 VBE 窗口,即 VBA 的编程工具,我们在这里编写 VBA;
❷ 将下面的代码复制到【Sheet2】(数据所在工作表)的代码窗口中。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Target.Column Mod 2 > 0 Then Exit Sub
If Target = "" Then Target.Offset(, 1) = "" Else Target.Offset(, 1) = Now
End Sub
▲ 左右滑动查看
PS:注意代码不要放错工作表。
❸ 关闭窗口即可。
之后,在偶数列输入数据,后面一列就会自动显示时间。
好啦,这个小技巧就讲到这里了~
有同学会问,如果我不需要日期时间随着修改的数据而变动,该怎么办?
别急,我们来看第二个案例
修改数据,日期时间保持不变
小竹每周需要进行采购工作,同时需要记录好采购时间,如下图:
由于每次采购的种类太多,时间紧,产品名称和时间非常容易弄错。
这时,就可以用到上面说的「自动记录时间」的小技巧了。
并且,如果产品名称不小心打错了,修改数据之后,日期和时间也能保持之前的不变。
操作方法:
❶ 选中 B2 单元格,输入公式:
=IF(A2="","",IF(B2="",NOW(),B2))
PS:A2 是输入产品名称的单元格,B2 是输入时间的单元格,可根据实际需要进行修改。
公式含义:
=IF(A2="","",IF(B2="",NOW(),B2))
如果 A2 单元格为空,则 B2 单元格也为空;如果 A2 单元格有内容,则显示第二个 IF 函数的值。
第二个 IF 函数的含义是,如果 B2 单元格为空,则显示 NOW 函数的值;否则返回原来的值。(避免因电脑时间改变,B2 单元格中的内容也变了。)
❷ 下拉填充到其他单元格。
❸ 公式存在循环引用,因此需要允许 Excel 进行迭代计算。
打开【文件】-【选项】-【公式】,勾选「启用迭代计算」,确定。
❹ 将 B 列的单元格格式设置为日期时间。
选中 B 列,【Ctrl+1】打开设置单元格格式,选择「日期」-「2012/3/14 13:30」。
之后,在 A 列输入数据,B 列就会自动记录时间了。
总结一下
本文主要讲了「输入数据,自动记录时间」的 2 种方法。
根据不同的场景需求,可以选择不同的方法:
❶ VBA 法:修改数据后,日期时间随之变化。
❷ 函数法:修改数据后,日期时间保持不变。
之后遇到需要用 Excel 记录时间的场景,一定记得来看看这篇文章哦~
Tips:
❶ 为了不影响其他公式,在关闭启用了「迭代计算」的表格之前,先取消勾选,再次打开时启用。
❷ 为了避免丢失,建议在录入完成后,用「选择性粘贴-数值」的方法,把已生成的时间记录由公式改为纯数值。