Cách sửa lỗi ngày tháng trong excel

Ðề: Cách sửa lỗi ngày tháng trong excel

Giả sử những ngày của bạn đã chuyển sang text là 20091225 (ngày 25 tháng 12 năm 2009 đúng không)
Cho nó nằm ở cột A đi (20091225 là A1) => Thì công thức của B1 là: =DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)) sau đó nhớ vào Format Cell mặc định là ngày tháng nhé.
Hoặc;
Nếu bạn muốn để Text thì dùng cái này: =TEXT(DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)),"mm/dd/yyyy")
Cứ thế mà fill xuống dưới thôi,
Thân,

Bạn ui , chỉ cho tớ cách tính thâm niên ngày tháng năm đi
Ví dụ : ngày bắt đầu 16/03/2000 ngày kết thúc 31/12/2009 thì bằng bao nhiêu ngày , tháng , năm ?
Rất mong cả nhà dkt chỉ giúp xin đa tạ
 
Ðề: Cách sửa lỗi ngày tháng trong excel

Có bác nào cao tay giúp em với.
hẳng là thế này . E làm trong 1 cty. họ yêu cầu em làm báo cáo tài chính . Họ gửi file từ hệ thống về cho em sử dụng .Nhưng khi em mở file gốc lên thì ngày tháng nhập tiền vào của hơn 2000 khách hàng bị biển thành dấu ##### hết . Cái này ko phải do ô ko đủ rộng (em đã kéo dãn ra mà ko dc). và 1 vấn đề em thấy lạ là ngày tháng đó khi định dạng kiểu date thi tất cả là dấu ###### còn khi định dạng kiểu text thì ngày tháng trỏ thành 20091225 chứ ko phải là 2009/12/25. hịc nếu mà thế này ngồi nhập hơn 2000 khách hàng thì chết em mất . Có bác nào cao tay chỉ hộ em với . em xin đa tạ .

Bạn gửi một phần file gốc lên đây đi!
Bạn thử sử dụng các hàm left, right, mid và date để tách ngày tháng năm rồi hợp nhất lại theo form dạng date!
 
Sửa lần cuối:
Ðề: Cách sửa lỗi ngày tháng trong excel

Bạn ui , chỉ cho tớ cách tính thâm niên ngày tháng năm đi
Ví dụ : ngày bắt đầu 16/03/2000 ngày kết thúc 31/12/2009 thì bằng bao nhiêu ngày , tháng , năm ?
Rất mong cả nhà dkt chỉ giúp xin đa tạ

Giả sử cho 16/03/2000 tại ô A1, 31/12/2009 tại ô B1
a) Tính riêng từng cột năm, tháng ngày:
- Tính năm: =DATEDIF(A1,B1,"Y") - cột C (ô C1)
- Tính tháng: =DATEDIF(A1,B1,"YM") - có nghĩa là tháng này dư ra sau khi tính năm tại cột C (công thức này đặt tại D1)
- Tương tự, tính ngày: =DATEDIF(A1,B1,"MD") tại cột E (ô E1)
b) Nếu thực hiện trên một cột:
=DATEDIF(A1,B1,"Y")&" năm "&DATEDIF(A1,B1,"Ym")&" tháng "&DATEDIF(A1,B1,"md")&" ngày"

Từ những công thức trên, bạn có thể suy luận ra để tính toán thâm niên cho phù hợp.
 
Sửa lần cuối:
Ðề: Cách sửa lỗi ngày tháng trong excel

Có bác nào cao tay giúp em với.
hẳng là thế này . E làm trong 1 cty. họ yêu cầu em làm báo cáo tài chính . Họ gửi file từ hệ thống về cho em sử dụng .Nhưng khi em mở file gốc lên thì ngày tháng nhập tiền vào của hơn 2000 khách hàng bị biển thành dấu ##### hết . Cái này ko phải do ô ko đủ rộng (em đã kéo dãn ra mà ko dc). và 1 vấn đề em thấy lạ là ngày tháng đó khi định dạng kiểu date thi tất cả là dấu ###### còn khi định dạng kiểu text thì ngày tháng trỏ thành 20091225 chứ ko phải là 2009/12/25. hịc nếu mà thế này ngồi nhập hơn 2000 khách hàng thì chết em mất . Có bác nào cao tay chỉ hộ em với . em xin đa tạ .

Nếu định dạng ổn định (ngày, tháng 2 số) thì chỉ cần dùng hàm left, right và mid là tách được các số cần rồi

=DATE(LEFT(A1;4);MID(A1;5;2);RIGHT(A1;2))
 
Ðề: Cách sửa lỗi ngày tháng trong excel

bạn có thế làm c1= b1-a1 sau đó định dạng với formatcell trong general/number
chúc bạn thành công!!!!!!!!!!!!!!!!!!!!!
 
Ðề: Cách sửa lỗi ngày tháng trong excel

Có bác nào cao tay giúp em với.
hẳng là thế này . E làm trong 1 cty. họ yêu cầu em làm báo cáo tài chính . Họ gửi file từ hệ thống về cho em sử dụng .Nhưng khi em mở file gốc lên thì ngày tháng nhập tiền vào của hơn 2000 khách hàng bị biển thành dấu ##### hết . Cái này ko phải do ô ko đủ rộng (em đã kéo dãn ra mà ko dc). và 1 vấn đề em thấy lạ là ngày tháng đó khi định dạng kiểu date thi tất cả là dấu ###### còn khi định dạng kiểu text thì ngày tháng trỏ thành 20091225 chứ ko phải là 2009/12/25. hịc nếu mà thế này ngồi nhập hơn 2000 khách hàng thì chết em mất . Có bác nào cao tay chỉ hộ em với . em xin đa tạ .


Trong File có sử dụng Macro nó tự động chuyển đổi định dạng ngày tháng năm từ 20091225 thành 25/12/2009 (sử dụng cho 2000 dòng). Em không Upload File lên nên không biết đầu mà lần, để định dạng ngày tháng năm theo kiểu Việt Nam, em Copy vùng cần định dạng rồi Paste vào từ C6 trở xuống ở bất kỳ sheet nào rồi vào Tools > Macro > Macro > NgayThangNam và nhấn Run sẽ được kết quả xong copy kết quả này Paste ngược vào File của em.
File đính kèm.
 

Đính kèm

  • Dinh dang ngay thang nam.rar
    72.3 KB · Lượt xem: 321
Sửa lần cuối:
Ðề: Cách sửa lỗi ngày tháng trong excel

Nều làm như bạn tuan8 mà không được thì bạn dùng hàm này xem
Giả sử nội dung đó ở ô U66
=DATE(LEFT(U66;4);MID(U66;5;2);RIGHT(U66;2))
 
Ðề: Cách sửa lỗi ngày tháng trong excel

Chào Anh/Chị,

Em là nhân viên nhân sự, đang gặp một vấn đề về excel mà kiến thức của em thì có hạn nên chưa giải quyết được, nên đang tìm sư phụ chỉ dạy.

Tình hình là như thế này: Em có một file excel danh sách khoảng 200.000 record, trong đó có cột ngày tháng rất lộn xộn theo 4 định dạng chính sau như: 20-11-2012; 20-Nov-2012; Nov-20-2012; 11-20-2012
Nay em đã phân các record theo từng dạng nhất định vào 4 sheet riêng, đang tìm cách đổi các định dạng ngày tháng này trở thành: 2012-11-20 (YYYY-MM-DD), nhưng không biết phải làm gì tiếp theo sau.

Em lang thang trên internet thì tìm được thông tin hướng dẫn cách tính ngày tháng của các Anh/Chị, rất hay ở threat này. Do đó, em mạo muội gửi email này để xin Anh/Chị giúp đỡ em cách chuyển đổi ngày trong excel theo định dạng mong muốn của em là: 2012-11-20 (YYYY-MM-DD),

Xin Anh/Chị vui lòng dành một ít thời gian để chỉ giáo cho em có được không ạ? Em xin chân thành cảm ơn Anh/Chị.
 
Ðề: Cách sửa lỗi ngày tháng trong excel

Chào Anh/Chị,

Em là nhân viên nhân sự, đang gặp một vấn đề về excel mà kiến thức của em thì có hạn nên chưa giải quyết được, nên đang tìm sư phụ chỉ dạy.

Tình hình là như thế này: Em có một file excel danh sách khoảng 200.000 record, trong đó có cột ngày tháng rất lộn xộn theo 4 định dạng chính sau như: 20-11-2012; 20-Nov-2012; Nov-20-2012; 11-20-2012
Nay em đã phân các record theo từng dạng nhất định vào 4 sheet riêng, đang tìm cách đổi các định dạng ngày tháng này trở thành: 2012-11-20 (YYYY-MM-DD), nhưng không biết phải làm gì tiếp theo sau.

Em lang thang trên internet thì tìm được thông tin hướng dẫn cách tính ngày tháng của các Anh/Chị, rất hay ở threat này. Do đó, em mạo muội gửi email này để xin Anh/Chị giúp đỡ em cách chuyển đổi ngày trong excel theo định dạng mong muốn của em là: 2012-11-20 (YYYY-MM-DD),

Xin Anh/Chị vui lòng dành một ít thời gian để chỉ giáo cho em có được không ạ? Em xin chân thành cảm ơn Anh/Chị.

Em Sort cột ngày tháng để sắp xếp theo từng định dạng rồi copy mỗi loại định dạng riêng 1 sheet rồi tải File lên anh giúp định dạng lại theo yêu cầu (cần định dạng kiểu gì?) nêu cụ thể trong File nhé.
 
Ðề: Cách sửa lỗi ngày tháng trong excel

Cám ơn Anh Be09 đã nhận lời giúp em.
Em upload file sample để anh xem qua 2 định đạng chính là sheet "DD-MMM-YYYY" và "MMM-DD-YYYY", mà em đã qua một quá trình sàng lọc rất mất công từ định đang lung tung như trong sheet "original".

Thực tế thì file của em có 220,000 records chứa khoảng 12 cột khác nhau nên có dung lượng hơn 10Mb, em không thể upload file gốc lên được mà chỉ chọn ra một số ít record để làm mẫu.

Em nhờ anh chuyển thành định dạng mới là YYYY-MMM-DD, ví dụ: 2012-Oct-22. Nếu anh có thể giúp em định dạng trực tiếp từ sheet original để em sử dụng cho những lần sau này thì quá tuyệt vời. Tuy nhiên, em nghĩ là yêu cầu này không thể thực hiện được, phải không anh?

Xin cám ơn anh đã bỏ thời gian để chỉ giáo em.
 

Đính kèm

  • date_Sample.xls
    27.5 KB · Lượt xem: 259
Ðề: Cách sửa lỗi ngày tháng trong excel

Ngày mai thứ bảy anh rảnh sẽ viết Code và kèm hướng dẫn, hôm nay bận quá nên làm chưa xong (bây giờ là 3 giờ 40 rồi anh phải ngũ thôi).
 
Ðề: Cách sửa lỗi ngày tháng trong excel

Em rất cảm kìch về sự nhiệt tình của Anh. Cám ơn Anh.
 
Ðề: Cách sửa lỗi ngày tháng trong excel

Có thể làm được mà không cần viết VBA code, nhưng cách làm hơi dài dòng, bạn phải chuẩn bị đủ kiên nhẫn.

** Chọn cả cột dữ liệu ngày tháng trên và dùng Find/Replace (Ctrl+h) để
- xóa tất cả các trị không cần thiết như ",", "st", "th", "nd"
- đổi tất cả các đấu '-' và dấu '/' thành ra dấu cách ' '

** Dùng hàm TRIM để xóa các dấu cách đầu, dấu cách cuối, và đơn giản các dấu cách giữa
(cách làm: tạo một cột mới, =TRIM(cột cũ), copy và paste value only vào cột cũ, delete cột mới)

** Dùng hàm =IF(len(Ô_DL)<=4, "01 01 ", "") & Ô_DL : { Ô_DL = Ô chứa dữ liệu }
để đặt ngày tháng cho các trị chỉ có năm, không có ngày tháng; tức là "1975" --> "01 01 1975"
(dùng phuơng pháp: insert new column > viết hàm > copy/paste value > delete column như trên)

Sau khi làm đên đây, bạn sẽ có một cột thuộc dạng "ngày tháng năm" hoặc "tháng ngày năm"

** Tạo ra 3 cột mới, mục đich của 3 cột này là tách Ô_DL của bạn ra thành 3 phần
cột thứ nhất: =TRIM(LEFT(Ô_DL, FIND(" ",Ô_DL))
cột thứ hai: =TRIM(LEFT(TRIM(substitute(Ô_DL,Cộttn,"")),FIND(" ",TRIM(substitute(Ô_DL,Cộttn,"")))))
cột thứ ba: ==TRIM(SUBSTITUTE(Ô_DL, Cộttn & " " & Cộtth,""))

** cột kết quả cuối cùng:
=cột_3 & "/" & TEXT(IF(AND(cột_2<="3",cột_1<="3"), cột_2, MONTH(DATEVALUE(IF(cột_1>"3",cột_1,cột_2)&" 1"))),"00") & "/" & TEXT(IF(cột_2<="3",cột_2,cột_3),"00")

giải thích: năm +
{ xét xem cột 1 và 2 cột nào là chữ, và dịch ra thành số tháng, nếu không có cột nào là chữ thì chọn cột 2 là số tháng } +
{ xét nếu cột 1 là số thì dùng cột 1, nếu không thì dùng cột 2 }

** copy/paste value cột này và xóa các cột được tạo tạm thời trước đây

Đương nhiên là nếu viết VBA để sửa thì gọn hơn nhiều. Ở đây tôi chỉ đưa ra 1 giải pháp chứ không tranh luận là giải pháp tối ưu.

Lưu ý là dữ liệu của bạn có một vài cái chẳng ra gì cả (vd Jan 15th1973 - không có dấu cách giữa 15th và 1973) bạn phải suy liệu tìm cách sửa.
 
Sửa lần cuối:
Ðề: Cách sửa lỗi ngày tháng trong excel

Cám ơn Anh, em se xem kỹ và thực hiện các bước Anh hướng dẫn. Nếu gặp khó khăn gì, chắc em sẽ lại làm phiền đến Anh :)
 
Ðề: Cách sửa lỗi ngày tháng trong excel

Em nghĩ giải pháp của Anh đưa ra là phù hợp và tối ưu cho khả năng xử lý Excel nghiệp dư của em, so với giải pháp viết VBA thì em xin giơ tay đầu hàng :)!

Sau khi sàng lọc lại dữ liệu em thực hiện bước tách ngày tháng năm của cột ngày tháng theo như Anh hướng dẫn. Tuy nhiên đến bước đặt hàm cho cột thứ hai và thứ ba (như liệt kê bên dưới) thì em bó tay vì không hiểu “Cộtttn” là cột nào! Dù thế, em vẫn thử đưa các con số vào nhưng không thành công!!!

Do đó, em gửi lại file Excel thí dụ để nhờ Anh xem qua và tạo công thức trực tiếp vào file Excel giúp em để có định dạng cuối cùng là: yyyy/mm/dd <=> 2012/11/27.
Em xin cảm ơn Anh.

cột thứ hai: =TRIM(LEFT(TRIM(substitute(Ô_DL,Cộttn,"")),FIND(" ",TRIM(substitute(Ô_DL,Cộttn,"")))))
cột thứ ba: ==TRIM(SUBSTITUTE(Ô_DL, Cộttn & " " & Cộtth,""))

** cột kết quả cuối cùng:
=cột_3 & "/" & TEXT(IF(AND(cột_2<="3",cột_1<="3"), cột_2, MONTH(DATEVALUE(IF(cột_1>"3",cột_1,cột_2)&" 1"))),"00") & "/" & TEXT(IF(cột_2<="3",cột_2,cột_3),"00")

giải thích: năm +
{ xét xem cột 1 và 2 cột nào là chữ, và dịch ra thành số tháng, nếu không có cột nào là chữ thì chọn cột 2 là số tháng } +
{ xét nếu cột 1 là số thì dùng cột 1, nếu không thì dùng cột 2 }

** copy/paste value cột này và xóa các cột được tạo tạm thời trước đây

Đương nhiên là nếu viết VBA để sửa thì gọn hơn nhiều. Ở đây tôi chỉ đưa ra 1 giải pháp chứ không tranh luận là giải pháp tối ưu.

Lưu ý là dữ liệu của bạn có một vài cái chẳng ra gì cả (vd Jan 15th1973 - không có dấu cách giữa 15th và 1973) bạn phải suy liệu tìm cách sửa.
 

Đính kèm

  • help.xls
    36 KB · Lượt xem: 245
Ðề: Cách sửa lỗi ngày tháng trong excel

Nếu bạn làm đến trên rồi thì có thể tiếp tục như file đính kèm
và mình nhận thấy có một vài kí tự đặc biệt ở 2 dòng đầu (không phải khoảng trống nhưng lại được đếm như 1 kí tự) hướng giải quyết là xem lại nguồn trích lọc ra để sửa nên đánh lại có lẽ chỉ 1 vài trường hợp mắc phải.

View attachment 12946
 

Đính kèm

  • help1.xls
    42 KB · Lượt xem: 235
Ðề: Cách sửa lỗi ngày tháng trong excel

1. Xin lỗi tôi nói chuyện hơi chủ quan:

Cottn = Cột_1 = cột thứ nhất : tức là ô dữ liệu tương ứng ở cột thứ nhất, ví dụ cột này là M và bạn đang ở dòng 3 thì nó là M3
Cotth = Cột_2 = cột thứ hai
Cottb = Cột_3 = cột thứ ba
Đây là 3 cột mà bạn dùng để tách chuỗi ngày tháng của bạn thành ra 3 từ ngày, tháng, năm rieng biệt.

2. Dữ liệu của bạn có nhiều ký tự nằm không đúng chỗ.

- Bạn phải dùng hàm TRIM để chúng cắt bỏ dấu cách ở đầu, ớ cuối, và các dấu cách dư ở giữa

- Một vài dữ liệu có cả dấu hiệu xuống dòng. Để bỏ dấu này, bạn phải dùng Find/Replace (Ctrl+h)
Find: Altr+010
Replace with: (để trống)

- Để cắt bỏ 'st' (trong 1st, 21st, 31st) bạn không thể dùng Find/Rpeplace 'st' with (trống) được, vì làm như thế bạn sẽ bị ảnh hưởng đến August. Dùng Find/Replace '1st' with '1'

Kỹ năng sửa dữ liệu hàng loạt là kỹ năng mà bất cứ ai làm việc với bảng tính Excel đều phải thông thạo. Bạn nên kiên nhẫn tập làm quen.
 
Ðề: Cách sửa lỗi ngày tháng trong excel

Tôi chỉ đưa phương pháp trên cho bạn tập làm quen với Excel. Nếu mò mãi vẫn không thành công và tình trạng cần phải thu xếp cho nhanh thì dùng code VBA như sau:

Lập một sheet mới tên Temporary để làm việc (và xóa đi sau khi làm xong)

Mã:
Sub ChuanHoaNgay()

Const SHEET_BD As String = "Original" ' tên sheet ban đầu
Const SHEET_TT As String = "Temporary" ' tên sheet tạm thời
Const COLUMN_BD As String = "A" ' cột chính dữ liệu ngày

Dim rg, rg1 As Range
Dim rowCur, rowBeg, rowEnd As Integer
Dim res As Boolean
Dim str, str1, str2, str3 As String
Dim vars As Variant

Worksheets(SHEET_BD).Columns(COLUMN_BD).Copy _
        Destination:=Worksheets(SHEET_TT).Columns(COLUMN_BD) ' copy dòng dữ liệu sang sheet tạm thời

rowEnd = Worksheets(SHEET_TT).Range(COLUMN_BD & Rows.Count).End(xlUp).Row ' tìm dòng cuối cùng

rowBeg = 2 ' dữ liệu bắt đầu ở dòng 2, nếu bắt đầu ở dòng 1 thì sửa ở đây

Set rg = Worksheets(SHEET_TT).Range(COLUMN_BD & rowBeg & ":" & COLUMN_BD & rowEnd)
' loại bỏ những ký tự thừa, chr(9) là ký tự xuống dòng
res = rg.Replace(Chr(9), " ")
res = rg.Replace(",", " ")
res = rg.Replace(".", " ")
res = rg.Replace("1st", "1 ")
res = rg.Replace("nd", " ")
res = rg.Replace("rd", " ")
res = rg.Replace("th", " ")
res = rg.Replace("/", " ")
res = rg.Replace("-", " ")

Set rg1 = rg.Offset(0, 1) ' cột tạm thời chứa kết quả để kiểm soát trước khi chép thực thụ

For rowCur = 1 To rowEnd - rowBeg + 1 ' đi tưng ô trong khoảng đã chọn
    vars = Split(Application.Trim(rg(rowCur).Value), " ") ' tách chuỗi ra thành từng từ
    str1 = "01"
    str2 = "01"
    str3 = vars(UBound(vars))
    If UBound(vars) > 0 Then str2 = vars(UBound(vars) - 1) ' nếu không có tháng thì mặc định là 1
    If UBound(vars) > 1 Then str1 = vars(UBound(vars) - 2) ' nếu không có ngày thì mặc định là 1
    If Left(str1, 1) > "9" Then ' nếu chuỗi thứ 1 không phải là số thì hoán vị với chuỗi 2
        str = str2
        str2 = str1
        str1 = str
    End If
    If Left(str2, 1) > "9" Then str2 = Mid("010203040506070809101112", _
        InStr("anebarprayunulugepctovec", Mid(str2, 2, 2)), 2) ' đổi tên tháng thành số
    rg1(rowCur).Value = str3 & "/" & Format(str2, "00") & "/" & Format(str1, "00")
Next rowCur

' sau khi chạy xong, bạn xem lại cột B ở sheet tạm thời
' nếu tốt rồi thì uncomment (xóa dấu nháy đơn) ở dòng sau
' và chạy lại để code chép kết quả vào sheet ban đầu

' rg1.Copy Destination:=Worksheets(SHEET_BD).Range(rg.Address).Offset(0, 1)

Set rg = Nothing
Set rg1 = Nothing

End Sub
 
Ðề: Cách sửa lỗi ngày tháng trong excel

Kha, kha, kha:votay: ….

“Mission impossible” cứ ngỡ là em không thể làm được thì em dành thời gian cuối tuần để hoàn tất xong và báo cáo lên cho sếp. Làm được điều này là nhờ có sự hướng dẫn nhiệt tình của các Anh/Chị trong diễn đàn. Em xin cám ơn rất nhiều, nhất là Anh/Chị VietMini, Thacsanorg, Be09.

Anh/Chị VietMini đã dành thời gian để viết VBA cho em thì còn gì bằng. Tuy nhiên, vì em tự học excel nên những cách xử lý dữ liệu excel chuyên sâu thì lúc này em chưa thực hiện được. Nếu có thời gian rãnh, em sẽ nghiên cứu học hỏi them cách viết VBA của Anh/Chị VietMini đã hướng dẫn.

Tuy nhiên, em vẫn còn gặp một trục trặc nhỏ như sau: vì do một bạn đồng nghiệp sơ xuất xuất dữ liệu này 2 lần nên em có khá nhiều record bị trùng ID, tên… em không biết có cách nào dùng hàm gì đó để xóa hoặc tách riêng các record có chung ID (như em đã tô đỏ trong attached files) Các Anh/Chị giúp em với.


Tôi chỉ đưa phương pháp trên cho bạn tập làm quen với Excel. Nếu mò mãi vẫn không thành công và tình trạng cần phải thu xếp cho nhanh thì dùng code VBA như sau:

Lập một sheet mới tên Temporary để làm việc (và xóa đi sau khi làm xong)

Mã:
Sub ChuanHoaNgay()

Const SHEET_BD As String = "Original" ' tên sheet ban đầu
Const SHEET_TT As String = "Temporary" ' tên sheet tạm thời
Const COLUMN_BD As String = "A" ' cột chính dữ liệu ngày

Dim rg, rg1 As Range
Dim rowCur, rowBeg, rowEnd As Integer
Dim res As Boolean
Dim str, str1, str2, str3 As String
Dim vars As Variant

Worksheets(SHEET_BD).Columns(COLUMN_BD).Copy _
        Destination:=Worksheets(SHEET_TT).Columns(COLUMN_BD) ' copy dòng dữ liệu sang sheet tạm thời

rowEnd = Worksheets(SHEET_TT).Range(COLUMN_BD & Rows.Count).End(xlUp).Row ' tìm dòng cuối cùng

rowBeg = 2 ' dữ liệu bắt đầu ở dòng 2, nếu bắt đầu ở dòng 1 thì sửa ở đây

Set rg = Worksheets(SHEET_TT).Range(COLUMN_BD & rowBeg & ":" & COLUMN_BD & rowEnd)
' loại bỏ những ký tự thừa, chr(9) là ký tự xuống dòng
res = rg.Replace(Chr(9), " ")
res = rg.Replace(",", " ")
res = rg.Replace(".", " ")
res = rg.Replace("1st", "1 ")
res = rg.Replace("nd", " ")
res = rg.Replace("rd", " ")
res = rg.Replace("th", " ")
res = rg.Replace("/", " ")
res = rg.Replace("-", " ")

Set rg1 = rg.Offset(0, 1) ' cột tạm thời chứa kết quả để kiểm soát trước khi chép thực thụ

For rowCur = 1 To rowEnd - rowBeg + 1 ' đi tưng ô trong khoảng đã chọn
    vars = Split(Application.Trim(rg(rowCur).Value), " ") ' tách chuỗi ra thành từng từ
    str1 = "01"
    str2 = "01"
    str3 = vars(UBound(vars))
    If UBound(vars) > 0 Then str2 = vars(UBound(vars) - 1) ' nếu không có tháng thì mặc định là 1
    If UBound(vars) > 1 Then str1 = vars(UBound(vars) - 2) ' nếu không có ngày thì mặc định là 1
    If Left(str1, 1) > "9" Then ' nếu chuỗi thứ 1 không phải là số thì hoán vị với chuỗi 2
        str = str2
        str2 = str1
        str1 = str
    End If
    If Left(str2, 1) > "9" Then str2 = Mid("010203040506070809101112", _
        InStr("anebarprayunulugepctovec", Mid(str2, 2, 2)), 2) ' đổi tên tháng thành số
    rg1(rowCur).Value = str3 & "/" & Format(str2, "00") & "/" & Format(str1, "00")
Next rowCur

' sau khi chạy xong, bạn xem lại cột B ở sheet tạm thời
' nếu tốt rồi thì uncomment (xóa dấu nháy đơn) ở dòng sau
' và chạy lại để code chép kết quả vào sheet ban đầu

' rg1.Copy Destination:=Worksheets(SHEET_BD).Range(rg.Address).Offset(0, 1)

Set rg = Nothing
Set rg1 = Nothing

End Sub
 

Đính kèm

  • DuplicatedID.JPG
    79.1 KB · Lượt xem: 283
Ðề: Cách sửa lỗi ngày tháng trong excel

Muốn lọc dữ liệu thì em tải File lên chỉ chừa vài chục dòng dữ liệu là được, có dữ liệu thì mới thuận tiện cho việc hướng dẫn cụ thể và tránh cho việc hỏi đi hỏi lại nhiều lần mất thời gian, việc trích lọc những record bị trùng lập thì có nhiều cách:

- Insert cột phụ rồi dùng toán trừ.
- Insert cột phụ rồi dùng công thức.
- Sử dụng Advanced Filter.
- Cao cấp hơn thì dùng VBA.
Do không có File nên anh không biết cột ID nó nằm ở dòng thứ mấy và ở cột nào nên không biết hướng dẫn như thế nào?
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top