Lọc Dữ liệu trong Công thức DAX

Quan trọng:  Bài viết này là dịch máy, hãy xem tuyên bố miễn trừ trách nhiệm. Bạn hãy tìm phiên bản tiếng Anh của bài viết này tại đây để tham khảo.

Phần này mô tả cách tạo bộ lọc trong công thức biểu thức phân tích dữ liệu (DAX). Bạn có thể tạo bộ lọc trong công thức, để hạn chế các giá trị từ nguồn dữ liệu được dùng trong phép tính. Bạn thực hiện điều này bằng cách xác định bảng làm một đầu công thức, và sau đó xác định một biểu thức bộ lọc. Biểu thức bộ lọc bạn cung cấp được dùng để truy vấn dữ liệu và trả về chỉ một tập hợp con dữ liệu nguồn. Bộ lọc được áp dụng tự động mỗi khi bạn cập nhật kết quả của công thức, tùy theo ngữ cảnh hiện tại của dữ liệu của bạn.

Trong bài viết này

Tạo một Bộ lọc trên một Bảng được sử dụng trong một Công thức

Các Bộ lọc Xóa các Nội dung Trùng lặp

Ngữ cảnh Ảnh hưởng thế nào đến các Bộ lọc

Xóa Các Bộ lọc

Ghi đè Tất cả Bộ lọc bằng Hàm ALL

Ghi đè các Bộ lọc Cụ thể bằng Hàm ALLEXCEPT

Tạo một Bộ lọc trên một Bảng được sử dụng trong một Công thức

Bạn có thể áp dụng các bộ lọc trong các công thức lấy một bảng làm dữ liệu nhập. Thay vì nhập tên bảng, bạn sử dụng hàm FILTER để đặt một tập hợp phụ các hàng từ bảng đã cho. Sau đó tập hợp phụ đó được đưa qua một hàm khác, để thực hiện các thao tác như tổng hợp tùy chỉnh.

Ví dụ như, giả sử bạn có một bảng dữ liệu có thông tin đơn hàng về các nhà bán lại và bạn muốn tính số tiền mỗi nhà bán lại đã bán. Tuy nhiên, bạn muốn hiển thị số tiền doanh thu của chỉ những nhà bán lại nào đã bán nhiều đơn vị các sản phẩm có giá trị cao hơn của bạn. Công thức sau đây, dựa trên sổ làm việc mẫu DAX, minh họa một ví dụ về cách bạn có thể lập phép tính này bằng cách sử dụng một bộ lọc:

= SUMX (
lọc ('ResellerSales_USD', 'ResellerSales_USD' [số lượng] > 5 & &
'ResellerSales_USD' [ProductStandardCost_USD] > 100),
'ResellerSales_USD' [SalesAmt]
)

  • Phần đầu tiên của công thức xác định một trong các hàm tính gộp Power Pivot , nhận một bảng làm đối số. SUMX tính tổng một bảng.

  • Phần thứ hai của công thức, FILTER(table, expression),cho SUMX dữ liệu nào để sử dụng. SUMX đòi hỏi phải có một bảng hoặc biểu thức kết quả trong một bảng. Ở đây, thay vì sử dụng tất cả dữ liệu trong bảng, bạn sử dụng hàm FILTER để xác định trong các hàng từ bảng được sử dụng.

    Biểu thức lọc có hai phần: phần đầu tiên tên bảng mà bộ lọc áp dụng. Phần thứ hai xác định một biểu thức để sử dụng làm điều kiện lọc. Trong trường hợp này, bạn đang lọc trên bán lại người bán được hơn 5 đơn vị và sản phẩm có giá hơn $100. Toán tử, & &, một toán tử và lô-gic, cho biết rằng cả hai phần điều kiện phải đúng cho hàng liên tập con đã lọc.

  • Phần thứ ba của công thức cho hàm SUMX biết các giá trị nào cần được cộng lại. Trong trường hợp này bạn chỉ sử dụng số tiền doanh thu.

    Lưu ý rằng các hàm như hàm FILTER, vốn trả về một bảng, sẽ không bao giờ trả về bảng hoặc các hàng trực tiếp, mà luôn được nhúng trong một hàm khác. Để biết thêm thông tin về hàm FILTER và các hàm khác dùng để lọc, bao gồm các ví dụ khác, hãy xem Hàm Lọc (DAX).

    Ghi chú: Biểu thức lọc bị ảnh hưởng bởi ngữ cảnh trong đó nó được sử dụng. Ví dụ như, nếu bạn sử dụng một bộ lọc trong một số đo và số đo đó được sử dụng trong một PivotTable hoặc PivotChart, tập hợp con của dữ liệu được trả lại có thể bị ảnh hưởng bởi các bộ lọc khác hoặc các Slicer mà người dùng đã áp dụng trong PivotTable. Để biết thêm thông tin về ngữ cảnh, xem Ngữ cảnh trong các Công thức DAX.

Các Bộ lọc Xóa các Nội dung Trùng lặp

Ngoài việc lọc các giá trị cụ thể, bạn còn có thể trả lại một tập hợp giá trị duy nhất từ một bảng hay cột khác. Việc này có thể có ích khi bạn muốn đếm số giá trị duy nhất trong một cột, hoặc sử dụng một danh sách các giá trị duy nhất cho các thao tác khác. DAX cung cấp hai hàm để trả lại các giá trị riêng biệt: Hàm DISTINCTHàm VALUES.

  • Hàm DISTINCT kiểm tra một cột duy nhất mà bạn cho biết làm một đối số cho hàm đó và trả lại một cột mới chỉ có các giá trị riêng biệt.

  • Giá trị hàm cũng trả về một danh sách các giá trị duy nhất, nhưng cũng trả về phần tử không xác định. Điều này rất hữu ích khi bạn sử dụng giá trị từ hai bảng được nối bằng một mối quan hệ và một giá trị bị thiếu trong một bảng và trình bày trong số các. Để biết thêm thông tin về phần tử không xác định, hãy xem ngữ cảnh trong công thức DAX.

Cả hai hàm này trả lại toàn bộ cột giá trị; do đó, bạn sử dụng các hàm này để có được một danh sách các giá trị sau đó đi qua một hàm khác. Ví dụ như, bạn có thể sử dụng công thức sau đây để có được một danh sách các sản phẩm riêng biệt được bán bởi một nhà bán lại cụ thể, sử dụng mã sản phẩm duy nhất và sau đó đếm sản phẩm trong danh sách đó bằng cách sử dụng hàm COUNTROWS:

=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))

Đầu Trang

Ngữ cảnh Ảnh hưởng thế nào đến các Bộ lọc

Khi bạn thêm công thức DAX tới PivotTable hoặc PivotChart, kết quả của công thức có thể có bị ảnh hưởng bởi ngữ cảnh. Nếu bạn đang làm việc trong một bảng Power Pivot , ngữ cảnh là hàng hiện tại và giá trị của nó. Nếu bạn đang làm việc trong một PivotTable hoặc PivotChart, ngữ cảnh có nghĩa là tập hợp hoặc tập hợp con dữ liệu được xác định bởi các hoạt động như cắt hoặc lọc. Thiết kế của PivotTable hoặc PivotChart cũng áp dụng ngữ cảnh của chính nó. Ví dụ, nếu bạn tạo một PivotTable nhóm doanh số theo vùng và năm, chỉ có dữ liệu để áp dụng các khu vực và năm sẽ xuất hiện trong PivotTable. Do đó các số đo mà bạn thêm vào PivotTable được tính toán trong ngữ cảnh của đầu đề cột và hàng cộng với bất kỳ bộ lọc trong công thức số đo.

Để biết thêm thông tin, xin xem Ngữ cảnh trong các Công thức DAX.

Đầu Trang

Xóa Các Bộ lọc

Khi làm việc với các công thức phức tạp, bạn có thể muốn biết chính xác các bộ lọc hiện tại là gì hoặc bạn có thể muốn điều chỉnh phần bộ lọc của công thức. DAX cung cấp vài hàm cho phép bạn xóa các bộ lọc và kiểm soát các cột nào được giữ lại như một phần của ngữ cảnh bộ lọc hiện tại. Phần này cung cấp thông tin khái quát về cách các hàm này ảnh hưởng đến kết quả trong một công thức.

Ghi đè Tất cả Bộ lọc bằng Hàm ALL

Bạn có thể sử dụng hàm ALL để ghi đè lên bất kỳ bộ lọc được áp dụng trước đó, và trả về tất cả các hàng trong bảng để hàm đang thực hiện thao tác tổng hợp hoặc khác. Nếu bạn sử dụng một hoặc nhiều cột, thay vì một bảng, như là đối số ALL, hàm ALL trả về tất cả các hàng, bỏ qua mọi bộ lọc ngữ cảnh.

Ghi chú: Nếu bạn đã quen thuộc thuật ngữ cơ sở dữ liệu quan hệ, bạn có thể nghĩ đến ALL như tạo ra sự kết hợp bên ngoài bên trái tự nhiên của tất cả các bảng.

Ví dụ như, giả sử bạn có các bảng, Doanh thu và Sản phẩm và bạn muốn tạo một công thức sẽ tính tổng doanh thu đối với sản phẩm hiện tại chia cho doanh thu đối với tất cả sản phẩm. Bạn phải tính đến việc là nếu công thức đó được sử dụng trong một số đo, người dùng PivotTable có thể sử dụng Slicer để lọc một sản phẩm cụ thể, bằng tên sản phẩm trên các hàng. Do đó, để có được giá trị đúng của mẫu số bất kể có bất kỳ bộ lọc hay Slicer nào, bạn phải thêm hàm ALL để ghi đè bất kỳ bộ lọc nào. Công thức sau đây là một ví dụ về cách sử dụng hàm ALL để ghi đè hiệu ứng của các bộ lọc trước đó:

= SUM (doanh số [số tiền]) / SUMX (Sales [số tiền], bộ lọc (doanh số, ALL(Products)))

  • Phần thứ hai của công thức, SUM (Sales[Amount]), tính tử số.

  • Số tổng có cân nhắc ngữ cảnh hiện tại, có nghĩa là nếu bạn thêm công thức đó vào một cột đã tính, ngữ cảnh hàng được áp dụng và nếu bạn thêm công thức đó vào một PivotTable làm một số đo, bất kỳ bộ lọc nào đã áp dụng trong PivotTable đó (ngữ cảnh bộ lọc) sẽ được áp dụng.

  • Phần thứ hai của công thức tính toán với mẫu số. Hàm ALL sẽ ghi đè bất kỳ bộ lọc có thể được áp dụng cho bảng Products .

Để biết thêm thông tin, bao gồm các ví dụ chi tiết, xin xem Hàm ALL.

Ghi đè các Bộ lọc Cụ thể bằng Hàm ALLEXCEPT

Hàm ALLEXCEPT cũng ghi đè các bộ lọc hiện có, nhưng bạn có thể cho biết rằng một số bộ lọc hiện có cần được giữ lại. Các cột mà bạn đặt làm đối số cho hàm ALLEXCEPT cho biết những cột nào sẽ tiếp tục được lọc. Nếu bạn muốn ghi đè các bộ lọc từ phần lớn các cột nhưng không phải tất cả, hàm ALLEXCEPT tiện lợi hơn hàm ALL. Hàm ALLEXCEPT đặc biệt hữu ích khi bạn tạo các bảng PivotTable có thể được lọc trên nhiều cột khác nhau và bạn muốn kiểm soát các giá trị được sử dụng trong công thức. Để biết thêm thông tin, bao gồm một ví dụ chi tiết về cách sử dụng hàm ALLEXCEPT trong một bảng PivotTable, xin xem Hàm ALLEXCEPT.

Đầu Trang

Ghi chú: Tuyên bố miễn trừ trách nhiệm Dịch Máy: Bài viết này do một hệ thống máy tính dịch mà không có sự can thiệp của con người. Microsoft cung cấp những bản dịch máy này để giúp người dùng không nói tiếng Anh hiểu nội dung về các sản phẩm, dịch vụ và công nghệ của Microsoft. Do bài viết này được dịch máy nên có thể có các lỗi về từ vựng, cú pháp hoặc ngữ pháp.

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×