Menu

Tự động phân tách dữ liệu ngày tháng từ chuỗi văn bản bằng Power Query

Đèo Trọng Uy 15/06/2026 01:44 493 lượt xem 3 trả lời

Chào các bác, dạo này em hay phải xử lý các file báo cáo mà ngày tháng được lưu dưới dạng chuỗi văn bản, ví dụ như "Báo cáo ngày 31/12/2023" hoặc "Hợp đồng số 123 - ký ngày 15-03-2024". Việc này gây khó khăn khi muốn lọc hay sắp xếp theo ngày.

Em đã thử dùng các hàm text trong Excel nhưng khá thủ công và dễ sai sót. Gần đây em có mày mò tìm hiểu Power Query và phát hiện ra nó có thể xử lý vụ này một cách tự động và hiệu quả.

Cách làm của em như sau:

  • Đầu tiên, em load dữ liệu vào Power Query.
  • Chọn cột chứa chuỗi văn bản cần xử lý.
  • Vào tab Add Column, chọn Extract -> Text Between Delimiters.
  • Trong ô Start Delimiter, em nhập "ngày " (hoặc ký tự đứng trước ngày tháng).
  • Trong ô End Delimiter, em nhập ký tự đứng sau ngày tháng, ví dụ "" (nếu ngày tháng là cuối chuỗi) hoặc ký tự khác như " - ", "/", "." tùy cấu trúc chuỗi của bác.
  • Power Query sẽ trích xuất phần chuỗi chứa ngày tháng ra một cột mới.
  • Cuối cùng, em chuyển đổi kiểu dữ liệu của cột mới này thành Date.

Cách này giúp em xử lý hàng loạt mà không cần nhớ các biểu thức chính quy phức tạp. Tuy nhiên, nếu định dạng ngày tháng trong chuỗi quá đa dạng (ví dụ: 31/12/2023, 15-03-2024, 2024.01.10), có thể cần kết hợp thêm một vài bước xử lý khác.

Không biết có bác nào có cách nào hay hơn hoặc gặp tình huống tương tự không, chia sẻ cho em học hỏi với ạ!

1

Hay quá bạn ơi! Cái vụ phân tách ngày tháng từ chuỗi đúng là đau đầu thật. Mình cũng từng gặp trường hợp tương tự và cứ phải ngồi lọc tay mất bao thời gian.

Cách bạn dùng Power Query để tự động hóa là rất chuẩn. Mình có một gợi ý nhỏ, nếu chuỗi văn bản của bạn có nhiều định dạng ngày tháng khác nhau, bạn có thể thử dùng hàm DateTime.FromText kết hợp với Text.Combine để tạo ra một định dạng chuẩn trước khi trích xuất ngày tháng. Đôi khi nó sẽ xử lý được nhiều trường hợp phức tạp hơn đó.

Cảm ơn bạn đã chia sẻ cách làm hay nhé!

2

Đúng là mảng này của Power Query tiện lợi thật! Mình cũng hay gặp tình huống cần trích xuất ngày tháng từ các chuỗi văn bản lộn xộn như bạn mô tả. Cách bạn làm dùng Power Query là chuẩn bài rồi, vừa tự động vừa chính xác.

Bạn có thử áp dụng cho trường hợp ngày tháng có cả năm ở đầu không, ví dụ "2023/12/31"? Không biết PQ xử lý có mượt mà không nhỉ?

1

Hay quá bạn ơi! Cái vụ phân tách ngày tháng từ chuỗi đúng là đau đầu thật. Mình cũng từng gặp trường hợp tương tự và cứ phải ngồi lọc tay mất bao thời gian.

Cách bạn dùng Power Query để tự động hóa là rất chuẩn. Mình có một gợi ý nhỏ, nếu chuỗi văn bản của bạn có nhiều định dạng ngày tháng khác nhau, bạn có thể thử dùng hàm DateTime.FromText kết hợp với Text.Combine để tạo ra một định dạng chuẩn trước khi trích xuất ngày tháng. Đôi khi nó sẽ xử lý được nhiều trường hợp phức tạp hơn đó.

Cảm ơn bạn đã chia sẻ cách làm hay nhé!

2

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký