Lấy ngày giờ hiện hành với hàm "now"

Liên hệ QC

nhatquyelec

Thành viên mới
Tham gia
17/12/10
Bài viết
48
Được thích
2
Nghề nghiệp
Elec Engineer
Chào các bạn,
tôi có một vấn đề như sau;
có 2 cột A, B, tôi muốn khi cột A được dánh vào một kí tự bất kì thì tại cột B nhảy ra ngay thời điểm mà tôi đánh vào, tôi làm như sau : =IF(A1="",B1="",NOW()), kết quả như mong muốn
tuy nhiên sau những lần tắt rồi open file đó, thì ngày giờ tại cột B lại nhảy thời điểm hiện tại.
điều tôi muốn là nó không thay đổi tại lần nhập đầu tiên vào cột A,
Mong mọi người cùng giúp đỡ !!!
email: nhatquyelec@gmail.com
 
Không giải quyết được đâu, hàm NOW(), hàm TODAY() ... là một trong những hàm cập thời gian hiện hành, nó không update cho đến khi có một phép tính mới hoặc lần mở file sau cùng.

Bạn thử thế này sẽ hiểu, tại một ô bạn gõ =NOW() sau đó định dạng ô này với kiểu hh:mm:ss rồi bạn nhấn và giữ phím F9, bạn sẽ thấy thời gian nó vẫn tính và chạy ngay trên ô bạn vừa gõ hàm đó.

=> Nếu không dùng VBA, thì một cách duy nhất là sau khi tính toán, bạn copy rồi paste special value để giữ lại kết quả tính.
 
Chào các bạn,
tôi có một vấn đề như sau;
có 2 cột A, B, tôi muốn khi cột A được dánh vào một kí tự bất kì thì tại cột B nhảy ra ngay thời điểm mà tôi đánh vào, tôi làm như sau : =IF(A1="",B1="",NOW()), kết quả như mong muốn
tuy nhiên sau những lần tắt rồi open file đó, thì ngày giờ tại cột B lại nhảy thời điểm hiện tại.
điều tôi muốn là nó không thay đổi tại lần nhập đầu tiên vào cột A,
Mong mọi người cùng giúp đỡ !!!
email: nhatquyelec@gmail.com
Chỉ có cách là dùng VBA, nếu bạn chịu mình sẽ giúp theo hướng này.

=> Nếu không dùng VBA, thì một cách duy nhất là sau khi tính toán, bạn copy rồi paste special value để giữ lại kết quả tính.

Nhấn F2 rồi nhấn F9, hoặc nhấn Ctrl+; thì khỏi dùng hàm.
 
Lần chỉnh sửa cuối:
Nhấn F2 rồi nhấn F9, hoặc nhấn Ctrl+; thì khỏi dùng hàm.

Ở đây tác giả dùng hàm NOW, cho không thể dùng Ctrl+; (lấy ngày hiện hành không thể hiện giờ) hoặc Ctrl+Shift+; (lấy giờ phút hiện hành mà không thể hiện giây và ngày) được đâu nha.

Cho nên Paste specials Value là chắc cú à. Còn không chỉ có VBA giải quyết được thôi. Hic, hic.
 
chào các bạn!
tôi đang gặp 1 vấn đề và hiện tại chưa tìm ra được giải pháp mong mọi người giúp
có 2 cột A, B, tôi muốn khi cột A được dánh vào một kí tự bất kì thì tại cột B nhảy ra ngay thời điểm mà tôi đánh vào, tôi làm như sau : =IF(A1="",if(B1="",NOW(),b1)), kết quả ô đó ko hiện ra gì
rất mong được sự giúp đỡ của các bạn!
 
chào các bạn!
tôi đang gặp 1 vấn đề và hiện tại chưa tìm ra được giải pháp mong mọi người giúp
có 2 cột A, B, tôi muốn khi cột A được dánh vào một kí tự bất kì thì tại cột B nhảy ra ngay thời điểm mà tôi đánh vào, tôi làm như sau : =IF(A1="",if(B1="",NOW(),b1)), kết quả ô đó ko hiện ra gì
rất mong được sự giúp đỡ của các bạn!
Thử thế này:
=IF($A1<>"", NOW(), "")
 
Lần chỉnh sửa cuối:
chào các bạn!
tôi đang gặp 1 vấn đề và hiện tại chưa tìm ra được giải pháp mong mọi người giúp
có 2 cột A, B, tôi muốn khi cột A được dánh vào một kí tự bất kì thì tại cột B nhảy ra ngay thời điểm mà tôi đánh vào, tôi làm như sau : =IF(A1="",if(B1="",NOW(),b1)), kết quả ô đó ko hiện ra gì
rất mong được sự giúp đỡ của các bạn!
Sử dụng hàm thì khi cập nhật thêm giá trị tại cột A, tất cả công thức ở cột B trả về thời gian hiện hành.
Nên dùng code VBA, tham khảo:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:A10")) Is Nothing Then
        If Target.Count = 1 Then
            Target.Offset(, 1) = Now
        End If
    End If
End Sub
 
=IF(A1>0,NOW()) cái này ko đúng b ơi, trả về giá trị là false nhé ko dc,
 
Thử lại thế này:
=IF($A1="","",IF($A1>0,NOW()))
 
Thử lại thế này:
=IF($A1="","",IF($A1>0,NOW()))
Không thể dùng hàm đâu anh ơi. Dùng VBA như bài #8 của leonguyenz mới xong.
Dùng hàm nó luôn cập nhật thời gian thực của máy tính khi anh "đụng chạm" vào bất cứ chỗ nào trên thân thể của ... "ẻm".
 
Không thể dùng hàm đâu anh ơi. Dùng VBA như bài #8 của leonguyenz mới xong.
Dùng hàm nó luôn cập nhật thời gian thực của máy tính khi anh "đụng chạm" vào bất cứ chỗ nào trên thân thể của ... "ẻm".
Tôi trả lời theo nội dung của bài 9, nếu dùng VBA tôi làm cách sau, nhập bất kỳ Cell cột A, hiện ngày cột B.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 And Target.Value <> "" Then
        Target.Offset(0, 1) = Now()
    End If
End Sub

Hoặc
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 And Target.Value <> "" Then
        Cells(Target.Row, 2).Value = Date + Time
    End If
End Sub
 
Lần chỉnh sửa cuối:
Thử lại thế này:
=IF($A1="","",IF($A1>0,NOW()))
cảm ơn bạn! các b nhìn lại công thức của m, m muốn chỉ ấn định cho 2 ô, 1 ô thể hiện dữ liệu, 1 ô thể hiện giờ, nếu ô kia có dữ liệu thì ô ngày giờ mi hiện, còn lại các ô khác ko liên quan, vd: A1 là ô dữ liệu, B1 là chỉ thời gian, khi A1 có dữ liệu, thì B1 tự động lấy giờ của hệ thống, nếu bạn điền dữ liệu vào ô A2 thì cung ko ảnh hưởng j đến B1
 
cảm ơn bạn! các b nhìn lại công thức của m, m muốn chỉ ấn định cho 2 ô, 1 ô thể hiện dữ liệu, 1 ô thể hiện giờ, nếu ô kia có dữ liệu thì ô ngày giờ mi hiện, còn lại các ô khác ko liên quan, vd: A1 là ô dữ liệu, B1 là chỉ thời gian, khi A1 có dữ liệu, thì B1 tự động lấy giờ của hệ thống, nếu bạn điền dữ liệu vào ô A2 thì cung ko ảnh hưởng j đến B1
Vậy thì bạn tự kiểm tra lại máy bạn, còn trên máy tôi thì thế này:

A_Hinh.JPG
 
Lần chỉnh sửa cuối:
cảm ơn bạn! các b nhìn lại công thức của m, m muốn chỉ ấn định cho 2 ô, 1 ô thể hiện dữ liệu, 1 ô thể hiện giờ, nếu ô kia có dữ liệu thì ô ngày giờ mi hiện, còn lại các ô khác ko liên quan, vd: A1 là ô dữ liệu, B1 là chỉ thời gian, khi A1 có dữ liệu, thì B1 tự động lấy giờ của hệ thống, nếu bạn điền dữ liệu vào ô A2 thì cung ko ảnh hưởng j đến B1
Theo yêu cầu của bạn thì hàm có sẵn trong Excel không làm được, phải dùng hàm tự tạo (viết code trong VBA), các code ở trên bạn có thể áp dụng.
Tham khảo file đính kèm, nhấn Alt+F11 để xem code, để code chạy bạn cần Enable Marco.
 

File đính kèm

  • Ghi thoi gian nhap lieu.xls
    30 KB · Đọc: 67
cảm ơn bạn! các b nhìn lại công thức của m, m muốn chỉ ấn định cho 2 ô, 1 ô thể hiện dữ liệu, 1 ô thể hiện giờ, nếu ô kia có dữ liệu thì ô ngày giờ mi hiện, còn lại các ô khác ko liên quan, vd: A1 là ô dữ liệu, B1 là chỉ thời gian, khi A1 có dữ liệu, thì B1 tự động lấy giờ của hệ thống, nếu bạn điền dữ liệu vào ô A2 thì cung ko ảnh hưởng j đến B1
Theo yêu cầu của bạn thì hàm có sẵn trong Excel không làm được, phải dùng hàm tự tạo (viết code trong VBA), các code ở trên bạn có thể áp dụng.
Tham khảo file đính kèm, nhấn Alt+F11 để xem code, để code chạy bạn cần Enable Marco.
Sao leonguyenz phải "động tâm" với bài viết mà đọc xong chẳng hiểu người ta viết cái gì.
b, m, mì, ko, j ...
Hay là leonguyenz đã qua trường lớp nào đó?
 
Web KT
Back
Top Bottom