Lỗi đảo ngược ngày tháng trong trộn thư - mail merge

Liên hệ QC
tại bảng excel tạo cột phụ, =text(ô chưa giá trị ngày tháng muốn chuyển,'#,##0'). khi merge thì lấy cột phụ đó là được
 
Các thành viên cho tôi hỏi lại Vấn đề về ngược ngày tháng khi xuất kết quả để in ở file Word.
Win10 32bit đã định dạng trong Region là Vietnam, Trong excel đã định dạng là dd/mm/yyyy, Nhập đúng dữ liệu đầu vào.
Kết quả sai như ảnh dưới.
Mong các thành viên chỉ giúp cách để có kết quả đúng về ngày tháng như bên file nguồn excel.
Thanks!
 

File đính kèm

  • Capture2.PNG
    Capture2.PNG
    30.5 KB · Đọc: 8
  • Giay di duong.docx
    22.9 KB · Đọc: 5
  • Danh sach cn cap Giay d d.xls
    29.5 KB · Đọc: 9
Các thành viên cho tôi hỏi lại Vấn đề về ngược ngày tháng khi xuất kết quả để in ở file Word.
Win10 32bit đã định dạng trong Region là Vietnam, Trong excel đã định dạng là dd/mm/yyyy, Nhập đúng dữ liệu đầu vào.
Kết quả sai như ảnh dưới.
Mong các thành viên chỉ giúp cách để có kết quả đúng về ngày tháng như bên file nguồn excel.
Thanks!
Theo tôi cái chỗ vàng ấy không phụ thuộc vào thiết lập trong CP đâu. Có thể thiết lập Việt Nam, có thể thiết lập như tôi là Ba Lan. Điều kiện duy nhất: phải là ngày tháng chuẩn. Khi đã là ngày tháng chuẩn rồi thì đi đâu nó vẫn là ngày tháng, và được hiển thị theo đúng thiết lập hiện hành. Vd. bạn có trong CP là dd/MM/yyyy thì có ngày vd. 12/10/1985. Mang sang máy tôi nó vẫn là ngày tháng chuẩn nhưng được hiển thị là 12.10.1985 (nhìn hình dưới) vì trong CP của tôi có dd.MM.rrrr (rok = year).
Khi tôi trộn thư với tập tin của bạn thì thậm chí tôi không có ngày tháng đảo lộn đâu. Tôi có kết quả
2. Sinh ngày: 24392 tháng 24392 năm 24392

Kiểm tra thì 24392 = 12.10.1966 :D

Tại sao có kết quả kỳ quặc vậy? Hơi khó hiểu. Khi tôi dò trong Excel thì có

mailmerge.png

Rõ ràng C5 có vấn đề. Thậm chí 1961 không là số chuẩn mà là số nhưng đeo huy hiệu TEXT.

Sau khi biến C5 thành ngày tháng chuẩn, vd. 17.11.1985 thì cột C là ngày tháng chuẩn. Và bây giờ trộn thư cho kết quả đúng về dạng và đúng ngày tháng, mặc dù trong CP tôi có thiết lập của Ba Lan là dd.MM.rrrr

Chưa biết thế nào nhưng bước đầu tiên là phải nhập dữ liệu chuẩn. Ngày tháng phải là ngày tháng chứ không phải cái nhìn giống ngày tháng.
 
@batman1
+) Định dạng trong file Excel em đã định dạng Short date đúng là dd/MM/yyyy mà với dữ liệu ở C5 thì kết quả sau khi trộn vẫn bị ngược từ ngày thành
tháng như trong ảnh.
+) Còn ở C6 là 1 trường hợp đặc biệt (với người không có ngày, tháng trong CMND) em chưa biết trộn làm sao để ra kết quả là để trống ngày, tháng, chỉ có năm là 1961.
 
@batman1
+) Định dạng trong file Excel em đã định dạng Short date đúng là dd/MM/yyyy mà với dữ liệu ở C5 thì kết quả sau khi trộn vẫn bị ngược từ ngày thành
tháng như trong ảnh.
Nhiệm vụ của bạn là định dạng Date, còn dạng dd/MM/yyyy hay dd.MM.yyyy hay yyyy-MM-dd thì hãy để Excel tự quyết. Tôi không hiểu tại sao nhiều người cứ bắt là phải có dạng thật cụ thể thế này thế này. Định dạng thì chỉ Date thôi. Nhập chuẩn là ngày tháng thì sau đó muôn đời nó là ngày tháng, đi máy khác thì Excel sẽ tự chỉnh.
+) Còn ở C6 là 1 trường hợp đặc biệt (với người không có ngày, tháng trong CMND) em chưa biết trộn làm sao để ra kết quả là để trống ngày, tháng, chỉ có năm là 1961.
Chuyện tại sao dữ liệu của bạn lại thế tôi không bàn. Tôi chỉ muốn nói là với dữ liệu đó thì tôi có vấn đề khi trộn thư, và đó không phải là vấn đề đảo ngày tháng.

Tóm lại là bạn có thử nhập ngày tháng chuẩn bên Excel rồi kiểm tra lại trộn thư không?

Tôi ghi màn hình các thao tác y như tôi đã mô tả ở bài trước. Trước tiên bạn nhìn thấy là các trường được chèn bên Word y như của bạn. Sau đó nhìn thấy tôi trộn thư chỉ cho dòng 3 và có:

2. Sinh ngày: 24392 tháng 24392 năm 24392

Ngày cấp: 13/06/2007


Chính vì thế mà trong bài trước tôi viết là "kết quả kỳ quặc ". Dòng trên là 24392 chứ không phải là 12, cũng không là 10 và cũng không là 1966, thậm chí không là 12.10.1966. Trong khi đó ở dưới có ngày tháng dd/MM/yyyy (định dạng do bạn thiết lập cho trường Ngaycapcmnd)

Bạn thấy là sau đó tôi thay 1961 bằng ngày tháng chuẩn 12.10.1961. Và bạn cũng thấy là thiết lập trong CP của tôi là Ba Lan chứ không phải là Việt Nam. Cũng không là dd/MM/yyyy mà là dd.MM.rrrr

Sau đó tôi chọn lại (làm mới) Recipient và trộn lại thư. Lúc này tôi có

2. Sinh ngày: 12 tháng 10 năm 1966

Ngày cấp: 13/06/2007


Như vậy khi tôi làm thì gặp lỗi nhưng không phải lỗi đảo ngày tháng. Sau khi chuẩn hóa dữ liệu nguồn thì kết quả trộn thư như mong đợi.

 
Lần chỉnh sửa cuối:
@batman1
+) Định dạng trong file Excel em đã định dạng Short date đúng là dd/MM/yyyy mà với dữ liệu ở C5 thì kết quả sau khi trộn vẫn bị ngược từ ngày thành
tháng như trong ảnh.
+) Còn ở C6 là 1 trường hợp đặc biệt (với người không có ngày, tháng trong CMND) em chưa biết trộn làm sao để ra kết quả là để trống ngày, tháng, chỉ có năm là 1961.

Theo mình nghĩ Word sẽ dò dữ liệu tại cột ngày trên file Excel. Nếu dữ liệu trên file Excel tại cột đó đúng định dạng Date thì mặc nhiên toàn bộ cột đó được Word hiểu là định dạng Date, còn trong cột nếu có 1 dòng nào đó sai định dạng Date thì toàn bộ cột đó word hiểu là Text. Mà khi word hiểu đó là Text thì khi xử lý sẽ bị sai ngày tháng.

Edit Recipient List.JPG
Trong Edit Recipients List word định dạng lại cột ngày tháng năm là mm/dd/yyyy, như anh Batman đã nói chỉ cần đúng kiểu Date thì có định dạng thế nào thì sau khi word xử lý kết quả vẫn luôn luôn đúng.
CMND nào chỉ có năm thì khi nhập mình thường gõ 1/1/1966 để cho đúng kiểu Date, mà CMND chỉ ghi năm là đã sai rồi thì mình gõ thêm ngày tháng cũng không ai trách mình sai :D
 
@batman1 :
"Tóm lại là bạn có thử nhập ngày tháng chuẩn bên Excel rồi kiểm tra lại trộn thư không?"
Em đã nhập bên file Excel C4 là 12/10/66 rồi Enter hoặc 12/10/1966 rồi Enter (đã định dạng Short date là dd/MM/yyyy) sau khi trộn lại ra kết quả vẫn ngược ngày tháng.
File excel bác gửi em chưa down được, có lẽ do cá mập cắn đứt mạng về Việt Nam.
@qtm1987 :
Trong Edit Recipient List thì như dưới mà ra kết quả vẫn ngược ở 'Đỗ Văn Thể'
Capture3.PNG
 
Vấn đề của bạn đơn giản chỉ là do hàng "Đỗ Văn Tập" bạn nhập 1961 không đúng kiểu Date nên Word xử lý toàn bộ cột đó là kiểu Text hết. Bạn để ý cột "Ngaycapcmnd" xem bên đó toàn bộ hàng đúng kiểu Date nên word đã xử lý lại theo định dạng mm/dd/yyyy. Nếu bạn không chịu sửa 1961 bên file Excel thành 1/1/1961 đó thì mình chịu.
 
Vấn đề của bạn đơn giản chỉ là do hàng "Đỗ Văn Tập" bạn nhập 1961 không đúng kiểu Date nên Word xử lý toàn bộ cột đó là kiểu Text hết. Bạn để ý cột "Ngaycapcmnd" xem bên đó toàn bộ hàng đúng kiểu Date nên word đã xử lý lại theo định dạng mm/dd/yyyy. Nếu bạn không chịu sửa 1961 bên file Excel thành 1/1/1961 đó thì mình chịu.
1) Hiện thời nếu sửa 1961 thành 01/01/1961 thì ra kết quả đúng rồi.
2) CMND của 'Đỗ Văn Tập' chuẩn là 1961. Vậy làm sao để vẫn trộn đúng ngày tháng + ra kết quả để trống ngày, tháng nếu đến biến 'Đỗ Văn Tập' bạn nhỉ?
 
1) Hiện thời nếu sửa 1961 thành 01/01/1961 thì ra kết quả đúng rồi.
2) CMND của 'Đỗ Văn Tập' chuẩn là 1961. Vậy làm sao để vẫn trộn đúng ngày tháng + ra kết quả để trống ngày, tháng nếu đến biến 'Đỗ Văn Tập' bạn nhỉ?
Cách mình làm là file Excel sẽ thêm 1 cột Namsinh (cột này dành riêng cho trường hợp CMND chỉ có năm sinh thì cột Namsinh gõ "1961"; cột Ngaysinh để trống). Với cách nay thì cột Ngaysinh luôn định dạng đúng kiểu Date, cột Namsinh thi định dạng là General hay Text hay number gì tùy bạn.
Tại file word "Giấy đi đường" bạn nên để mục:
2. Sinh ngày: «Namsinh»«Ngaysinh»
ô nào trống không có dữ liệu thì Word không hiện gì ra hết (bỏ mấy chữ "tháng", "năm" đi mắc công phải insert nhiều lần, vì kết quả Ngaysinh là đã ghi rõ ràng rồi.
Bạn cũng có thể nghiên cứu thêm mục Rules > chọn Namsinh > chọn if...then...else cho trường hợp "not blank" tại mục "Otherwise insert this text" nếu muốn ghi kèm theo chữ thay thế thì gõ vào chữ "Năm".
 
1) Hiện thời nếu sửa 1961 thành 01/01/1961 thì ra kết quả đúng rồi.
Ở bài #43 tôi đã viết rất rõ
Rõ ràng C5 có vấn đề. Thậm chí 1961 không là số chuẩn mà là số nhưng đeo huy hiệu TEXT.

Sau khi biến C5 thành ngày tháng chuẩn, vd. 17.11.1985 thì cột C là ngày tháng chuẩn. Và bây giờ trộn thư cho kết quả đúng về dạng và đúng ngày tháng, mặc dù trong CP tôi có thiết lập của Ba Lan là dd.MM.rrrr

Chưa biết thế nào nhưng bước đầu tiên là phải nhập dữ liệu chuẩn. Ngày tháng phải là ngày tháng chứ không phải cái nhìn giống ngày tháng.
mà bạn nhất quyết không sửa 1961 thành ngày tháng.

Nhiều thời gian đã mất không cần thiết.
 
Rất đơn giản, mình cũng bị như bạn nhưng sau 30 phút tìm đủ mọi trò mà không được hóa ra lỗi này do các bạn chọn "Vietnamese" trong phần "Advanced" vì vậy các bạn hãy đổi tất cả "Vietnamese" trong Regional and Language Options về "English (United States)" sau đó khởi động lại máy và chỉnh định dạng ngày tháng về "dd/mm/yyyy). Xong nếu làm được thì thank mình nhá! mình đã thành công roài :D --=0
cảm ơn Bác. Em làm theo bác được luôn.
 
Web KT
Back
Top Bottom