Lấy ngày tháng

Liên hệ QC

buanhanphonui

Thành viên mới
Tham gia
25/10/11
Bài viết
20
Được thích
2
Cả nhà giúp e! E muốn lấy ngày tháng mà không bị chuyển sang định dạng số
 

File đính kèm

  • Qua han.xlsx
    1.5 MB · Đọc: 22
Bạn sửa thêm công thức thành LEFT(C2,10)*1
và FORMAT CELLS cả cột đó thành định dạng dd/mm/yyyy là OKla!
Dùng hàm LEFT là sai nha bạn. Bởi cột C nó đã là Date rồi thì không thể dùng các hàm xử lý chuỗi được
Chính xác thì phải =INT(C2) rồi định dạng lại (nếu cần)
 
Bạn sửa thêm công thức thành LEFT(C2,10)*1
và FORMAT CELLS cả cột đó thành định dạng dd/mm/yyyy là OKla!
Mình đã thử và thấy kết quả rất ngon lành. :)
Dùng hàm LEFT là sai nha bạn. Bởi cột C nó đã là Date rồi thì không thể dùng các hàm xử lý chuỗi được
Chính xác thì phải =INT(C2) rồi định dạng lại (nếu cần)
Dùng Left cho 1 date thấy nó cũng sai sai nhưng hình như Excel thông minh nó tự hiểu tự xử lý được luôn rồi bác ơi !
Còn dùng hàm Int(C2) như bác chỉ thì không có... ra. Hình như phải thêm 1 cái hàm nào nữa vào đúng ko bác?
 
Mình đã thử và thấy kết quả rất ngon lành. :)

Dùng Left cho 1 date thấy nó cũng sai sai nhưng hình như Excel thông minh nó tự hiểu tự xử lý được luôn rồi bác ơi !
Còn dùng hàm Int(C2) như bác chỉ thì không có... ra. Hình như phải thêm 1 cái hàm nào nữa vào đúng ko bác?
Với file trên, công thức LEFT(C2,10)*1 may mắn mà trúng (chứ không phải Excel thông minh). Nguyên nhân vì phần đuôi (phần giờ) đang là zero. Thử sửa phần giờ ở C2 thành 10:29:20 AM rồi kiểm tra bằng công thức =LEFT(C2,10)*1=C2 xem nó có TRUE không?
------------------------------------------------------------------------------------------
Dùng hàm INT xong bạn phải format cell để có kết quả như ý nhé. Mục đích của INT là để loại bỏ phần giờ nếu có
 
Với file trên, công thức LEFT(C2,10)*1 may mắn mà trúng (chứ không phải Excel thông minh). Nguyên nhân vì phần đuôi (phần giờ) đang là zero. Thử sửa phần giờ ở C2 thành 10:29:20 AM rồi kiểm tra bằng công thức =LEFT(C2,10)*1=C2 xem nó có TRUE không?
------------------------------------------------------------------------------------------
Dùng hàm INT xong bạn phải format cell để có kết quả như ý nhé. Mục đích của INT là để loại bỏ phần giờ nếu có
Bác nói con mới để ý trong file dữ liệu cột ngày tháng toàn giờ 00:00:00.
Mà con thử bẫy lỗi như bác nói rồi mà nó vẫn... đúng luôn. éc
1592882737553.png
 
Nhờ bác chỉ cho con đường sáng ngõ hầu thoát khỏi bến mê.
Công thức LEFT(C2,...) sẽ lấy phần bên trái của cell C2 ở dạng General chứ không phải dạng ngày tháng bạn đang thấy. Vậy bạn cứ format cell C2 thành General tự nhiên sẽ biết
Để chứng minh, bạn dùng công thức =LEFT(C2,2) xem nó ra bao nhiêu?
 
Công thức LEFT(C2,...) sẽ lấy phần bên trái của cell C2 ở dạng General chứ không phải dạng ngày tháng bạn đang thấy. Vậy bạn cứ format cell C2 thành General tự nhiên sẽ biết
Để chứng minh, bạn dùng công thức =LEFT(C2,2) xem nó ra bao nhiêu?
Hình như con đã ngộ ra được vấn đề, hiiiiiii.

1592886698517.png

Nhưng con nghĩ với cái đề bài này thì bạn kia làm hàm Left() * 1 chắc cũng "đủ" để giải quyết rồi đúng không bác?!
Con giờ chỉ không hiểu chỗ Excel nó tự hiểu ô dữ liệu Date kia thành 1 chuỗi thôi.

Thax bác nhiều.
 
Nhưng con nghĩ với cái đề bài này thì bạn kia làm hàm Left() * 1 chắc cũng "đủ" để giải quyết rồi đúng không bác?!
Con giờ chỉ không hiểu chỗ Excel nó tự hiểu ô dữ liệu Date kia thành 1 chuỗi thôi.
Ngày tháng thực chất là một con số nào đó. Excel lấy ngày gốc là ngày 1 tháng 1 năm 1900 và ngày ấy xem như là số 1. Từ đó tính đến hôm nay, ngày 23 tháng 6 năm 2020 đã trải qua 44005 ngày rồi.
Điều này có nghĩa là nếu như bạn nhìn thấy trên bảng tính Excel một cell có giá trị 23/6/2020 thì giá trị thật của nó chính là 44005 và Excel sẽ dùng giá trị thật này vào các phép toán. Còn chuyện format cell để có thể nhìn thấy "này nọ" chỉ như là màn ảo thuật thôi
 
Ngày tháng thực chất là một con số nào đó. Excel lấy ngày gốc là ngày 1 tháng 1 năm 1900 và ngày ấy xem như là số 1. Từ đó tính đến hôm nay, ngày 23 tháng 6 năm 2020 đã trải qua 44005 ngày rồi.
Điều này có nghĩa là nếu như bạn nhìn thấy trên bảng tính Excel một cell có giá trị 23/6/2020 thì giá trị thật của nó chính là 44005 và Excel sẽ dùng giá trị thật này vào các phép toán. Còn chuyện format cell để có thể nhìn thấy "này nọ" chỉ như là màn ảo thuật thôi
Thì ra, giờ con mới hiểu Left (...,10) là nó lấy bên trái của chuỗi số này: 42721,437037037. => Còn nếu như bác dùng Int thì nó sẽ lấy chỉ 42721,437037037 phần tô đậm.
Lúc này thì căn nguyên vấn đề đã được sáng tỏ. Con hiểu được tại sao Left nó "đúng" với bài này rồi. Gọi là đúng nhưng hơi bị dư, nó đúng với yêu cầu bài toán nhờ kết hợp với Format, chứ thực chất nó có vấn đề. (Đúng mà bị dư có khi nó thành sai chứ nhỉ. Bài toán kết quả là 5 mà tính ra 5,01 là đâu có được :D )
Mà con nói chắc có 1 mình con hiểu, hiiii.

ps: tự nhiên ngồi nghiệm nghiệm con nghĩ ra được sẽ có "hậu quả" nếu dùng hàm Left * 1 xong ta cứ tưởng cột kết quả đã là 1 dữ liệu Ngày tháng tròn trịa. Ta lấy cột này tính toán tiếp thì đến 1 lúc nào đó nó sẽ bị sai mà không hiểu vì sao, hiiiiiii.
 
Lần chỉnh sửa cuối:
Ngày tháng thực chất là một con số nào đó. Excel lấy ngày gốc là ngày 1 tháng 1 năm 1900 và ngày ấy xem như là số 1. Từ đó tính đến hôm nay, ngày 23 tháng 6 năm 2020 đã trải qua 44005 ngày rồi.
Điều này có nghĩa là nếu như bạn nhìn thấy trên bảng tính Excel một cell có giá trị 23/6/2020 thì giá trị thật của nó chính là 44005 và Excel sẽ dùng giá trị thật này vào các phép toán. Còn chuyện format cell để có thể nhìn thấy "này nọ" chỉ như là màn ảo thuật thôi
Bác nói hay quá, khai sáng cho bọn em được bao điều, mà trước giờ toàn không hiểu căn nguyên gốc rễ, đa phần làm máy móc để có thể ra được yêu cầu của bài. Cám ơn bác ạ! Bác đã đến tầm chơi đùa với Excel rồi thì phải ???
 
Hàm INT không hẳn là hàm chuẩn để cắt bỏ số lẻ. Nó chỉ là hàm làm tròn xuống. Nếu số âm thì nó vẫn làm tròn xuống trị nhỏ hơn INT(-0.1) = -1.
Vì ở đây ngày tháng là số dương nên bạn không thấy thấy vấn đề gì. Nhuynwg nếu có cộng trừ nhân chia thì sẽ có khả năng thấy.

Hàm chuẩn để cắt bỏ số lẻ là hàm TRUNC.
 
Web KT
Back
Top Bottom