Cách hiển thị lỗi chi tiết cho các dòng trong Power Query Power BI

Trong quá trình xử lý dữ liệu với công cụ Power Query trong Power BI, chắc hẳn các bạn đã gặp phải trường hợp, mặc dù có rất nhiều lỗi trong bảng, nhưng trên giao diện của Power Query chỉ hiển thị 1 lỗi ở trong khung thông báo màu vàng, điều này làm cho việc khắc phục lỗi rất khó khăn và chúng ta không có được tổng quan về các lỗi đang gặp phải trong query của chúng ta. Trong bài viết này Thanh sẽ chia sẻ với các bạn cách để làm cho Power Query hiển thị các lỗi theo từng dòng có lỗi, với thông báo lỗi đầy đủ.

Khóa học liên quan: Trọn bộ Power Query nền tảng cho công việc báo cáo dữ liệu

Chuẩn bị dữ liệu

Để minh họa cho các lỗi có thể xảy ra trong khi load dữ liệu bằng Power Query, chúng ta hãy chuẩn bị một bảng dữ liệu đơn giản như sau trong Excel

cach-hien-thi-loi-chi-tiet-cho-cac-dong-trong-power-query-power-bi-02

Sau đó, chúng ta sẽ load dữ liệu này vào trong Power Query trong Excel bằng cách chọn thẻ Data / From sheet

cach-hien-thi-loi-chi-tiet-cho-cac-dong-trong-power-query-power-bi-03

Kết quả nhận được trong Power Query sẽ như sau

cach-hien-thi-loi-chi-tiet-cho-cac-dong-trong-power-query-power-bi-04

Khi chuyển kiểu dữ liệu của cột Số lượng sang Whole number, thì sẽ gặp lỗi ở dòng 4 và dòng 6 như sau

cach-hien-thi-loi-chi-tiet-cho-cac-dong-trong-power-query-power-bi-05

Vấn đề ở đây, như bạn đã thấy, chúng ta muốn biết từng lỗi có nội dung thế nào, thì chúng ta cần đi bấm vào từng ô có chữ “Error” và đọc thông báo của Power Query, việc này sẽ rất mất thời gian với những bảng dữ liệu lớn, có nhiều dòng. Nếu chúng ta có thể hiện ra tất cả các lỗi, các miêu tả lỗi, loại lỗi trong Power Query, thì chúng ta có thể dễ dàng phân loại, dễ dàng xử lý các lỗi theo nhóm lỗi, loại lỗi. Vậy, để làm được điều này, mời các bạn tham khảo phần tiếp theo.

Hiển thị tất cả các lỗi trong Power Query theo dòng

Cách hiển thị lỗi Power Query theo từng dòng trong Excel

Tiếp theo các thao tác ở phần trước, chúng ta sẽ load dữ liệu, mặc dù có lỗi phía trên về Excel. Trong Taskpane bên tay phải Queries & Connections bạn sẽ bấm vào “2 errors” như hình sau

Lưu ý Nếu bạn không thấy mục Queries & Connections, hãy bấm vào thẻ Data và chọn Queries & Connections

cach-hien-thi-loi-chi-tiet-cho-cac-dong-trong-power-query-power-bi-06

Sau đó, trong Power Query Editor chúng ta sẽ nhận được bảng như sau

cach-hien-thi-loi-chi-tiet-cho-cac-dong-trong-power-query-power-bi-07

Để hiển thị tất cả các lỗi cụ thể, chúng ta sẽ tạo ra một cột Custom, bằng cách bấm vào thẻ Add Column / Custom Column công thức cho Custom Column này với công thức như sau:

=try[Số lượng]

cach-hien-thi-loi-chi-tiet-cho-cac-dong-trong-power-query-power-bi-08

Sau đó Expand / mở rộng toàn bộ các cột kết quả ra, chúng ta sẽ nhận được tất cả các lỗi tương ứng trong bảng như sau:

  • Custom.Error.Reason: Phân loại lỗi
  • Custom.Error.Message: Thông báo lỗi của Power Query
  • Custom.Error.Detail: Chi tiết lỗi

cach-hien-thi-loi-chi-tiet-cho-cac-dong-trong-power-query-power-bi-10

Cách hiển thị lỗi Power Query theo từng dòng trong Power BI

Các bạn có thể nhận thấy rằng, trong Power BI chúng ta không có thẻ Queries & Connection như trong giao diện trên Excel, vậy cách nào để chúng ta có thể thể hiện tất cả các lỗi theo từng dòng có lỗi trong Power BI? Chúng ta sẽ làm như sau:

Tạo ra một Custom functions sau đây của Power Query trong Power BI:

(table as table) as table =>
    let
        errorExtract = (value as any) as any => 
            if value[HasError] = true then 
                value[Error] 
            else 
                value[Value],

        errorToText = (errorRec as any) as any => 
            if Type.Is(Value.Type(errorRec), Record.Type) then
                "Lý do lỗi: " & errorRec[Reason] & 
                "#(lf)Thông tin lỗi: " & errorRec[Message]
            else 
                errorRec,

        recsToErrors = (rec as record) as any =>
            List.Accumulate( Record.FieldNames(rec), [],
                (s,c) => 
                    Record.AddField(
                        s, 
                        c, 
                        errorToText(
                            errorExtract(try Record.Field(rec, c)) 
                        ) 
                    ) 
            ),
    
        #"Error Table" = Table.FromList(
            List.Transform(
                Table.ToRecords(
                    Table.SelectRowsWithErrors(table)), 
                    each recsToErrors(_)), 
                    Record.FieldValues, 
                    Table.ColumnNames(table)
                )
    in
        #"Error Table"

Sau đó, hãy Invoke function này trên bảng có Error và nhận kết quả:

cach-hien-thi-loi-chi-tiet-cho-cac-dong-trong-power-query-power-bi-11

Như vậy, qua bài viết này, các bạn đã biết được cách để chúng ta có thể cho hiển thị ra tất cả các thông tin liên quan đến tất cả các lỗi trong Power Query trong bảng. Hi vọng, qua kiến thức trong bài này, các bạn có thể xử lý lỗi dễ dàng hơn trong việc sử dụng Power Query của bạn. Đừng quên tham khảo khóa học Power Query của Thanh tại địa chỉ:

Trọn bộ Power Query nền tảng cho công việc báo cáo dữ liệu


Khóa học mới xuất bản