Ngữ cảnh trong Công thức DAX

Lưu ý: Chúng tôi muốn cung cấp cho bạn nội dung trợ giúp mới nhất ở chính ngôn ngữ của bạn, nhanh nhất có thể. Trang này được dịch tự động nên có thể chứa các lỗi về ngữ pháp hoặc nội dung không chính xác. Mục đích của chúng tôi là khiến nội dung này trở nên hữu ích với bạn. Vui lòng cho chúng tôi biết ở cuối trang này rằng thông tin có hữu ích với bạn không? Dưới đây là bài viết bằng Tiếng Anh để bạn tham khảo dễ hơn.

Ngữ cảnh cho phép bạn thực hiện phân tích động, trong đó các kết quả của công thức có thể thay đổi để phản ánh vùng chọn ô hoặc hàng hiện tại và cũng là bất kỳ dữ liệu liên quan. Tìm hiểu về ngữ cảnh và dùng ngữ cảnh hiệu quả là rất quan trọng để xây dựng công thức thực hiện cao, phân tích động, và để khắc phục sự cố các vấn đề trong công thức.

Phần này xác định các loại ngữ cảnh: ngữ cảnh hàng, ngữ cảnh truy vấn, và bộ lọc ngữ cảnh. Giải thích về cách ngữ cảnh được đánh giá cho công thức trong cột được tính toán và trong Pivottable.

Phần cuối của bài viết này cung cấp các nối kết tới các ví dụ chi tiết minh hoạ cách kết quả công thức thay đổi theo ngữ cảnh.

Tìm hiểu về ngữ cảnh

Công thức trong Power Pivot có thể có bị ảnh hưởng bởi bộ lọc được áp dụng trong PivotTable, bằng mối quan hệ giữa các bảng và bộ lọc được dùng trong công thức. Ngữ cảnh là gì giúp bạn thực hiện phân tích linh động. Tìm hiểu về ngữ cảnh là quan trọng để xây dựng và để khắc phục sự cố công thức.

Có là các loại ngữ cảnh: ngữ cảnh hàng, ngữ cảnh truy vấn, và bộ lọc ngữ cảnh.

Ngữ cảnh hàng có thể được dùng như "hàng hiện tại." Nếu bạn đã tạo một cột được tính toán, ngữ cảnh hàng bao gồm các giá trị trong mỗi hàng cá nhân và các giá trị trong cột liên quan đến hàng hiện tại. Cũng là một số hàm (EARLIEREARLIEST) mà có được một giá trị từ hàng hiện tại và sau đó sử dụng giá trị đó trong khi thực hiện một thao tác qua toàn bộ một bảng.

Ngữ cảnh truy vấn tham chiếu tới tập hợp con dữ liệu được tạo hoàn toàn cho từng ô trong một PivotTable, tùy thuộc vào tiêu đề hàng và cột.

Ngữ cảnh bộ lọc là đặt giá trị được phép trong mỗi cột, dựa trên ràng buộc bộ lọc mà đã được áp dụng cho hàng hoặc mà được xác định bởi bộ lọc biểu thức trong công thức.

Đầu Trang

Ngữ cảnh hàng

Nếu bạn tạo công thức trong một cột được tính toán, ngữ cảnh hàng cho công thức bao gồm các giá trị từ tất cả các cột trong hàng hiện tại. Nếu bảng liên quan đến bảng khác, nội dung cũng bao gồm tất cả các giá trị từ bảng đó khác liên quan đến hàng hiện tại.

Ví dụ, giả sử bạn tạo một cột được tính toán, = [cước phí] + [thuế],

, mà cộng hai cột từ cùng một bảng. Công thức này hoạt động giống như công thức trong bảng Excel, tự động tham chiếu đến giá trị từ cùng một hàng. Lưu ý rằng các bảng khác nhau từ phạm vi: bạn không thể tham chiếu một giá trị từ hàng trước khi hàng hiện tại bằng cách sử dụng phạm vi ký hiệu, và bạn không thể tham chiếu bất kỳ giá trị duy nhất bất kỳ trong bảng hoặc ô. Bạn phải luôn luôn làm việc với bảng và cột.

Ngữ cảnh hàng tự động theo dõi các mối quan hệ giữa các bảng để xác định hàng nào trong bảng liên quan được liên kết với hàng hiện tại.

Ví dụ, công thức sau đây dùng hàm liên quan để tải một thuế giá trị từ bảng có liên quan, dựa trên khu vực thứ tự được chuyển đến. Thuế giá trị được xác định bằng cách dùng giá trị cho khu vực trong bảng hiện tại, cứu khu vực trong bảng liên quan, và sau đó bắt thuế suất khu vực đó từ bảng có liên quan.

= [Cước phí] + RELATED('Region'[TaxRate])

Công thức này chỉ cần nhận thuế suất cho vùng hiện tại, từ bảng khu vực. Bạn không cần phải biết hoặc phím kết nối các bảng xác định.

Ngữ cảnh nhiều hàng

Ngoài ra, DAX có các hàm lặp đi lặp lại các phép tính trong một bảng. Các hàm này có thể có nhiều hàng hiện tại và ngữ cảnh hàng hiện tại. Trong thuật ngữ lập trình, bạn có thể tạo công thức recurse qua một vòng lặp bên trong và bên ngoài.

Ví dụ, giả sử sổ làm việc chứa một bảng sản phẩm và bảng doanh số . Bạn có thể muốn thông qua toàn bộ bảng doanh số, đây là đầy đủ giao dịch có liên quan đến nhiều sản phẩm, và tìm số lượng lớn nhất sắp xếp thứ tự cho từng sản phẩm trong bất kỳ một giao dịch.

Trong Excel, tính toán này đòi hỏi phải có một chuỗi tóm tắt trung gian, cần phải được dựng lại nếu dữ liệu đã thay đổi. Nếu bạn là người dùng sức mạnh của Excel, bạn có thể xây dựng công thức mảng sẽ làm việc. Ngoài ra, trong cơ sở dữ liệu quan hệ, bạn có thể viết lồng nhau subselects.

Tuy nhiên, với DAX bạn có thể xây dựng một công thức trả về giá trị đúng và kết quả được tự động Cập Nhật bất kỳ lúc nào bạn thêm dữ liệu vào bảng.

=Maxx(Filter(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Để biết hướng dẫn chi tiết về công thức này, hãy xem EARLIER.

Nói tóm lại, hàm EARLIER lưu ngữ cảnh hàng từ thao tác có hoạt động hiện tại. Tại tất cả các lần, hàm lưu trữ trong bộ nhớ hai bộ ngữ cảnh: biểu thị một tập hợp các ngữ cảnh hàng hiện tại cho vòng lặp bên trong của công thức và biểu thị một tập hợp các ngữ cảnh hàng hiện tại cho vòng lặp bên ngoài của công thức. DAX tự động nguồn cấp các giá trị giữa hai vòng để bạn có thể tạo tổng hợp phức tạp.

Đầu Trang

Ngữ cảnh truy vấn

Ngữ cảnh truy vấn tham chiếu tới tập hợp con dữ liệu được truy xuất hoàn toàn cho công thức. Khi bạn thả một thước đo hoặc trường giá trị vào một ô trong một PivotTable, công cụ Power Pivot sẽ kiểm tra các tiêu đề hàng và cột, slicer và bộ lọc báo cáo để xác định ngữ cảnh. Sau đó, Power Pivot làm cho các phép tính cần thiết để nhập từng ô trong PivotTable. Tập hợp dữ liệu được truy xuất là ngữ cảnh truy vấn cho mỗi ô.

Vì ngữ cảnh có thể thay đổi tùy thuộc vào nơi bạn đặt công thức, kết quả của công thức cũng thay đổi tùy thuộc vào việc bạn sử dụng công thức trong một PivotTable với bộ lọc và nhóm, hoặc trong một cột được tính toán với không có bộ lọc và tối thiểu ngữ cảnh.

Ví dụ, giả sử bạn tạo công thức đơn giản này tính tổng các giá trị trong cột Profit của table:=SUM('Sales'[Profit]) doanh số .

Nếu bạn sử dụng công thức này trong một cột được tính toán trong bảng Sales , kết quả cho công thức sẽ giống nhau cho toàn bộ bảng, vì ngữ cảnh truy vấn cho công thức luôn là toàn bộ tập dữ liệu của bảng Sales . Kết quả của bạn sẽ có lợi nhuận cho tất cả các vùng, tất cả sản phẩm, tất cả năm, vân vân.

Tuy nhiên, thông thường bạn không muốn xem kết quả giống hàng trăm lần, nhưng thay vào đó bạn muốn nhận lợi nhuận cho một năm cụ thể, một quốc gia cụ thể hoặc khu vực, một sản phẩm cụ thể, hoặc sự kết hợp này, và sau đó nhận được một tổng.

Trong PivotTable, thật dễ dàng để thay đổi ngữ cảnh bằng cách thêm hoặc loại bỏ tiêu đề cột và hàng và bằng cách thêm hoặc loại bỏ slicer. Bạn có thể tạo công thức như trên, trong một số đo, và sau đó thả nó vào PivotTable. Bất cứ khi nào bạn thêm đề mục cột hoặc hàng trong pivottable, bạn có thể thay đổi ngữ cảnh truy vấn trong đó thước đo được đánh giá. Cắt và lọc các thao tác cũng ảnh hưởng đến ngữ cảnh. Do đó, cùng một công thức, được sử dụng trong PivotTable, được đánh giá trong ngữ cảnh truy vấn khác nhau cho mỗi ô.

Đầu Trang

Ngữ cảnh bộ lọc

Ngữ cảnh bộ lọc được thêm vào khi bạn chỉ rõ ràng buộc bộ lọc trong tập giá trị được phép trong một cột hay bảng, bằng cách sử dụng các đối số công thức. Ngữ cảnh bộ lọc áp dụng ở phía trên cùng các ngữ cảnh, chẳng hạn như ngữ cảnh hàng hoặc các ngữ cảnh truy vấn.

Ví dụ, một PivotTable tính toán các giá trị cho mỗi ô dựa trên các đầu đề hàng và cột, như được mô tả trong phần trước đó trên ngữ cảnh truy vấn. Tuy nhiên, trong cột tính mà bạn thêm vào PivotTable hoặc thước đo, bạn có thể xác định biểu thức bộ lọc để kiểm soát các giá trị được dùng bởi công thức. Bạn cũng có chọn có thể xóa bộ lọc trên cột cụ thể.

Để biết thêm thông tin về cách tạo bộ lọc trong công thức, hãy xem hàm bộ lọc.

Để biết ví dụ về cách người có thể xóa bộ lọc để tạo tổng cộng, hãy xem tất cả.

Ví dụ về cách xóa có chọn và áp dụng bộ lọc trong công thức, hãy xem Hàm ALLEXCEPT.

Do đó, bạn phải xem lại định nghĩa của các số đo hoặc công thức sử dụng trong PivotTable để bạn biết về ngữ cảnh bộ lọc khi diễn giải kết quả công thức.

Đầu Trang

Xác định ngữ cảnh trong công thức

Khi bạn tạo công thức, Power Pivot cho Excel trước tiên kiểm tra chung cú pháp và sau đó nó sẽ kiểm tra tên của cột và bảng mà bạn cung cấp đối với các cột và bảng trong ngữ cảnh hiện tại. Nếu Power Pivot không thể tìm thấy các cột và bảng được xác định bởi công thức, bạn sẽ nhận được một lỗi.

Ngữ cảnh được xác định như được mô tả trong phần trước, bằng cách sử dụng các bảng sẵn dùng trong sổ làm việc, bất kỳ mối quan hệ giữa các bảng, và mọi bộ lọc đã được áp dụng.

Ví dụ, nếu bạn chỉ đã nhập vào một số dữ liệu vào một bảng mới và không áp dụng bộ lọc bất kỳ, đặt toàn bộ cột trong bảng là một phần trong ngữ cảnh hiện tại. Nếu bạn có nhiều bảng được nối kết bằng quan hệ và bạn đang làm việc trong một PivotTable vốn đã được lọc bằng cách thêm đầu đề cột và ngữ cảnh dùng slicer, bao gồm các bảng liên quan và mọi bộ lọc trên dữ liệu.

Ngữ cảnh là một khái niệm mạnh mẽ cũng có thể làm nó khó để khắc phục sự cố công thức. Chúng tôi khuyên bạn bắt đầu với công thức đơn giản và mối quan hệ để xem cách hoạt động của ngữ cảnh, và sau đó bắt đầu thử nghiệm với các công thức đơn giản trong Pivottable. Phần sau đây cung cấp một số ví dụ về cách thức sử dụng các loại ngữ cảnh để linh hoạt trả về kết quả.

Ví dụ về ngữ cảnh trong công thức

  • Hàm liên quan sẽ mở rộng ngữ cảnh hàng hiện tại để bao gồm giá trị trong cột liên quan. Điều này cho phép bạn thực hiện tra cứu. Ví dụ trong chủ đề này minh họa tương tác lọc và hàng ngữ cảnh.

  • Hàm FILTER cho phép bạn xác định các hàng để bao gồm trong ngữ cảnh hiện tại. Ví dụ trong chủ đề này cũng minh họa cách nhúng các bộ lọc trong các hàm khác thực hiện các dạng tập họp khác.

  • Hàm ALL đặt ngữ cảnh trong công thức. Bạn có thể dùng nó để ghi đè các bộ lọc được áp dụng ở dạng kết quả truy vấn ngữ cảnh.

  • Hàm ALLEXCEPT cho phép bạn loại bỏ tất cả các bộ lọc ngoại trừ một mà bạn xác định. Cả hai chủ đề này bao gồm các ví dụ hướng dẫn bạn xây dựng công thức và tìm hiểu về ngữ cảnh phức tạp.

  • Các EARLIER và sớm nhất hàm cho phép bạn phát lặp lại thông qua các bảng bằng cách thực hiện phép tính, trong khi tham chiếu một giá trị từ vòng lặp bên trong. Nếu bạn đã quen với khái niệm của phép đệ quy và vòng lặp bên trong và bên ngoài, bạn sẽ rất trân trọng power có các hàm EARLIER và EARLIEST cung cấp. Nếu bạn mới dùng các khái niệm, bạn nên làm theo các bước trong ví dụ cẩn thận để xem làm thế nào bên trong và ngoài ngữ cảnh được dùng trong phép tính.

Đầu Trang

Tính toàn vẹn tham chiếu

Phần này đề cập đến một số khái niệm nâng cao liên quan đến các giá trị bị thiếu trong Power Pivot bảng được kết nối bằng mối quan hệ. Phần này có thể hữu ích cho bạn khi bạn có sổ làm việc với nhiều bảng và công thức phức tạp và muốn trợ giúp trong tìm hiểu về kết quả.

Nếu bạn quen với khái niệm dữ liệu quan hệ, chúng tôi khuyên bạn trước tiên đọc chủ đề giới thiệu Tổng quan về mối quan hệ.

Tính toàn vẹn tham chiếu và mối quan hệ Power Pivot

Power Pivot không yêu cầu tính toàn vẹn tham chiếu được áp giữa hai bảng để xác định mối quan hệ hợp lệ. Thay vào đó, một hàng trống được tạo ở đầu "một" của từng mối quan hệ một-nhiều và được dùng để xử lý tất cả không khớp với các hàng từ bảng có liên quan. Một cách hiệu quả nó hoạt động như một nối ngoài SQL.

Trong Pivottable, nếu bạn nhóm dữ liệu theo một bên của mối quan hệ, bất kỳ dữ liệu không khớp ở bên nhiều của mối quan hệ được nhóm lại với nhau và sẽ được bao gồm trong tổng cộng với đầu đề hàng trống. Đầu đề trống là phải xấp xỉ tương đương với phần tử không xác định"."

Tìm hiểu các phần tử không xác định

Khái niệm của phần tử không xác định là có thể quen thuộc với bạn, nếu bạn đã làm việc với cơ sở dữ liệu đa chiều hệ thống, chẳng hạn như dịch vụ phân tích SQL Server. Nếu thuật ngữ mới của bạn, ví dụ sau đây giải thích phần tử không xác định là gì và hưởng phép tính.

Giả sử bạn đang tạo một phép tính tính tổng doanh số hàng tháng cho mỗi cửa hàng, nhưng một cột trong bảng doanh số thiếu một giá trị cho tên cửa hàng. Cho rằng các bảng cho lưu trữdoanh thu được kết nối bằng tên cửa hàng, những gì bạn mong muốn xảy ra trong công thức? Làm thế nào nên PivotTable nhóm hoặc hiển thị các số liệu bán hàng không liên quan đến một cửa hàng hiện có?

Vấn đề này là một phổ biến trong kho dữ liệu, nơi lớn bảng dữ liệu thực tế phải lô-gic liên quan đến kích thước bảng có chứa thông tin về lưu trữ, khu vực, và các thuộc tính được dùng để phân loại và tính toán sự kiện. Để giải quyết vấn đề, bất kỳ sự kiện mới được không liên quan đến một thực thể hiện có tạm thời được gán cho phần tử không xác định. Đó là lý do tại sao dữ liệu không liên quan sẽ xuất hiện được nhóm trong PivotTable dưới một đề mục trống.

Xử lý các giá trị trống so với các hàng trống

Giá trị trống sẽ khác nhau từ các hàng trống sẽ được thêm vào phù hợp với phần tử không xác định. Giá trị trống là một giá trị đặc biệt được dùng để đại diện cho null, Chuỗi trống và các giá trị bị thiếu. Để biết thêm thông tin về giá trị trống, cũng như các kiểu dữ liệu DAX, hãy xem loại dữ liệu trong mô hình dữ liệu.

Đầu Trang

Phát triển kỹ năng Office 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.

×