[Power Query Tutorial] Cách sử dụng Extract trong Power BI

Khi xử lý dữ liệu trong Power BI, làm sạch và chuẩn hóa dữ liệu dạng văn bản luôn là một trong những bước chiếm nhiều thời gian nhất. Để giúp các nhà phân tích tối ưu hóa quy trình này, Power Query cung cấp bộ công cụ cực kỳ mạnh mẽ mang tên Extract.

Trong bài viết này, chúng ta sẽ cùng khám phá chi tiết về chức năng Extract trong Power BI, cách ứng dụng thực tế thông qua hình ảnh trực quan và cách làm chủ các mã M đằng sau giao diện kéo thả.

Chức năng Extract trong Power BI là gì?

Extract trong Power BI (hay chính xác hơn là trong Power Query Editor) là nhóm tính năng cho phép bạn trích xuất một phần ký tự hoặc thông tin từ một cột dữ liệu văn bản hiện có để tạo ra một giá trị mới.

Thay vì phải viết những công thức DAX phức tạp ở tầng Data Model, bạn có thể thực hiện việc trích xuất ngay từ bước ETL (Extract, Transform, Load) ban đầu. Điều này giúp tối ưu hóa hiệu suất báo cáo và giữ cho mô hình dữ liệu luôn gọn nhẹ.

Bộ công cụ Extract trong Power Query cung cấp các chức năng chính sau:

  • Length (Độ dài chuỗi): Đếm và trả về tổng số lượng ký tự (bao gồm cả khoảng trắng và ký tự đặc biệt) có trong ô dữ liệu văn bản.
  • First Characters (Các ký tự đầu tiên): Giúp bạn lấy ra một số lượng ký tự nhất định tính từ phía bên trái (bắt đầu chuỗi) của văn bản.
  • Last Characters (Các ký tự cuối cùng): Ngược lại với First Characters, chức năng này trích xuất số lượng ký tự nhất định tính từ phía bên phải (cuối chuỗi) của văn bản.
  • Range (Khoảng ký tự): Cho phép bạn trích xuất một phân đoạn văn bản nằm ở giữa chuỗi bằng cách xác định chỉ số bắt đầu (Starting Index) và số lượng ký tự cần lấy.
  • Text Before Delimiter (Văn bản trước ký tự phân tách): Trích xuất toàn bộ phần văn bản đứng trước một ký tự phân tách được chỉ định (ví dụ: dấu phẩy, khoảng trắng, dấu gạch ngang, ký tự @).
  • Text After Delimiter (Văn bản sau ký tự phân tách): Trích xuất toàn bộ phần văn bản đứng sau ký tự phân tách được chỉ định. Chức năng này còn hỗ trợ tùy chọn nâng cao để bỏ qua một số lượng ký tự phân tách nhất định.
  • Text Between Delimiters (Văn bản giữa các ký tự phân tách): Trích xuất phần văn bản nằm kẹp giữa hai ký tự phân tách (ví dụ: lấy phần chữ nằm giữa cặp dấu ngoặc đơn, dấu ngoặc kép hoặc các ký hiệu đặc biệt của URL).

Tại sao nên sử dụng Extract trong Power Query thay vì viết DAX?

Đối với các chuyên gia dữ liệu, việc quyết định xử lý dữ liệu ở bước nào cực kỳ quan trọng. Dưới đây là những lý do bạn nên ưu tiên sử dụng Extract trong Power Query thay vì tạo các cột tính toán (Calculated Columns) bằng DAX:

  • Tối ưu hóa dung lượng file (Compression): Dữ liệu được trích xuất trong Power Query sẽ được nén tốt hơn bởi công cụ lưu trữ VertiPaq của Power BI, giúp dung lượng file pbix của bạn nhẹ hơn đáng kể.
  • Tốc độ tải trang nhanh hơn: Việc xử lý dữ liệu thô ngay ở tầng Power Query giúp giảm tải cho CPU khi người dùng tương tác với các biểu đồ, tránh hiện tượng giật lag khi báo cáo có lượng dữ liệu lớn.
  • Giao diện trực quan, không cần code: Bạn có thể thực hiện hầu hết các thao tác tách chuỗi phức tạp chỉ với vài cú click chuột ngay trên thanh Ribbon của Power Query Editor.

Minh họa cho các chức năng Extract trong Power BI

Truy cập menu Extract trong Power Query

Đầu tiên, bạn chọn cột dữ liệu cần xử lý. Trên thanh Ribbon của Power Query Editor, bạn điều hướng đến tab Transform hoặc Add Column và nhấp chọn menu thả xuống Extract.

Toàn bộ các tùy chọn trích xuất chuỗi như Length, First Characters, Last Characters, Range, … sẽ hiển thị đầy đủ tại đây để bạn lựa chọn.

Extract trong Power BI

Đo độ dài chuỗi ký tự

Nếu bạn muốn biết số lượng ký tự trong cột tên khách hàng Customer_Name, hãy chọn cột đó rồi click vào Extract > Length.

Kết quả thu được: Cột Customer_Name ban đầu đã được chuyển đổi thành các con số biểu thị độ dài của tên (ví dụ: “John Smith” đổi thành 10, “Emily Johnson” đổi thành 13). Bước này được Power Query ghi nhận trong phần Applied Steps là “Calculated Text Length”.

Extract trong Power BI

Trích xuất các ký tự đầu tiên

Để lấy mã tiền tố giao dịch từ cột mã đơn hàng Order_Code, chúng ta chọn cột này và nhấp vào Extract > First Characters.

Extract trong Power BI

Hộp thoại “Extract First Characters” xuất hiện yêu cầu nhập số lượng ký tự muốn giữ lại tính từ đầu chuỗi. Ta nhập số 2 vào ô Count và nhấn OK.

Extract trong Power BI

Kết quả ngay lập tức hiển thị. Cột mã đơn hàng bây giờ chỉ còn giữ lại 2 ký tự đầu tiên đại diện cho loại mã (ví dụ: “SL”, “PO”, “RT”).

Extract trong Power BI

Trích xuất các ký tự cuối cùng

Khi muốn lấy phần đuôi phân loại của mã SKU sản phẩm nằm ở cuối chuỗi của cột Product_SKU, bạn sử dụng chức năng Last Characters.

Trong hộp thoại “Extract Last Characters”, ta nhập số 3 vào ô Count để lấy 3 ký tự cuối cùng và nhấn OK.

Extract trong Power BI

Sau khi nhấn xác nhận, cột Product_SKU hiện tại đã được rút gọn chỉ còn lại 3 ký tự cuối cùng (ví dụ: “NY1”, “LA2”, “CHI”).

Extract trong Power BI

Trích xuất phân đoạn văn bản ở giữa

Đối với những chuỗi ký tự phức tạp chứa thông tin quan trọng ở giữa, bạn có thể dùng tính năng Range. Để thực hiện, chọn cột Transaction_ID rồi nhấp chọn Extract > Range.

Extract trong Power BI

Hộp thoại “Extract Text Range” sẽ yêu cầu bạn cung cấp hai thông số quan trọng:

  • Starting Index (Chỉ số bắt đầu): Vị trí bắt đầu lấy ký tự (Lưu ý: Power Query đếm bắt đầu từ số 0, do đó nhập số 2 nghĩa là bắt đầu từ ký tự thứ 3 của chuỗi dữ liệu).
  • Number of Characters (Số lượng ký tự): Số lượng ký tự bạn muốn lấy ra kể từ vị trí bắt đầu. Ở đây chúng ta nhập số 6.

Extract trong Power BI

Kết quả hiển thị cho thấy cột Transaction_ID đã được trích xuất chính xác chuỗi số ngày tháng năm ở giữa (ví dụ: từ “TX150124-A001” trích xuất thành công chuỗi “150124” gồm 6 ký tự bắt đầu từ vị trí index thứ 2).

Extract trong Power BI

Trích xuất văn bản trước ký tự phân tách

Giả sử bạn có một danh sách địa chỉ email trong cột Email và chỉ muốn lấy phần tên người dùng (phần đứng trước ký tự “@”). Hãy sử dụng chức năng Text Before Delimiter.

Đầu tiên, chọn cột Email, nhấp vào Extract và chọn Text Before Delimiter.

Extract trong Power BI

Hộp thoại cấu hình sẽ xuất hiện. Tại đây, bạn nhập ký tự “@” vào ô Delimiter và nhấn OK.

Extract trong Power BI

Kết quả cho thấy toàn bộ phần tên miền phía sau “@” đã được loại bỏ, hệ thống chỉ giữ lại phần tên người dùng (username) một cách hoàn hảo.

Trích xuất văn bản sau ký tự phân tách

Dữ liệu thực tế đôi khi có cấu trúc lặp lại phức tạp, ví dụ như đường dẫn thư mục trong cột Document_Path. Để lấy phần tên file hoặc thư mục cấp thấp, bạn dùng Text After Delimiter.

Chọn cột dữ liệu và truy cập tính năng.

Extract trong Power BI

Nhập dấu gạch chéo ngược \ vào ô Delimiter.

Extract trong Power BI

Extract trong Power BI

Điều đặc biệt làm nên sức mạnh của Power Query nằm ở tùy chọn nâng cao. Hãy mở rộng phần Advanced options. Ở đây, chúng ta cấu hình quét từ đầu chuỗi (Scan for the delimiter: From the start of the input) và yêu cầu hệ thống bỏ qua 2 dấu gạch chéo đầu tiên (Number of delimiters to skip: 2).

Extract trong Power BI

Hình minh họa thể hiện kết quả: Power Query đã bỏ qua 2 dấu \ đầu tiên của đường dẫn gốc (C:\Company…) và trích xuất thành công toàn bộ phần đường dẫn phía sau (Sales\Reports…).

Extract trong Power BI

Trích xuất văn bản giữa các ký tự phân tách

Khi bạn cần bóc tách tên miền cốt lõi của website từ các dải URL đầy đủ trong cột Website, phần thông tin giá trị này thường nằm kẹp giữa cặp dấu // và dấu / tiếp theo. Đây là lúc Text Between Delimiters phát huy tác dụng tốt nhất.

Nhấp chọn tính năng này từ menu Extract.

Extract trong Power BI

Trong hộp thoại thiết lập ở hình extract-trong-power-bi-19.jpg, bạn nhập // vào ô Start delimiter (ký tự phân tách bắt đầu) và / vào ô End delimiter (ký tự phân tách kết thúc).

Extract trong Power BI

Kết quả cho thấy các tiền tố giao thức (https://) và toàn bộ phần trang con phía sau đều bị cắt bỏ, hệ thống trả về đúng tên miền chính của các doanh nghiệp.

Extract trong Power BI

Mã M cho các chức năng Extract trong Power BI

Đằng sau giao diện kéo thả trực quan của Power Query là ngôn ngữ M (M-code). Khi bạn thực hiện bất kỳ thao tác Extract nào, hệ thống sẽ tự động tạo ra một dòng code tương ứng trên thanh công thức (Formula Bar).

Việc hiểu rõ các hàm M-code này sẽ giúp bạn chủ động tùy biến hoặc tự viết mã trực tiếp trong Advanced Editor để xử lý các tác vụ phức tạp một cách chuyên nghiệp nhất.

Hàm đo độ dài chuỗi (Length)

Sử dụng hàm Text.Length để đếm tổng số ký tự của một trường dữ liệu.

Mã M mẫu: = Table.TransformColumns(Table1_Table, {{“Customer_Name”, Text.Length, Int64.Type}})

Hàm lấy ký tự đầu tiên (First Characters)

Sử dụng hàm Text.Start kết hợp với tham số đếm số lượng ký tự cần lấy.

Mã M mẫu: = Table.TransformColumns(#”Calculated Text Length”, {{“Order_Code”, each Text.Start(_, 2), type text}})

Hàm lấy ký tự cuối cùng (Last Characters)

Sử dụng hàm Text.End để trích xuất các ký tự từ đuôi phía bên phải của chuỗi.

Mã M mẫu: = Table.TransformColumns(#”Extracted First Characters”, {{“Product_SKU”, each Text.End(_, 3), type text}})

Hàm trích xuất khoảng ký tự (Range)

Sử dụng hàm Text.Middle với cú pháp chi tiết gồm: tên cột, chỉ số index bắt đầu và số lượng ký tự cần thu thập.

Mã M mẫu: = Table.TransformColumns(#”Extracted Last Characters”, {{“Transaction_ID”, each Text.Middle(_, 2, 6), type text}})

Hàm lấy văn bản trước ký tự phân tách (Text Before Delimiter)

Sử dụng hàm Text.BeforeDelimiter chỉ định rõ ký tự phân tách.

Mã M mẫu: = Table.TransformColumns(#”Extracted Text Range”, {{“Email”, each Text.BeforeDelimiter(_, “@”), type text}})

Hàm lấy văn bản sau ký tự phân tách kèm số lần bỏ qua (Text After Delimiter)

Sử dụng hàm Text.AfterDelimiter kết hợp tham số xác định số lượng delimiter cần bỏ qua.

Mã M mẫu: = Table.TransformColumns(#”Extracted Text Before Delimiter”, {{“Document_Path”, each Text.AfterDelimiter(_, “\”, 2), type text}})

Hàm lấy văn bản giữa hai ký tự phân tách (Text Between Delimiters)

Sử dụng hàm Text.BetweenDelimiters cung cấp chuẩn xác cặp ký tự phân tách mở và đóng.

Mã M mẫu: = Table.TransformColumns(#”Extracted Text After Delimiter”, {{“Website”, each Text.BetweenDelimiters(_, “//”, “/”), type text}})

Một số lỗi thường gặp khi sử dụng Extract và cách khắc phục

Dù là một tính năng trực quan, người phân tích dữ liệu đôi khi vẫn đối mặt với một vài trở ngại khi áp dụng Extract trong Power BI:

  • Lỗi giá trị Null (Trống): Nếu trong cột dữ liệu chứa giá trị Null, các hàm Extract có thể trả về lỗi hoặc tiếp tục giữ giá trị Null. Kinh nghiệm tốt nhất là thực hiện bước lọc (Filter) bỏ Null hoặc thay thế giá trị (Replace Values) bằng khoảng trắng trước khi tiến hành Extract.
  • Sai lệch vị trí Index khi dùng Range: Do Power Query áp dụng hệ thống đếm gốc từ số 0 (Zero-based indexing), rất nhiều người mới thường bị nhầm và trích xuất lệch đi 1 ký tự. Hãy luôn ghi nhớ: ký tự đầu tiên mang Index 0, ký tự thứ hai mang Index 1.
  • Lỗi định dạng dữ liệu (Data Type): Các hàm trích xuất chỉ tương thích với định dạng Text (Văn bản). Nếu cột của bạn vô tình bị định dạng thành Number (Số) hoặc Date (Ngày tháng), bạn buộc phải chuyển đổi kiểu dữ liệu cột sang Text trước khi thao tác.
  • Ký tự phân tách bị thay đổi: Đối với dữ liệu trút từ hệ thống cũ, dấu phân cách đôi khi không đồng nhất (khi thì dùng dấu phẩy, khi thì dùng dấu chấm phẩy). Cần kiểm tra kỹ tính đồng nhất của delimiter trước khi sử dụng Text Before/After Delimiter để tránh kết quả bị thiếu hụt.

Kết luận

Việc thành thạo bộ công cụ Extract trong Power BI thông qua giao diện Power Query là một kỹ năng không thể thiếu đối với mọi chuyên gia dữ liệu. Nó không chỉ giúp bạn giải quyết nhanh gọn những bài toán làm sạch dữ liệu văn bản rắc rối mà còn cải thiện mạnh mẽ hiệu suất vận hành của toàn bộ báo cáo phân tích.

Nếu bạn muốn nâng cao kỹ năng phân tích và trực quan hóa dữ liệu chuyên nghiệp, khóa học Power BI tại Starttrain sẽ giúp bạn xây dựng dashboard, xử lý dữ liệu với Power Query, sử dụng DAX và tạo các báo cáo trực quan phục vụ công việc thực tế. Chương trình được thiết kế theo lộ trình từ cơ bản đến nâng cao, kết hợp nhiều bài tập thực hành với dữ liệu doanh nghiệp, giúp học viên có thể áp dụng ngay sau khi hoàn thành khóa học.

Danh sách bài giảng

Power Query trong Power BI
406
▶

[Power BI Tutorial 2] Cách dùng Power Query trong Power...

Starttrain Official

Index Column
217
▶

[Power Query Tutorial] Cách dùng chức năng Index Column

Starttrain Official

Cách dùng chức năng Pivot Column
214
▶

[Power Query Tutorial] Cách dùng chức năng Pivot Column

Starttrain Official

Unpivot Column
197
▶

[Power Query Tutorial] Cách dùng chức năng Unpivot Column

Starttrain Official

Duration
190
▶

[Power Query Tutorial] Cách dùng Duration trong Power BI

Starttrain Official

Promoted - Demoted Headers
247
▶

[Power Query Tutorial] Cách dùng Promoted – Demoted Headers

Starttrain Official

Cách dùng R-Python Script trong Power BI
186
▶

[Power Query Tutorial] Cách dùng R Script và Python Script

Starttrain Official

Scientific
156
▶

[Power Query Tutorial] Cách dùng Scientific trong Power BI

Starttrain Official

Standard
197
▶

[Power Query Tutorial] Cách dùng Standard trong Power BI

Starttrain Official

Statistics
212
▶

[Power Query Tutorial] Cách dùng Statistics trong Power BI

Starttrain Official

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

Form - đọc sách
Form - Single Report Template

Vui lòng liên hệ qua những thông tin bên dưới. Starttrain sẽ phản hồi bạn trong thời gian sớm nhất.

Form Dashboard service