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

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")

Ôi hình như chưa chính xác bạn à. Kết quả khi nhập công thức là 13N/0T/21Ng ==> nhưng tới ngày hôm này thì phải là 13N/0T/10Ng chứ 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
Ôi thế còn định dạng từ ngày tháng năm ==> thành số thì bây giờ phải sử lý như thế nào đây ? Như ở cột E ngày tháng chuyển thành: 38720; 40460;...
 
Ặc, dữ liệu bạn đưa sao mình để vậy, mình chỉ đổi ngày bằng hàm date thôi, đảm bảo 99.99% là không sai.
những ngày bị đổi ra số vì mình format text nên nó chuyển sang số thôi. Bạn tiến hành bước này trước khi format text
dùng hàm Text(ô muốn đổi,"dd/mm/yyyy") để đổi dạng text
copy + paste special, chọn value để biến nó thành giá trị trong ô
rồi áp dụng công thức
sau này người dùng chỉ nhập vào text, công thức đổi ra ngày
bạn hãy kiểm tra lại nhé, mình thấy có sai đâu nhỉ ;))
 
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.

File của bạn chỉ yêu cầu
người nhập Lưu ý: Bắt buộc phải nhập theo định dạng: ngày/tháng/năm
VD: 30/6/2012 (dùng dấu "/")
Nhưng muốn nhập ngày/tháng/năm để máy hiểu và hiển thị dd/mm/yyyy thì bạn cần chỉnh hoặc hướng dẫn họ chỉnh trong Control Panel \ Regional and Language Options
+ Chọn thẻ Regional Options -> chọn Customize
+ Trong bảng Customize Regional Options chọn thẻ Date
+ Trong ô Short date format: dd/mm/yyyy

Nếu hướng dẫn khó khăn và bạn không muốn mất thời gian chỉnh giúp họ để họ có thể dùng sản phẩm (file) của bạn thì tặng bạn file này và double click -> Yes -> OK -> Xem kết quả
 

File đính kèm

Có lẽ anh làm việc với những người chịu đổi mới. Đôi khi ta làm việc với những người "ù lì", chỉ họ không nghe, máy thì đóng băng, không chỉnh 1 lần được. Nên mới khổ tâm thế anh à.
 
Có lẽ anh làm việc với những người chịu đổi mới. Đôi khi ta làm việc với những người "ù lì", chỉ họ không nghe, máy thì đóng băng, không chỉnh 1 lần được. Nên mới khổ tâm thế anh à.

Dù ù lì thì đằng nào cũng bắt buộc phải NHẬP ĐÚNG ĐỊNH DẠNG
Thôi thì nhập theo chuẩn yyyy/mm/dd hoặc dd-MMM-yy ---> Bảo đảm với bạn nó luôn đúng trên bất kỳ máy tính nào dùng Windows trên thế giới này
 
Hà hà, thế thì mấy bà cô lại chê bai làm gì mà bắt người ta nhập kỳ cục, loằng ngoằng, rồi thể nào cũng sai từa lưa. Đôi khi cũng ức chế lắm anh ạ. Nhưng làm riết rồi quen. mình cũng thành lỳ luôn.//**/
 
Đơn giản thôi, bác kích chuột phải vào ô muốn thêm dấu ('), chọn Format cells.../Number/Custom bác gõ ('dd/mm/yyyy) hoặc bất kỳ kiểu nào bác muốn.
Xong!
 
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ỉ?


Em cũng đang bối rối về vụ này, Nếu anh thấy đơn giản thì chỉ dúp em, hiện tại em đang làm kế toán hàng tháng báo cáo thuế em kết xuất từ phần mềm kế toán ngày tháng có dạng dd/mm/yyyy, nhưng muốn đưa vào HTKK để khai báo thuế thì phải thêm dấu nháy (') trước ngày tháng, nếu không thêm dấu nháy (') thì ngày tháng đảo ngược. Mà hóa đơn thì cả máy trăm cái, em làm động tác thô rất là lâu và mệt, Các định dạng khác đã thử nhưng không có hiệu quả.
 
[/B]

Em cũng đang bối rối về vụ này, Nếu anh thấy đơn giản thì chỉ dúp em, hiện tại em đang làm kế toán hàng tháng báo cáo thuế em kết xuất từ phần mềm kế toán ngày tháng có dạng dd/mm/yyyy, nhưng muốn đưa vào HTKK để khai báo thuế thì phải thêm dấu nháy (') trước ngày tháng, nếu không thêm dấu nháy (') thì ngày tháng đảo ngược. Mà hóa đơn thì cả máy trăm cái, em làm động tác thô rất là lâu và mệt, Các định dạng khác đã thử nhưng không có hiệu quả.

Thì đó là do HTKK nhận dạng sai hoặc không linh động

Muốn thêm thì đơn giản

Ví như A1 là dữ liệu ngày tháng
Thì ô kết quả muốn thêm dấu ' thì sd ct
=TEXT(A1,"'dd/mm/yyyy")
là được

Muốn trở thành dữ liệu TEXT thui, thì CT là
=TEXT(A1,"dd/mm/yyyy")
 
Private Sub Worksheet_Change(ByVal Target As Range)
If IsDate(Target) Then
Target = "'" & Format(Target, "dd/mm/yyyy")
End If
End Sub
 
Em cũng đang bối rối về vụ này, Nếu anh thấy đơn giản thì chỉ dúp em;
Hiện tại em đang làm kế toán hàng tháng báo cáo thuế em kết xuất từ phần mềm kế toán ngày tháng có dạng dd/mm/yyyy, nhưng muốn đưa vào HTKK để khai báo thuế thì phải thêm dấu nháy (') trước ngày tháng, nếu không thêm dấu nháy (') thì ngày tháng đảo ngược. Mà hóa đơn thì cả máy trăm cái, em làm động tác thô rất là lâu và mệt, Các định dạng khác đã thử nhưng không có hiệu quả.

Kiểu làm của bạn là biến lợn què thành lợn mù!
 
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
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
Bạn ơi, mình cũng đang cần làm như bài viết của bạn. vậy chắc giờ bạn đã biết cách rồi phải không ạ / xin chỉ giúp mình với.
 
Đã có ai giúp được bạn blad01 chưa, mình cũng cần giúp như vậy, thêm 1 dấu nháy trước ngày tháng, ví dụ 24/12/2019 thành '24/12/2019
Nếu làm thủ công bằng cách gõ vào từng ô thì cả tháng không xong. Thanks all
Bài đã được tự động gộp:

Nếu làm 1 cách khác thì chèn 1 cột vào rồi dùng hàm =" ' "&ô ngày tháng, rồi sau đó copy, paste value vào lại cột cũ
 

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

Back
Top Bottom