Nội dung

Đôi khi có những tình huống không biết trước chính xác số lượng và hàng nào cần được nhập từ dữ liệu nguồn. Giả sử chúng ta phải tải dữ liệu từ một tệp văn bản vào Power Query, thoạt nhìn, điều này không có vấn đề gì lớn. Khó khăn là tệp được cập nhật thường xuyên và ngày mai nó có thể có một số dòng dữ liệu khác nhau, tiêu đề gồm ba dòng chứ không phải hai dòng, v.v.:

Nhập một phân đoạn nổi trong Power Query

Tức là chúng ta không thể nói trước một cách chắc chắn, bắt đầu từ dòng nào và nhập chính xác bao nhiêu dòng. Và đây là một vấn đề, bởi vì các tham số này được mã hóa cứng trong mã M của yêu cầu. Và nếu bạn thực hiện yêu cầu cho tệp đầu tiên (nhập 5 dòng bắt đầu từ dòng thứ 4), thì nó sẽ không còn hoạt động chính xác với tệp thứ hai.

Sẽ thật tuyệt nếu truy vấn của chúng tôi có thể tự xác định phần đầu và phần cuối của khối văn bản “nổi” để nhập.

Giải pháp tôi muốn đề xuất dựa trên ý tưởng rằng dữ liệu của chúng tôi chứa một số từ khóa hoặc giá trị có thể được sử dụng làm điểm đánh dấu (tính năng) của phần đầu và phần cuối của khối dữ liệu mà chúng tôi cần. Trong ví dụ của chúng tôi, phần đầu sẽ là một dòng bắt đầu bằng từ Mã hàng, và kết thúc là một dòng có từ Tổng số: . Xác thực hàng này dễ dàng thực hiện trong Power Query bằng cách sử dụng cột có điều kiện - một tương tự của hàm IF (NẾU) trong Microsoft Excel.

Hãy xem cách làm.

Đầu tiên, hãy tải nội dung của tệp văn bản của chúng ta vào Power Query theo cách tiêu chuẩn - thông qua lệnh Dữ liệu - Lấy dữ liệu - Từ tệp - Từ tệp văn bản / CSV (Dữ liệu - Lấy dữ liệu - Từ tệp - Từ tệp văn bản / CSV). Nếu bạn đã cài đặt Power Query dưới dạng một bổ trợ riêng, thì các lệnh tương ứng sẽ nằm trên tab Truy vấn nguồn:

Nhập một phân đoạn nổi trong Power Query

Như mọi khi, khi nhập, bạn có thể chọn ký tự phân tách cột (trong trường hợp của chúng tôi, đây là tab) và sau khi nhập, bạn có thể xóa bước được thêm tự động loại sửa đổi (Loại đã thay đổi), bởi vì còn quá sớm để chúng tôi chỉ định các kiểu dữ liệu cho các cột:

Nhập một phân đoạn nổi trong Power Query

Bây giờ với lệnh Thêm một cột - Cột có điều kiện (Thêm cột - Cột có điều kiện)hãy thêm một cột với việc kiểm tra hai điều kiện - ở đầu và cuối của khối - và hiển thị bất kỳ giá trị nào khác nhau trong mỗi trường hợp (ví dụ: số 1 и 2). Nếu không có điều kiện nào được đáp ứng, thì đầu ra vô giá trị:

Nhập một phân đoạn nổi trong Power Query

Sau khi nhấp vào OK chúng tôi nhận được hình ảnh sau:

Nhập một phân đoạn nổi trong Power Query

Bây giờ chúng ta hãy chuyển đến tab. Chuyển đổi và chọn một đội Điền vào (Chuyển đổi - Tô - Xuống) - những cái và twos của chúng tôi sẽ kéo dài xuống cột:

Nhập một phân đoạn nổi trong Power Query

Vậy thì, như bạn có thể đoán, bạn có thể chỉ cần lọc các đơn vị trong cột điều kiện - và đây là phần dữ liệu đáng mơ ước của chúng tôi:

Nhập một phân đoạn nổi trong Power Query

Tất cả những gì còn lại là nâng dòng đầu tiên lên tiêu đề bằng lệnh Sử dụng dòng đầu tiên làm tiêu đề chuyển hướng Trang Chủ (Trang chủ - Sử dụng Hàng đầu tiên làm Tiêu đề) và loại bỏ cột có điều kiện không cần thiết bằng cách nhấp chuột phải vào tiêu đề của nó và chọn lệnh Xóa cột (Xóa cột):

Vấn đề đã được giải quyết. Bây giờ, khi thay đổi dữ liệu trong tệp văn bản nguồn, truy vấn giờ đây sẽ xác định độc lập phần đầu và phần cuối của đoạn dữ liệu “nổi” mà chúng ta cần và nhập số dòng chính xác mỗi lần. Tất nhiên, cách tiếp cận này cũng hoạt động trong trường hợp nhập tệp XLSX, không phải tệp TXT, cũng như khi nhập tất cả tệp từ một thư mục cùng một lúc bằng lệnh Dữ liệu - Lấy dữ liệu - Từ tệp - Từ thư mục (Dữ liệu - Lấy dữ liệu - Từ tệp - Từ thư mục).

  • Lắp ráp các bảng từ các tệp khác nhau bằng Power Query
  • Thiết kế lại bảng chữ cái cho phẳng bằng macro và Power Query
  • Xây dựng Biểu đồ Gantt Dự án trong Power Query

Bình luận