Địa chỉ:
Lầu 7 Tòa nhà STA, 618 đường 3/2, Phường Diên Hồng (Phường 14, Quận 10), TP HCM
Giờ làm việc
Thứ 2 tới thứ 6: 9:00 - 18:00
Địa chỉ:
Lầu 7 Tòa nhà STA, 618 đường 3/2, Phường Diên Hồng (Phường 14, Quận 10), TP HCM
Giờ làm việc
Thứ 2 tới thứ 6: 9:00 - 18:00
Chuẩn hóa dữ liệu là bước đầu tiên và quan trọng nhất đối với bất kỳ chuyên gia phân tích dữ liệu nào. Một trong những thách thức phổ biến nhất khi xử lý dữ liệu thô là các cột dữ liệu gộp – nơi nhiều thông tin độc lập bị dồn chung vào một ô duy nhất như họ và tên, số điện thoại kèm mã quốc gia, mã sản phẩm phức tạp hay các cột dữ liệu đa trị.
Để giải quyết vấn đề này một cách tự động, nhanh chóng và tối ưu nhất, Split Column trong Power Query chính là công cụ hàng đầu. Trong bài viết này, chúng ta sẽ cùng đi sâu tìm hiểu chi tiết về cơ chế hoạt động, các phương pháp chia cột từ cơ bản đến nâng cao, đi kèm ví dụ thực tế và khám phá cả mã nguồn M-Code đứng sau tính năng mạnh mẽ này.
Chức năng Split Column (Chia cột) trong Power Query cho phép người dùng tách một cột chứa dữ liệu dạng văn bản (Text) hoặc hỗn hợp thành nhiều cột riêng biệt (hoặc nhiều dòng riêng biệt) dựa trên các quy tắc xác định trước. Đây là một tính năng cực kỳ linh hoạt nằm trong tab Transform hoặc tab Add Column trên thanh công cụ của Power Query Editor.
Đây là phương pháp thông dụng nhất trong thực tế. Bạn có thể chọn các ký tự phân cách có sẵn như khoảng trắng (Space), dấu phẩy (Comma), dấu chấm phẩy (Semicolon), dấu tab hoặc tự nhập ký tự tùy chỉnh (Custom Delimiter) như dấu gạch chéo (/), gạch ngang (-), …
Khi sử dụng phương pháp này, Power Query cung cấp các tùy chọn nâng cao vô cùng quan trọng:
Phương pháp này giúp bạn chia cột dựa trên độ dài cố định của chuỗi ký tự mà không cần quan tâm đến ký tự phân cách bên trong. Bạn cần nhập số lượng ký tự mong muốn và chọn một trong ba cơ chế hoạt động:
Phương pháp này chia cột dựa trên các vị trí số thứ tự ký tự (bắt đầu tính từ vị trí số 0). Các vị trí cách nhau bằng dấu phẩy. Ví dụ, nếu bạn nhập “0, 3”, Power Query sẽ cắt chuỗi tại vị trí bắt đầu và vị trí ký tự thứ 3.
Dữ liệu ban đầu gồm các cột dữ liệu thô thực tế như:

Để bắt đầu thao tác chia cột, chúng ta chọn cột cần xử lý, sau đó vào tab Transform trên thanh công cụ và nhấp chọn tính năng Split Column.
Chúng ta chọn cột FullName chứa các tên như “Nguyen Van An”, “Tran Thi Binh”, … Mỗi từ được ngăn cách bởi một khoảng trắng (Space).



Nếu mục tiêu của bạn chỉ là tách riêng phần “Tên” ra khỏi cụm “Họ và tên đệm”, bạn sẽ chọn tùy chọn Right-most delimiter trong hộp thoại thiết lập.

Kết quả thực tế cho thấy cột được chia làm 2 phần: FullName.1 chứa toàn bộ Họ và Tên đệm (ví dụ: “Nguyen Van”), và FullName.2 chứa phần Tên chính (ví dụ: “An”).

Ngược lại, nếu bạn muốn tách riêng phần “Họ” và giữ nguyên cụm “Tên đệm và Tên”, hãy sử dụng tùy chọn Left-most delimiter.

Khi đó, Power Query sẽ tách cột tại khoảng trắng đầu tiên bên trái. Kết quả là cột FullName.1.1 chứa Họ (ví dụ: “Nguyen”), cột FullName.1.2 chứa tên đệm (ví dụ: “Van”) và cột FullName.2 chứa phần còn lại (ví dụ: “An”).

Bây giờ chúng ta sẽ làm việc với cột số điện thoại PhoneCode chứa các chuỗi số dài liên tục. Để mở tính năng này, từ menu thả xuống của Split Column, bạn chọn By Number of Characters.

Giả sử chúng ta muốn chia chuỗi số điện thoại thành các cặp gồm 2 chữ số một. Trong hộp thoại thiết lập, nhập số 2 vào phần Number of characters và chọn tùy chọn Repeatedly như minh họa.

Kết quả sau khi thực hiện là chuỗi số điện thoại ban đầu đã được cắt nhỏ thành một loạt cột mới (PhoneCode.1, PhoneCode.2, PhoneCode.3…) với độ dài đúng 2 chữ số mỗi cột.

Nếu chúng ta muốn tách 2 chữ số mã quốc gia đầu tiên từ phía bên trái ra khỏi chuỗi số điện thoại còn lại, hãy nhập số 2 vào phần Number of characters và chọn tùy chọn Once, as far left as possible trong hộp thoại thiết lập.

Kết quả đạt được hiển thị: cột PhoneCode ban đầu tách thành PhoneCode.1 chỉ chứa 2 ký tự đầu tiên bên trái (“84”), và cột PhoneCode.2 chứa toàn bộ dãy số phía sau (“901234567”).

Ngược lại, nếu bạn muốn lấy ra 2 số cuối cùng ở đuôi số điện thoại, hãy chọn tùy chọn Once, as far right as possible.

Kết quả thực tế hiển thị cho thấy cột đã được chia làm 2 phần: PhoneCode.1 chứa phần đầu số dài, và PhoneCode.2 chứa đúng 2 ký tự cuối cùng bên phải (“67”).

Phương pháp này cực kỳ hữu ích khi bạn xử lý các mã định danh có cấu trúc độ dài quy chuẩn cố định. Trong menu của Split Column, bạn chọn mục By Positions.

Chúng ta tiến hành thử nghiệm trên cột IDNumber (ví dụ chuỗi: “HCMAB12345”). Chúng ta muốn tách 3 ký tự đầu đại diện cho chi nhánh tỉnh thành (HCM) ra khỏi phần mã số phía sau. Trong hộp thoại thiết lập, chúng ta nhập vị trí là 0, 3.

Nhấn OK, cột IDNumber ngay lập tức được chia thành 2 cột: IDNumber.1 chứa mã tỉnh thành “HCM” và IDNumber.2 chứa phần mã số “AB12345”.

Trường hợp dữ liệu tiếp theo là xử lý các chuỗi viết liền không có ký tự phân cách nhưng có sự thay đổi định dạng chữ viết Hoa và viết Thường.
Để xử lý chuỗi viết liền dạng CamelCase như “FirstNameLastName” trên cột MixedCase, bạn chọn tính năng By Lowercase to Uppercase trong danh sách.

Sau khi áp dụng, Power Query tự động phát hiện mọi vị trí có chữ thường đứng trước chữ viết hoa để thực hiện cắt cột. Kết quả là chuỗi “FirstNameLastName” được tách sạch sẽ thành các cột độc lập chứa “First”, “Name”, “Last”, “Name” như minh họa.

Tương tự, chúng ta có cột Acronym chứa dữ liệu dạng “ABCDef”. Để tách phần viết tắt chữ hoa ra khỏi cụm chữ thường phía sau, chúng ta chọn tính năng By Uppercase to Lowercase trong menu thả xuống.

Kết quả hiển thị: Cột Acronym được tách thành Acronym.1 chứa toàn bộ phần chữ hoa đầu tiên (“ABCD”) và Acronym.2 chứa phần chữ thường phía sau (“ef”).

Tính năng chuyển đổi định dạng giúp dọn dẹp các mã định danh pha trộn giữa chữ và số một cách thông minh mà không cần đếm số lượng ký tự thủ công.
Chúng ta có cột AlphaNumeric chứa chuỗi dạng “ABC123XYZ456”. Để tách khi gặp điểm giao thoa từ số sang chữ, chúng ta chọn cột này và nhấp chọn tính năng By Digit to Non-Digit từ menu.

Kết quả hiển thị: Power Query phát hiện vị trí chuyển tiếp từ số “3” sang chữ “X”, tách cột thành AlphaNumeric.1 (“ABC123”) và AlphaNumeric.2 (“XYZ456”).

Áp dụng trên cột CodeWithNumber chứa chuỗi dạng “Item001”. Để tách phần tên chữ ra khỏi phần mã số định danh ở đuôi, chúng ta nhấp chọn tính năng By Non-Digit to Digit.

Kết quả hiển thị: Cột được chia làm 2 phần gồm CodeWithNumber.1 chứa chữ (“Item”) và CodeWithNumber.2 chứa số (“001”).

Thông thường, việc chia cột sẽ tạo ra thêm các cột mới nằm ngang. Tuy nhiên, trong mô hình hóa dữ liệu (Data Modeling), việc phình to cột làm giảm hiệu suất bảng. Khi đó, chia dữ liệu thành các dòng (Rows) là giải pháp tối ưu nhất.
Chúng ta thực hiện trên cột MultipleEmails chứa danh sách email gộp chung ngăn cách bằng dấu phẩy. Chúng ta chọn tính năng chia cột By Delimiter.

Trong hộp thoại thiết lập, ta thực hiện các bước sau:

Sau khi nhấn OK, kết quả đạt được hiển thị như sau: Từ bảng dữ liệu gốc chỉ có 8 dòng, Power Query đã tự động tách các địa chỉ email gộp và trải phẳng bảng dữ liệu thành 21 dòng riêng biệt. Mỗi dòng đại diện cho một địa chỉ email duy nhất, trong khi các thông tin ở các cột khác của nhân sự đó được sao chép tương ứng một cách chuẩn xác.

Một trong những yếu tố giúp bạn làm chủ Power Query là hiểu rõ ngôn ngữ công thức M (M-Code) hoạt động phía sau các cú nhấp chuột trên giao diện. Khi bạn thực hiện thao tác Split Column, Power Query thực tế sẽ tự động tạo ra một bước biến đổi sử dụng hàm chủ đạo là Table.SplitColumn.
Dưới đây là cấu trúc cú pháp của các hàm M-Code tương ứng với từng phương pháp xử lý thực tế:
Công thức M-Code tương ứng được tạo ra có dạng:
Table.SplitColumn(
Source,
“FullName”,
Splitter.SplitTextByDelimiter(” “, QuoteStyle.Csv),
{“FullName.1”, “FullName.2”, “FullName.3”}
)
Khi thực hiện tách cột lặp lại theo độ dài cố định, mã nguồn M-Code sẽ sử dụng bộ chia Splitter.SplitTextByRepeatedLengths:
Table.SplitColumn(
Source,
“PhoneCode”,
Splitter.SplitTextByRepeatedLengths(2),
{“PhoneCode.1”, “PhoneCode.2”, “PhoneCode.3”, “PhoneCode.4”, “PhoneCode.5”, “PhoneCode.6”}
)
Khi bạn chỉ định các tọa độ vị trí cắt cụ thể, mã M-Code sẽ áp dụng hàm dưới đây:
Table.SplitColumn(
Source,
“IDNumber”,
Splitter.SplitTextByPositions({0, 3}),
{“IDNumber.1”, “IDNumber.2”}
)
Đối với việc tách dựa trên sự thay đổi kiểu chữ (Ví dụ: Từ viết thường sang viết hoa trên cột MixedCase), Power Query sinh ra mã M-Code sử dụng hàm Splitter.SplitTextByCharacterTransition:
Table.SplitColumn(
Source,
“MixedCase”,
Splitter.SplitTextByCharacterTransition({“a”..”z”}, {“A”..”Z”}),
{“MixedCase.1”, “MixedCase.2”, “MixedCase.3”, “MixedCase.4”}
)
Một điểm mấu chốt mà các nhà phân tích dữ liệu cần lưu ý là vị trí thực hiện thao tác Split Column trên thanh công cụ, bởi nó quyết định cách Power Query quản lý dữ liệu gốc:
Việc làm chủ chức năng Split Column trong Power Query không chỉ đơn thuần là việc áp dụng một công cụ dọn dẹp dữ liệu thông thường, mà còn là bước đi chiến lược giúp xây dựng các hệ thống báo cáo tự động hóa thông minh, chuẩn hóa và tối ưu.
Việc lựa chọn cơ chế chia cột khôn ngoan như ưu tiên tách một lần (Left-most hoặc Right-most) thay vì tách lặp lại liên tục sẽ giúp lược bỏ bớt các cột dư thừa giúp giảm thiểu dung lượng RAM khi vận hành. Đối với các danh sách chứa nhiều danh mục phân tách phức tạp, kỹ thuật tách thành hàng được ưu tiên sử dụng nhằm đưa bảng về dạng cấu trúc phẳng tối ưu.
Hy vọng những chia sẻ thực tế này của Starttrain sẽ giúp bạn nâng tầm kỹ năng chuẩn hóa dữ liệu và bứt phá hiệu năng làm việc mỗi ngày.
Nếu bạn muốn học Excel nâng cao cấp tốc, có lộ trình học rõ ràng bạn có thể tham khảo khoá học phân tích dữ liệu bằng Excel nâng cao và Dashboard báo cáo chuyên nghiệp tại Starttrain

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official
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.




