[Excel VBA tip] Cách tách ngày tháng năm từ chuỗi văn bản

Đôi khi bạn cần thực hiện tách ngày tháng năm từ một chuỗi văn bản không cố định trong Excel. Việc sử dụng các hàm như LEFT, RIGHT, MID… có lẽ sẽ hơi phức tạp. Vậy sử dụng VBA là cách sẽ giúp bạn tách được một cách dễ dàng hơn.

Bạn để ý, nếu ngày tháng năm được định dạng đầy đủ theo định dạng dd-MM-yyyy thì sẽ có độ dài chuỗi là 10. Nên nếu bạn tách được các phần tử của chuỗi ra từng phần tử riêng và kiểm tra độ dài của từng phần tử đó thì việc tách được ngày tháng năm sẽ khá đơn giản.

1. Tách chuỗi thành từng phần tử trong VBA

Để tách được chuỗi ra thành từng phần tử, bạn hãy sử dụng hàm SPLIT với cú pháp như sau:

= SPLIT(Expression As String, [dấu phân chia])

Trong đó:

  • – Expression As String: là một biến có định dạng kiểu String. Chứa văn bản cần tách.
  • – [dấu phân chia]: là ký tự phân chia giữa các phần tử của văn bản.

Ví dụ: tách chuỗi sau thành các phần tử bằng dấu phân cách “ ” (khoảng trắng).

Hôm nay là ngày 20-01-2019

Thì bạn có thể sử dụng hàm:

Dim chuoi As String

Dim mang() As String

chuoi=”Hôm nay là ngày 20-01-2019″

mang=Split(chuoi, ” “)

Trong đó:

  • – mang() As String: là khai báo dạng mảng 1 chiều. Nếu trong () rỗng là không xác định trước độ dài mảng. Và phần tử bắt đầu có vị trí là 0.
  • – Split(chuoi, ” “): sẽ thực hiện tách chuỗi với dấu phân chia là ” ” (khoảng trắng).

Như vậy, kết quả có được là:

  • mang[0]= “Hôm”
  • mang[1]=”nay”
  • mang[2]=”là”
  • mang[3]=”ngày”
  • mang[4]=”20-01-2019″

2. Cách tách ngày tháng năm từ mảng dữ liệu VBA

Khi đã tách được chuỗi ra các phần tử đơn lẻ, tiếp theo bạn cần thực hiện là kiểm tra độ dài của từng phần tử đó.

Như đã đề cập ở phần đầu bài viết, nếu bạn sử dụng đầy đủ định dạng của ngày tháng năm thì phần tử đó sẽ có độ dài chuỗi là 10. Vậy bạn cần sử dụng thêm 1 vòng lặp FOR để quét kiểm tra độ dài tất cả phần tử của mảng là sẽ tìm ra được.

Dim i As Integer

Dim dodaimang As Long

dodaimang = UBound(mang) – LBound(mang)

For i = 0 To dodaimang Step 1

If Len(mang(i)) = 10 Then

MsgBox mang(i)

End If

Next i

123 (4)

 

 

Trong đó:

  • – UBound(mang): trả về kết quả kiểu Long, giá trị lớn nhất độ dài của mảng.
  • – LBound(mang): trả về kết quả kiểu Long, giá trị nhỏ nhất độ dài của mảng.
  • – Len(mang(i)) = 10: kiểm tra
  • – Độ dài của phần tử thứ i nếu = 10. Tức là phần tử chứa ngày tháng năm.

Excel Tips: Các công cụ phân tích dữ liệu thông dụng trong Excel

Khóa học Ứng dụng Excel trong xử lý dữ liệu

Khóa học Ứng dụng VBA trong Excel

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

1 + 1 = ? (Nhập Haii để trả lời đúng)

Bài viết liên quan
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi Financial Student Contest (FSC) mùa 13 – CLB Tài chính – Chứng khoán (SeSC) – Đại học Ngoại Thương CSII TP. HCM (FTU2)

Chiều tối ngày 13/06/2025, Chung kết cuộc thi Financial Student Contest (FSC) mùa 13 do CLB Tài chính – Chứng khoán (SeSC) thuộc Đại học Ngoại Thương CSII TP. HCM (FTU2)

Xem thêm
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi myInsight – MDS Datathon Challenge 2025 – CLB Toán ứng dụng & Khoa học dữ liệu (MDS) – CSII Đại học Ngoại Thương TP. HCM (FTU2)

Chiều ngày 08/06/2025 vừa qua, cuộc thi myInsight – MDS Datarthon Challenge 2025 đã chính thức tiến đến vòng chung kết dưới sự góp mặt của top 5 đội thi xuất

Xem thêm
Cảm nhận học viên khóa Excel for Analysts

“Mình rất hài lòng về tính ứng dụng thực tế và khả năng nâng cao hiệu quả công việc của khóa học.” Anh Nguyễn Trung Hòa – nhân sự ngành Kế

Xem thêm
Một số hàm sắp xếp (Sort) phổ biến trong Numpy

Sắp xếp (Sort) là một thao tác phổ biến trong phân tích dữ liệu và lập trình. Nó liên quan đến việc sắp xếp các phần tử trong một tập hợp theo

Xem thêm