Xử lý lỗi trong Excel Power Query khi truy xuất dữ liệu từ Web

Xử lý lỗi trong Excel Power Query khi truy xuất dữ liệu từ Web
Xử lý lỗi trong Excel Power Query khi truy xuất dữ liệu từ Web

Quản lý lỗi truy xuất dữ liệu trong Excel Power Query

Khi làm việc với Excel Power Query để tìm nạp dữ liệu từ các URL nội bộ của công ty, bạn thường gặp phải các mã phản hồi khác nhau. Thông thường, các mã phản hồi này cho biết việc truy xuất dữ liệu có thành công (200) hay không tìm thấy (404). Việc đảm bảo xử lý đúng cách các mã phản hồi này là điều cần thiết để thể hiện dữ liệu chính xác trong Excel.

Bài viết này sẽ khám phá cách sử dụng hàm Power Query để tìm nạp và hiển thị dữ liệu từ URL nội bộ. Trọng tâm sẽ là quản lý các tình huống trong đó mã phản hồi truy xuất dữ liệu là 404, ngăn ngừa lỗi và đảm bảo xử lý dữ liệu trơn tru. Chúng tôi sẽ hướng dẫn các bước cần thiết và cung cấp giải pháp để xử lý những lỗi này một cách hiệu quả.

Yêu cầu Sự miêu tả
Json.Document Phân tích dữ liệu JSON được lấy từ một dịch vụ web.
Web.Contents Tìm nạp dữ liệu từ một URL được chỉ định.
try ... otherwise Cố gắng thực hiện một thao tác và cung cấp kết quả thay thế nếu xảy ra lỗi.
Record.ToTable Chuyển đổi một bản ghi sang định dạng bảng.
Table.SelectRows Lọc một bảng dựa trên một điều kiện được chỉ định.
Table.Pivot Chuyển đổi hàng thành cột dựa trên các giá trị riêng biệt.

Hiểu cách xử lý lỗi trong Power Query

Trong các tập lệnh được cung cấp, chúng tôi bắt đầu bằng cách sử dụng Web.Contents chức năng tìm nạp dữ liệu từ một URL được chỉ định, được tạo động bằng cách sử dụng id tham số. Dữ liệu này được phân tích bằng cách sử dụng Json.Document, chuyển đổi phản hồi JSON thành định dạng mà Power Query có thể xử lý. Phản hồi có chứa một Instrument bản ghi mà chúng tôi truy cập bằng cách lập chỉ mục (Instrument{0}). Từ bản ghi này, chúng tôi trích xuất Data_Flow để kiểm tra Data_Response_Code, cho biết việc truy xuất dữ liệu thành công hay thất bại.

Nếu Data_Response_Code là 200, chúng ta tiến hành trích xuất các trường dữ liệu cần thiết - số 8CFI_Code - từ Instrument_Common ghi. Các trường này sau đó được chuyển thành định dạng bảng bằng cách sử dụng Table.Pivot. Nếu mã phản hồi là 404, cho biết rằng không tìm thấy dữ liệu, chúng tôi đảm bảo rằng các trường đầu ra trống bằng cách đặt chúng một cách rõ ràng. Cách tiếp cận này ngăn ngừa lỗi bằng cách sử dụng try...otherwise xây dựng, giúp nắm bắt các vấn đề tiềm ẩn và mặc định ở trạng thái an toàn.

Phân tích chi tiết về tập lệnh ngôn ngữ M Power Query

Tập lệnh thứ hai mở rộng tập lệnh đầu tiên bằng cách kết hợp try...otherwise xây dựng, cung cấp cơ chế dự phòng cho bất kỳ lỗi nào gặp phải trong quá trình truy xuất dữ liệu. Sau khi phân tích phản hồi JSON bằng Json.Document và truy cập vào Instrument ghi lại, chúng tôi cố gắng truy xuất Data_Response_Code. Nếu thao tác này không thành công, tập lệnh sẽ mặc định là 404, đảm bảo phần còn lại của quá trình tiếp tục mà không bị gián đoạn.

Sau khi mã phản hồi được xác nhận, tập lệnh sẽ trích xuất các trường dữ liệu từ Instrument_Common hoặc đặt chúng thành trống nếu mã phản hồi là 404. Hàm FetchData sau đó được sử dụng để thêm các kết quả này vào một cột mới trong bảng hiện có, tận dụng Table.AddColumn. Phương pháp này cho phép xử lý lỗi hiệu quả và đảm bảo tính toàn vẹn của dữ liệu được duy trì, ngay cả khi thiếu một số điểm dữ liệu hoặc yêu cầu web không thành công. Nhìn chung, các tập lệnh này thể hiện các kỹ thuật hiệu quả để xử lý lỗi truy xuất dữ liệu web trong Power Query.

Xử lý lỗi truy xuất dữ liệu trong Power Query

Sử dụng ngôn ngữ Power Query M

(id as text)=>
let
    Source = Json.Document(Web.Contents("https://example.com/data?Identifier=" & id)),
    Instrument = Source[Instrument]{0},
    DataFlow = Instrument[Data_Flow],
    ResponseCode = DataFlow[Data_Response_Code],
    Output = if ResponseCode = 200 then
        let
            InstrumentCommon = Instrument[Instrument_Common],
            FullName = InstrumentCommon[Instrument_Full_Name],
            CFI = InstrumentCommon[CFI_Code]
        in
            [FullName = FullName, CFI_Code = CFI]
    else
        [FullName = "", CFI_Code = ""]
in
    Output

Đảm bảo tính toàn vẹn dữ liệu với Power Query

Sử dụng ngôn ngữ Excel Power Query M

let
    FetchData = (id as text) =>
    let
        Source = Json.Document(Web.Contents("https://example.com/data?Identifier=" & id)),
        Instrument = Source[Instrument]{0}?
        ResponseCode = try Instrument[Data_Flow][Data_Response_Code] otherwise 404,
        Output = if ResponseCode = 200 then
            let
                InstrumentCommon = Instrument[Instrument_Common],
                FullName = InstrumentCommon[Instrument_Full_Name],
                CFI = InstrumentCommon[CFI_Code]
            in
                [FullName = FullName, CFI_Code = CFI]
        else
            [FullName = "", CFI_Code = ""]
    in
        Output,
    Result = Table.AddColumn(YourTableName, "FetchData", each FetchData([Id]))
in
    Result

Tìm hiểu các lệnh Power Query

Xử lý lỗi truy xuất dữ liệu trong Power Query

Sử dụng ngôn ngữ Power Query M

(id as text)=>
let
    Source = Json.Document(Web.Contents("https://example.com/data?Identifier=" & id)),
    Instrument = Source[Instrument]{0},
    DataFlow = Instrument[Data_Flow],
    ResponseCode = DataFlow[Data_Response_Code],
    Output = if ResponseCode = 200 then
        let
            InstrumentCommon = Instrument[Instrument_Common],
            FullName = InstrumentCommon[Instrument_Full_Name],
            CFI = InstrumentCommon[CFI_Code]
        in
            [FullName = FullName, CFI_Code = CFI]
    else
        [FullName = "", CFI_Code = ""]
in
    Output

Đảm bảo tính toàn vẹn dữ liệu với Power Query

Sử dụng ngôn ngữ M Power Query của Excel

let
    FetchData = (id as text) =>
    let
        Source = Json.Document(Web.Contents("https://example.com/data?Identifier=" & id)),
        Instrument = Source[Instrument]{0}?
        ResponseCode = try Instrument[Data_Flow][Data_Response_Code] otherwise 404,
        Output = if ResponseCode = 200 then
            let
                InstrumentCommon = Instrument[Instrument_Common],
                FullName = InstrumentCommon[Instrument_Full_Name],
                CFI = InstrumentCommon[CFI_Code]
            in
                [FullName = FullName, CFI_Code = CFI]
        else
            [FullName = "", CFI_Code = ""]
    in
        Output,
    Result = Table.AddColumn(YourTableName, "FetchData", each FetchData([Id]))
in
    Result

Kỹ thuật nâng cao để xử lý lỗi trong Power Query

Một khía cạnh của việc xử lý lỗi trong Power Query là khả năng quản lý khéo léo các tình huống trong đó dữ liệu dự kiến ​​bị thiếu hoặc phản hồi của máy chủ không như dự kiến. Điều này có thể đặc biệt hữu ích khi xử lý các tập dữ liệu lớn từ các nguồn web nơi có thể phát sinh các vấn đề không liên tục. Sử dụng try...otherwise cấu trúc không chỉ đảm bảo rằng truy vấn không bị lỗi mà còn tạo cơ hội ghi lại các lỗi này để phân tích thêm. Bạn có thể khắc phục lỗi ghi nhật ký bằng cách tạo một cột riêng ghi lại thông báo lỗi, cho phép người dùng xác định và giải quyết nguyên nhân gốc rễ một cách hiệu quả.

Một tính năng mạnh mẽ khác của Power Query là khả năng kết hợp nhiều truy vấn và nguồn dữ liệu. Bằng cách tạo một truy vấn chính nhằm hợp nhất các kết quả từ nhiều điểm cuối khác nhau, người dùng có thể hợp lý hóa quy trình xử lý dữ liệu của mình. Cách tiếp cận này đặc biệt hữu ích khi xử lý các API yêu cầu phân trang hoặc nhiều mã định danh để tìm nạp bộ dữ liệu hoàn chỉnh. Việc triển khai cấu trúc vòng lặp trong Power Query có thể tự động hóa các tác vụ này, giảm sự can thiệp thủ công và cải thiện độ chính xác của dữ liệu. Điều này không chỉ nâng cao năng suất mà còn đảm bảo quá trình tích hợp dữ liệu mạnh mẽ hơn.

Các câu hỏi và giải pháp phổ biến để xử lý lỗi Power Query

  1. cái gì là try...otherwise cấu trúc trong Power Query?
  2. Các try...otherwise cấu trúc được sử dụng để xử lý lỗi một cách khéo léo bằng cách thử một thao tác và cung cấp kết quả thay thế nếu thao tác đó thất bại.
  3. Làm cách nào tôi có thể ghi lại lỗi trong Power Query?
  4. Lỗi có thể được ghi lại bằng cách tạo một cột riêng ghi lại thông báo lỗi bằng cách sử dụng try...otherwise xây dựng, cho phép xác định và xử lý sự cố dễ dàng hơn.
  5. Mục đích của việc này là gì Web.Contents chức năng?
  6. Các Web.Contents hàm được dùng để tìm nạp dữ liệu từ một URL được chỉ định trong Power Query.
  7. Làm cách nào tôi có thể xử lý dữ liệu bị thiếu trong Power Query?
  8. Dữ liệu bị thiếu có thể được xử lý bằng cách kiểm tra mã phản hồi và đặt giá trị mặc định (ví dụ: chuỗi trống) khi không có dữ liệu, sử dụng if...then...else xây dựng.
  9. Là gì Json.Document được dùng cho?
  10. Các Json.Document hàm được sử dụng để phân tích dữ liệu JSON được lấy từ một dịch vụ web.
  11. Power Query có thể xử lý nhiều nguồn dữ liệu không?
  12. Có, Power Query có thể kết hợp nhiều nguồn dữ liệu bằng cách tạo một truy vấn chính nhằm hợp nhất các kết quả từ nhiều điểm cuối khác nhau, cải thiện hiệu quả tích hợp dữ liệu.
  13. Làm cách nào tôi có thể tự động tìm nạp dữ liệu trong Power Query?
  14. Việc tìm nạp dữ liệu có thể được tự động hóa bằng cách triển khai cấu trúc vòng lặp xử lý nhiều mã định danh hoặc dữ liệu được phân trang, giảm sự can thiệp thủ công.
  15. Là gì Table.Pivot được dùng cho?
  16. Các Table.Pivot Hàm được sử dụng để chuyển đổi các hàng thành cột dựa trên các giá trị riêng biệt, hỗ trợ việc tổ chức dữ liệu.
  17. Làm cách nào tôi có thể đảm bảo tính toàn vẹn dữ liệu khi sử dụng Power Query?
  18. Tính toàn vẹn của dữ liệu có thể được đảm bảo bằng cách xác thực mã phản hồi và xử lý lỗi một cách thích hợp, đảm bảo rằng chỉ có dữ liệu chính xác và đầy đủ mới được xử lý.

Kết thúc:

Xử lý hiệu quả các lỗi trong Excel Power Query khi truy xuất dữ liệu từ web là rất quan trọng để đảm bảo tính toàn vẹn của dữ liệu và tránh sự gián đoạn trong quá trình xử lý dữ liệu. Bằng cách sử dụng các lệnh và cấu trúc thích hợp như try...otherwise và Json.Document, bạn có thể quản lý một cách linh hoạt các tình huống trong đó dữ liệu bị thiếu hoặc phản hồi không như mong đợi. Cách tiếp cận này không chỉ giúp duy trì độ chính xác mà còn nâng cao tính ổn định của quy trình làm việc dữ liệu của bạn trong Excel.