Nhờ giúp đỡ cách tự động thêm một dấu nháy ( ' ) và trước ngày tháng năm trong excel (1 người xem)

  • Thread starter Thread starter Blad01
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

Blad01

Thành viên thường trực
Tham gia
6/10/07
Bài viết
350
Được thích
28
Có cách nào để excel tự động thêm một dấu ( ' ) vào phía trước ngày tháng năm không:
VD: 15/4/2012 ==> '15/4/2012; 4/1/2012 ==> '4/1/2012
Cảm ơn các bạn nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
Xin lỗi, ý bạn là dùng (') để chuyển date sang text. Nếu vậy bạn dùng hàm text() cũng được.
 
Lần chỉnh sửa cuối:
Đơn giản nhất là bạn định dạng ô nhập theo dạng Text, đỡ phải dùng thêm ký tự '.
 
Mục đích của mình muốn thêm dấu ( ' ) vào phía trước ngày tháng là để khi chuyển file có chứa ngày tháng sang máy khác nó không bị chuyển đổi định dạng lung tung (VD: ở máy mình định dạng ngày tháng là 15/4/2012 ==> máy khác thành 4/15/2012; 4/1/2012 ==> 1/4/2012. Mình cũng đã thử chuyển ngày tháng từ máy mình thành dạng text nhưng sang máy khác nó vẫn bị chuyển định dạng, không mặc định được. Có một cách để khắc phục trường hợp này là chuyển đổi hệ thống thời gian trong máy tính, khốn nỗi mình làm file tiện ích cho nhiều người sử dụng nhưng ở chỗ mình mọi người chưa thông thạo lắm về máy tính vì vậy hướng dẫn cúng gặp nhiều khó khăn. Nên mình muốn thêm dấu ( ' ) vào trước ngày tháng để khi mọi người nhập ở bất kì máy nào nó cũng mặc định được luôn định dạng minh đã chọn ban đầu. Ai biết cách làm cho định dạng ngày tháng mặc định với bất kì máy tính nào thì chỉ giúp mình với nhé.
Cảm ơn nhiều !.
 
Mục đích của mình muốn thêm dấu ( ' ) vào phía trước ngày tháng là để khi chuyển file có chứa ngày tháng sang máy khác nó không bị chuyển đổi định dạng lung tung (VD: ở máy mình định dạng ngày tháng là 15/4/2012 ==> máy khác thành 4/15/2012; 4/1/2012 ==> 1/4/2012. Mình cũng đã thử chuyển ngày tháng từ máy mình thành dạng text nhưng sang máy khác nó vẫn bị chuyển định dạng, không mặc định được. .
Việc nhập ngày tháng năm đã được Excel nhận dạng ngay từ đầu. Ví dụ bạn nhập 04/05/2012 theo dd/mm/yyyy thì sang máy khác nó cũng hiểu định dạng thời gian đó chỉ khác hiển thị (vẫn là ngày 4 thang 5 năm 2012 còn hiển thị là 05/04/2012)
Bạn có thể thử với hàm Day(), Month() sẽ rõ. Bạn xem lại cách chuyển đổi định dạng của tiện ích bạn làm
Thân!
 
Dùng cách này được không nhỉ?
Mã:
Private Sub Workbook_Open()
Sheet1.Range("A:A").Select
Selection.NumberFormat = "dd/mm/yyyy"
End Sub
 

File đính kèm

Việc nhập ngày tháng năm đã được Excel nhận dạng ngay từ đầu. Ví dụ bạn nhập 04/05/2012 theo dd/mm/yyyy thì sang máy khác nó cũng hiểu định dạng thời gian đó chỉ khác hiển thị (vẫn là ngày 4 thang 5 năm 2012 còn hiển thị là 05/04/2012)
Bạn có thể thử với hàm Day(), Month() sẽ rõ. Bạn xem lại cách chuyển đổi định dạng của tiện ích bạn làm
Thân!
Mình hiểu ý bạn, nó chỉ khác nhau về sự hiển thị nhưng đây lại là vấn đề lớn đối với mình vì với trường hợp ngày tháng năm sinh là 15/4/2012 => 4/15/2012 thì dễ hiểu được đâu là tháng đâu là ngày, tuy nhiên khi đặt công thức để tính tuổi với cách chuyển đổi là 4/15/2012 thì excel lại báo lỗi #Value. Còn trường hợp ngày 1/4/2012 => 4/1/2012 thì người xem khó hiểu đâu là ngày, đâu là tháng.

Private Sub Workbook_Open() Sheet1.Range("A:A").Select Selection.NumberFormat = "dd/mm/yyyy" End Sub
Cách này của bạn hay và ngắn gọn, nhưng như mình nói ở trên là đối tượng sử dụng máy vi tính ở chỗ mình không tốt lắm vì vậy việc hướng dẫn để maco hoạt động là khó khăn. Còn cách nào tối ưu hơn không các bạn
 
Lần chỉnh sửa cuối:
Nói thì khó, bạn đưa File lên là tôt nhất. Gợi ý cho bạn, nếu chỉ là tìm ngày tháng năm sinh thì bạn đừng tìm theo kiể chuỗi như thế, khả năng sai là rất lớn. Bạn hãy dùng hàm Date (ví dụ: Date(2012,5,15)..) Với kiểu này thì bất cứ định dạng mặc định nào của máy tính dd/mm/yyyy hay mm/dd/yyyy cũng đều cho kết quả chính xác
Thân!
 
Nếu không thì bạn làm 3 ô, một ô nhập ngày, một ô nhập tháng, một ô nhập năm là chắc cú nhất. =))
 
Nói thì khó, bạn đưa File lên là tôt nhất. Gợi ý cho bạn, nếu chỉ là tìm ngày tháng năm sinh thì bạn đừng tìm theo kiể chuỗi như thế, khả năng sai là rất lớn. Bạn hãy dùng hàm Date (ví dụ: Date(2012,5,15)..) Với kiểu này thì bất cứ định dạng mặc định nào của máy tính dd/mm/yyyy hay mm/dd/yyyy cũng đều cho kết quả chính xác
Thân!
Không phải mình muốn tìm ngày tháng năm sinh. mà minh muốn mặc định ngày tháng năm sinh với tất cả các máy. Bạn xem giúp mình với nhé. Cảm ơn nhiều.View attachment 92040
 

File đính kèm

Lần chỉnh sửa cuối:
Nếu không dùng VBA, không tùy chỉnh lại hệ thống thì đối với ngu kiến mình chỉ có nước tách ra 3 cột để nhập là ổn thôi. Chờ các thầy xem sao.
 
Theo tôi thấy thì File của bạn cho nhiều người nhập và bạn khó quản lý việc nhập có đúng hay không do định dạng thời gian các máy khác nhau hoặc vô ý của người dùng (4/5/2012 hoặc 5/4/2012) vậy để khắc phục thì bạn có thể định dạng ô thời gian dạng
" ngày "dd" tháng "mm" năm "yyyy
-phần Custom fomat (cái này chắc bạn biết)

Sau khi nhập dữ liệu chắc người nhập sẽ biết đúng hay sai để sửa lại vì Tiếng Việt mà
Thân!
 
Không thì bạn chọn cột đó, format cells chọn text đi. Cũng ổn đó.
 
Mình hiểu ý bạn, nó chỉ khác nhau về sự hiển thị nhưng đây lại là vấn đề lớn đối với mình vì với trường hợp ngày tháng năm sinh là 15/4/2012 => 4/15/2012 thì dễ hiểu được đâu là tháng đâu là ngày, tuy nhiên khi đặt công thức để tính tuổi với cách chuyển đổi là 4/15/2012 thì excel lại báo lỗi #Value. Còn trường hợp ngày 1/4/2012 => 4/1/2012 thì người xem khó hiểu đâu là ngày, đâu là tháng.

Dám cá với bạn không bao giờ có chuyện đó, ngoại trừ:
- Công thức của bạn sai
- Ngày tháng bạn nhập không đúng chuẩn Date

Còn lại thì ngày tháng cho dù có hiển thị thế nào thì nó vẫn không bao giờ ảnh hưởng đến độ chính xác của kết quả
--------------------
Nói thật là tôi rất lấy làm lạ tại sao vấn đề ngày tháng lại khiến các bạn dùng Excel lúng túng thế nhỉ?
 
công thức tại ô G6 khi đó là:
Mã:
=IF(E6="","",DATEDIF(DATE(RIGHT(E6,4),MID(E6,FIND("/",E6)+1,LEN(E6)-FIND("/",E6)-5),LEFT(E6,FIND("/",E6)-1)),TODAY(),"y")&"N/"&DATEDIF(DATE(RIGHT(E6,4),MID(E6,FIND("/",E6)+1,LEN(E6)-FIND("/",E6)-5),LEFT(E6,FIND("/",E6)-1)),TODAY(),"ym")&"T/"&DATEDIF(DATE(RIGHT(E6,4),MID(E6,FIND("/",E6)+1,LEN(E6)-FIND("/",E6)-5),LEFT(E6,FIND("/",E6)-1)),TODAY(),"md")&"Ng")
 
Dám cá với bạn không bao giờ có chuyện đó, ngoại trừ:
- Công thức của bạn sai
- Ngày tháng bạn nhập không đúng chuẩn Date

Còn lại thì ngày tháng cho dù có hiển thị thế nào thì nó vẫn không bao giờ ảnh hưởng đến độ chính xác của kết quả
--------------------
Nói thật là tôi rất lấy làm lạ tại sao vấn đề ngày tháng lại khiến các bạn dùng Excel lúng túng thế nhỉ?

Vấn đề mình hỏi là phát sinh từ thực tế mà bạn, mình đã chuyển tất cả ngày tháng thành dạng DATE rồi nhưng công thức vẫn không tính được. mình cũng đã thử chuyển ngày tháng thành dạng text nhưng khi sang máy khác vẫn bị sai định dạng mà mình mong muốn. Vì khó khăn như vậy mình rất mong nhận được sự giúp đỡ từ diễn đàn. Có lẽ phải dùng VBA vậy.
 
Vấn đề mình hỏi là phát sinh từ thực tế mà bạn, mình đã chuyển tất cả ngày tháng thành dạng DATE rồi nhưng công thức vẫn không tính được. mình cũng đã thử chuyển ngày tháng thành dạng text nhưng khi sang máy khác vẫn bị sai định dạng mà mình mong muốn. Vì khó khăn như vậy mình rất mong nhận được sự giúp đỡ từ diễn đàn. Có lẽ phải dùng VBA vậy.

Nói phải có bằng chứng! Bạn thử đưa 1 file tương tự lên đây xem (nhớ chỉ ra chổ sai trong file nhé)
 
Bạn Test thử xem đúng ý chưa
đầu tiên format 2 cột để nó thành dạng text bằng cách chọn 2 cột => Format cells =>text. khi đó người dùng nhập sẽ toàn là text
sau đó dùng công thức sửa lại để lấy được thâm niên.
Hy vọng đúng ý bạn
Thân
 

File đính kèm

Web KT

Bài viết mới nhất

Back
Top Bottom