嗨,各位同學們好呀!我是小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:
? 為了不影響其他公式,在關閉啟用了「迭代計算」的表格之前,先取消勾選,再次打開時啟用。
? 為了避免丟失,建議在錄入完成后,用「選擇性粘貼-數值」的方法,把已生成的時間記錄由公式改為純數值。