Excel DAX - Hướng dẫn nhanh
DAX là viết tắt của Data Aphân giải Exáp lực. DAX là một ngôn ngữ công thức và là một tập hợp các hàm, toán tử và hằng số có thể được sử dụng trong một công thức hoặc biểu thức để tính toán và trả về một hoặc nhiều giá trị. DAX là ngôn ngữ công thức được liên kết với Mô hình Dữ liệu của Excel Power Pivot.
Nó không phải là một ngôn ngữ lập trình, mà là một ngôn ngữ công thức cho phép người dùng xác định các phép tính tùy chỉnh trong các cột được tính toán và các trường được tính toán (còn được gọi là các số đo). DAX giúp bạn tạo thông tin mới từ dữ liệu đã có trong Mô hình dữ liệu của bạn. Công thức DAX cho phép bạn thực hiện lập mô hình dữ liệu, phân tích dữ liệu và sử dụng kết quả để báo cáo và ra quyết định.
DAX bao gồm một số hàm được sử dụng trong công thức Excel, nhưng với chức năng được sửa đổi và các hàm bổ sung được thiết kế để hoạt động với dữ liệu quan hệ và thực hiện tổng hợp động.
Tầm quan trọng của DAX
Nền tảng của DAX là Mô hình Dữ liệu là cơ sở dữ liệu Power Pivot trong Excel. Mô hình Dữ liệu bao gồm các bảng mà giữa các mối quan hệ có thể được xác định để kết hợp dữ liệu từ các nguồn khác nhau. Các kết nối dữ liệu với Mô hình Dữ liệu có thể được làm mới khi và khi dữ liệu nguồn thay đổi. Mô hình Dữ liệu làm cho việc sử dụng công cụ phân tích trong bộ nhớ Power Pivot xVelocity (VertiPaq) để làm cho các hoạt động dữ liệu nhanh nhất có thể ngoài việc cung cấp hàng nghìn hàng dữ liệu. Để biết thêm thông tin về Mô hình Dữ liệu, hãy tham khảo hướng dẫn - Power Pivot.
DAX kết hợp với Mô hình Dữ liệu cho phép một số tính năng mạnh mẽ trong Excel - Power Pivot, Power PivotTables, Power PivotCharts và Power View. Bạn có thể sử dụng DAX để giải quyết một số vấn đề về tính toán và phân tích dữ liệu cơ bản.
DAX cũng hữu ích trong Power BI để tạo tệp Power BI Desktop mới và nhập một số dữ liệu vào đó. Hơn nữa, các công thức DAX cung cấp các khả năng như phân tích tỷ lệ phần trăm tăng trưởng trên các danh mục sản phẩm và cho các phạm vi ngày khác nhau, tính toán mức tăng trưởng hàng năm so với xu hướng thị trường và nhiều thứ khác.
Học cách tạo công thức DAX hiệu quả sẽ giúp bạn tận dụng tối đa dữ liệu của mình. Khi nhận được thông tin cần thiết, bạn có thể bắt đầu giải quyết các vấn đề kinh doanh thực sự ảnh hưởng đến lợi nhuận của mình. Đây là sức mạnh trong Power BI và DAX sẽ giúp bạn đạt được điều đó.
Điều kiện tiên quyết cho Hướng dẫn này
Hướng dẫn này là phần mở rộng của hướng dẫn Excel Power Pivot, nơi bạn đã tìm hiểu về tính năng Power Pivot, Mô hình dữ liệu, Mối quan hệ, Power PivotTables, Biểu đồ Power Pivot, v.v. Bạn nên tìm hiểu kỹ về hướng dẫn này trước khi đi sâu vào vào DAX vì hướng dẫn này thiên về ngôn ngữ DAX, trong đó bạn viết các công thức để phân tích dữ liệu trong Mô hình Dữ liệu và báo cáo các kết quả đó.
Hướng dẫn này cũng giới thiệu các Hàm DAX giống như các Hàm Excel, nhưng có một số biến thể. So sánh Hàm Excel và Hàm DAX được cung cấp để giúp bạn phân biệt cả hai. Tương tự, các công thức Excel và công thức DAX được so sánh và những điểm giống và khác nhau sẽ được thảo luận. Hiểu rõ về những khác biệt này sẽ giúp bạn viết các công thức DAX hiệu quả.
Kiến thức về Hàm Excel và Công thức Excel là không cần thiết cho hướng dẫn này, vì DAX hoàn toàn dành cho Mô hình Dữ liệu trong cửa sổ Power Pivot. Bạn sẽ chỉ vào được trang tính Excel để xem trực quan Power PivotTables, Power Pivot Charts và Power View dựa trên Mô hình Dữ liệu. Tuy nhiên, nếu bạn là một chuyên gia Excel với lượng kiến thức tốt về Hàm và Công thức trong Excel, tốt hơn hãy ghi lại những gì được đề cập trong phần trước và các chi tiết được cung cấp trong khóa học của hướng dẫn này.
Các cột được tính toán
Các cột được tính toán là các cột mà bạn có thể thêm vào bảng trong Mô hình Dữ liệu, bằng công thức DAX. Bạn đã tìm hiểu về chúng trong hướng dẫn Excel Power Pivot, nhưng bạn sẽ tìm hiểu chi tiết trong chương - Các Cột được Tính như DAX là tất cả về các cột được tính toán, các trường được tính toán và các hàm DAX.
Các trường / thước đo được tính toán
Bạn không thể thay đổi các giá trị trong các bảng trong Mô hình Dữ liệu bằng cách chỉnh sửa. Tuy nhiên, bạn có thể thêm các trường được tính toán vào bảng có thể được sử dụng trong Power PivotTables. Các trường được tính toán được xác định bằng cách đặt tên và xác định công thức DAX. Để biết chi tiết, hãy tham khảo chương - Các trường được tính toán .
Các trường được tính toán được đặt tên là các thước đo trong các phiên bản Excel trước Excel 2013. Chúng được đổi tên lại thành các thước đo trong Excel 2016. Trong hướng dẫn này, chúng tôi sẽ gọi chúng là các trường được tính toán. Tuy nhiên, lưu ý rằng các thuật ngữ - trường và thước đo được tính toán - đồng nghĩa và đề cập đến như nhau ở mọi khía cạnh.
Bạn có thể chỉnh sửa một trường được tính toán sau khi nó được xác định và lưu trữ. Bạn có thể thay đổi công thức DAX được sử dụng trong định nghĩa hoặc bạn có thể đổi tên trường được tính toán. Bạn sẽ tìm hiểu về điều này trong chương - Chỉnh sửa Trường Tính toán . Bạn có thể xóa một trường được tính toán. Tham khảo chương - Xóa Trường Tính toán .
Công thức DAX
Công thức DAX tạo thành trung tâm của ngôn ngữ DAX. Bạn có thể tạo các trường được tính toán và các cột được tính toán bằng cách xác định chúng bằng công thức DAX. Bạn có thể viết công thức DAX cho các hoạt động phân tích dữ liệu. Công thức DAX không tham chiếu đến các ô hoặc dải ô riêng lẻ trong bảng, nhưng tham chiếu đến các bảng và cột trong Mô hình Dữ liệu. Một cột trong bảng trong Mô hình Dữ liệu phải chứa cùng một kiểu dữ liệu.
Công thức DAX chứa bảng, cột, cột được tính toán, trường được tính toán, toán tử DAX và hàm DAX. Tham khảo chương - Công thức DAX để tìm hiểu chi tiết.
Cú pháp DAX
Như trường hợp của bất kỳ ngôn ngữ nào, DAX, ngôn ngữ công thức cũng có cú pháp. Các công thức DAX của bạn phải tuân theo cú pháp DAX, nếu không, bạn sẽ gặp lỗi vào lúc thiết kế hoặc lúc chạy hoặc bạn sẽ nhận được kết quả không chính xác.
Bạn sẽ tìm hiểu nội dung sau trong chương - Cú pháp DAX -
- Yêu cầu đặt tên DAX cho Bảng, Cột
- Toán tử DAX
- DAX giá trị đặc biệt
- Các kiểu dữ liệu DAX
- Chuyển đổi kiểu dữ liệu ngầm DAX
Nhà điều hành DAX
DAX là một ngôn ngữ công thức và do đó sử dụng các toán tử để xác định công thức. DAX có các loại toán tử sau:
- Toán tử số học DAX
- Toán tử so sánh DAX
- Toán tử kết nối văn bản DAX
- Toán tử lôgic DAX
Thứ tự ưu tiên toán tử DAX cũng được xác định và thay đổi theo thứ tự ưu tiên toán tử Excel. Tham khảo chương - Toán tử DAX .
Tham số tiêu chuẩn DAX
Cú pháp hàm DAX có các yêu cầu nhất định về tham số. Điều này là do các đối số của hàm DAX có thể là bảng hoặc cột hoặc trường được tính toán hoặc các hàm DAX khác. Tham khảo chương - Tham số chuẩn DAX .
Chức năng DAX
Excel 2013 có 246 hàm DAX mà bạn có thể sử dụng trong công thức DAX. Bạn sẽ tìm hiểu về các chức năng này ở cấp độ danh mục trong chương -DAX Functions. Tuy nhiên, để biết chi tiết về từng cú pháp, tham số, cách sử dụng và giá trị trả về của hàm DAX, bạn phải tham khảo hướng dẫn của chúng tôi về - Hàm DAX . Tên phần được sử dụng cho mô tả của từng hàm DAX được đưa ra trong chương - Tìm hiểu các hàm DAX .
Vì các hàm DAX được yêu cầu khi viết công thức DAX và kết quả của các hàm DAX được sử dụng phụ thuộc vào ngữ cảnh chúng được sử dụng, bạn có thể phải quay đi quay lại giữa hai hướng dẫn này để nắm rõ về DAX mà bạn sẽ sử dụng trong Dữ liệu Lập mô hình với DAX và Power BI.
Các chức năng đặc biệt của DAX
DAX có một số chức năng làm cho DAX trở nên mạnh mẽ. Các chức năng DAX này thuộc các danh mục - chức năng thông minh thời gian DAX và chức năng lọc DAX và yêu cầu đề cập đặc biệt. Bạn sẽ tìm hiểu về các chức năng thông minh thời gian DAX trong chương - Tìm hiểu thông minh thời gian DAX . Bạn sẽ tìm hiểu về cách sử dụng các hàm bộ lọc DAX trong chương - Các hàm bộ lọc DAX .
Bối cảnh đánh giá DAX
Kết quả của công thức DAX có thể khác nhau dựa trên ngữ cảnh được sử dụng để đánh giá. DAX có hai loại ngữ cảnh đánh giá - Ngữ cảnh hàng và Ngữ cảnh bộ lọc. Tham khảo chương - Bối cảnh Đánh giá DAX .
Công thức DAX
DAX là một ngôn ngữ công thức và bạn phải khai thác tối đa nó khi viết các công thức DAX. Tham khảo chương - Công thức DAX để tìm hiểu về cú pháp công thức và cách tạo chúng một cách dễ dàng và chính xác.
Kết quả của công thức DAX thay đổi bất cứ khi nào dữ liệu được làm mới và bất cứ khi nào công thức DAX được tính toán lại. Bạn phải hiểu sự khác biệt giữa làm mới dữ liệu và tính toán lại. Tham khảo chương - Cập nhật kết quả của công thức DAX .
Dữ liệu trong Mô hình Dữ liệu được mong đợi và có thể thay đổi theo thời gian. Điều này là do dữ liệu được sử dụng cho các hoạt động phân tích dữ liệu yêu cầu dữ liệu cập nhật tại bất kỳ thời điểm nào. Để hiểu các cách làm mới dữ liệu khác nhau, hãy tham khảo chương - Cập nhật Dữ liệu trong Mô hình Dữ liệu .
Bạn sẽ hiểu các loại khác nhau của công thức DAX trong chương - Tính lại công thức DAX .
Các phép tính lại công thức DAX phải xem xét sự phụ thuộc của dữ liệu và tuân theo một thứ tự cụ thể. Nếu không, bạn có thể nhận được lỗi hoặc kết quả sai. Tham khảo chương - Khắc phục sự cố Tính toán lại Công thức DAX để biết thêm chi tiết.
Bạn sẽ hiểu sâu hơn về một số lỗi công thức DAX phổ biến và bạn sẽ học cách sửa những lỗi đó, trong chương - Lỗi công thức DAX .
Kịch bản DAX
Nếu bạn bắt đầu học một ngôn ngữ mới, cách tốt nhất để làm quen với ngôn ngữ đó là hiểu nơi sử dụng những gì. Tương tự, DAX là một ngôn ngữ công thức dùng để phân tích dữ liệu, bạn cần hiểu các tình huống khác nhau mà nó có thể được sử dụng.
Tham khảo các chương sau để biết chi tiết về điều này.
- Kịch bản DAX
- Kịch bản - Thực hiện các phép tính phức tạp
- Kịch bản - Làm việc với Văn bản và Ngày tháng
- Các tình huống - Giá trị có điều kiện và Kiểm tra lỗi
- Kịch bản - Sử dụng Trí thông minh Thời gian
- Các tình huống - Xếp hạng và So sánh các Giá trị
A calculated columnlà cột mà bạn thêm vào bảng hiện có trong Mô hình Dữ liệu của sổ làm việc bằng công thức DAX xác định các giá trị cột. Thay vì nhập các giá trị trong cột, bạn tạo cột được tính toán.
Bạn có thể sử dụng cột được tính toán trong báo cáo PivotTable, PivotChart, Power PivotTable, Power PivotChart hoặc Power View giống như bất kỳ cột bảng nào khác.
Hiểu các cột được tính
Công thức DAX được sử dụng để tạo cột được tính toán giống như công thức Excel. Tuy nhiên, trong công thức DAX, bạn không thể tạo các công thức khác nhau cho các hàng khác nhau trong bảng. Công thức DAX được tự động áp dụng cho toàn bộ cột.
Ví dụ: bạn có thể tạo một cột được tính toán để trích xuất Năm từ cột hiện có - Ngày, với công thức DAX -
= YEAR ([Date])
YEAR là một hàm DAX và Ngày là một cột hiện có trong bảng. Như đã thấy, tên bảng được đặt trong dấu ngoặc. Bạn sẽ tìm hiểu thêm về điều này trong chương - Cú pháp DAX .
Khi bạn thêm một cột vào bảng với công thức DAX này, giá trị cột sẽ được tính ngay khi bạn tạo công thức. Một cột mới với tiêu đề CalculatedColumn1 chứa đầy các giá trị Năm sẽ được tạo.
Giá trị cột được tính toán lại nếu cần, chẳng hạn như khi dữ liệu cơ bản được làm mới. Bạn có thể tạo các cột được tính toán dựa trên các cột hiện có, các trường được tính toán (số đo) và các cột được tính toán khác.
Tạo một cột được tính toán
Xem xét Mô hình Dữ liệu với Kết quả Thế vận hội như thể hiện trong ảnh chụp màn hình sau.
- Nhấp vào Chế độ xem dữ liệu.
- Nhấp vào tab Kết quả.
Bạn sẽ xem bảng Kết quả.
Như đã thấy trong ảnh chụp màn hình ở trên, cột ngoài cùng bên phải có tiêu đề - Thêm cột.
- Bấm vào tab Thiết kế trên Ruy-băng.
- Nhấp vào Thêm trong nhóm Cột.
Con trỏ sẽ xuất hiện trên thanh công thức. Điều đó có nghĩa là bạn đang thêm một cột có công thức DAX.
- Nhập = YEAR ([Ngày]) vào thanh công thức.
Như có thể thấy trong ảnh chụp màn hình ở trên, cột ngoài cùng bên phải với tiêu đề - Thêm Cột được tô sáng.
- Bấm phím Enter.
Sẽ mất một lúc (vài giây) để các phép tính được thực hiện. Vui lòng đợi.
Cột được tính toán mới sẽ được chèn vào bên trái của Cột Thêm ngoài cùng bên phải.
Như được hiển thị trong ảnh chụp màn hình ở trên, cột tính toán mới được chèn sẽ được tô sáng. Giá trị trong toàn bộ cột xuất hiện theo công thức DAX được sử dụng. Tiêu đề cột là CalculatedColumn1.
Đổi tên cột được tính
Để đổi tên cột được tính thành một tên có nghĩa, hãy làm như sau:
- Bấm đúp vào tiêu đề cột. Tên cột sẽ được đánh dấu.
- Chọn tên cột.
- Nhập Năm (tên mới).
Như đã thấy trong ảnh chụp màn hình ở trên, tên của cột được tính toán đã thay đổi.
Bạn cũng có thể đổi tên cột được tính toán bằng cách nhấp chuột phải vào cột và sau đó nhấp vào Đổi tên trong danh sách thả xuống.
Chỉ cần đảm bảo rằng tên mới không xung đột với tên hiện có trong bảng.
Kiểm tra kiểu dữ liệu của cột được tính
Bạn có thể kiểm tra kiểu dữ liệu của cột được tính toán như sau:
- Bấm vào tab Trang đầu trên Ruy-băng.
- Nhấp vào Loại dữ liệu.
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, danh sách thả xuống có các loại dữ liệu có thể có cho các cột. Trong ví dụ này, kiểu dữ liệu mặc định (Tự động), tức là Số nguyên được chọn.
Lỗi trong các Cột được Tính toán
Lỗi có thể xảy ra trong các cột được tính toán vì những lý do sau:
Thay đổi hoặc xóa mối quan hệ giữa các bảng. Điều này là do các công thức sử dụng các cột trong các bảng đó sẽ trở nên không hợp lệ.
Công thức chứa một phụ thuộc vòng tròn hoặc tự tham chiếu.
Vấn đề hiệu năng
Như đã thấy trước đó trong ví dụ về kết quả Thế vận hội, bảng Kết quả có khoảng 35000 hàng dữ liệu. Do đó, khi bạn tạo một cột với công thức DAX, nó đã tính toán tất cả 35000+ giá trị trong cột cùng một lúc, quá trình này mất một chút thời gian. Mô hình Dữ liệu và các bảng nhằm xử lý hàng triệu hàng dữ liệu. Do đó, nó có thể ảnh hưởng đến hiệu suất khi công thức DAX có quá nhiều tham chiếu. Bạn có thể tránh các vấn đề về hiệu suất khi làm như sau:
Nếu công thức DAX của bạn chứa nhiều phụ thuộc phức tạp, thì hãy tạo công thức đó theo các bước để lưu kết quả trong các cột mới được tính toán, thay vì tạo một công thức lớn cùng một lúc. Điều này cho phép bạn xác nhận kết quả và đánh giá hiệu suất.
Các cột được tính toán cần được tính toán lại khi xảy ra sửa đổi dữ liệu. Bạn có thể đặt chế độ tính toán lại thành thủ công, do đó tiết kiệm các phép tính lại thường xuyên. Tuy nhiên, nếu bất kỳ giá trị nào trong cột được tính toán không chính xác, cột sẽ chuyển sang màu xám cho đến khi bạn làm mới và tính toán lại dữ liệu.
A calculated fieldtrong một bảng trong Mô hình Dữ liệu là trường thu được bằng công thức DAX. Trong các phiên bản trước của Power Pivot, trường được tính toán được gọi là thước đo. Trong Excel 2013, nó được đổi tên thành trường được tính toán. Tuy nhiên, nó được đổi tên lại để đo lường trong Excel 2016. Nếu bạn tham khảo bất kỳ tài liệu nào, bạn có thể thấy sự kết hợp của hai thuật ngữ này. Lưu ý rằng các thuật ngữ trường được tính toán và số đo là đồng nghĩa. Trong hướng dẫn này, chúng tôi sử dụng thuật ngữ trường được tính toán.
Hiểu các trường được tính toán
Trường được tính toán là công thức được tạo riêng để sử dụng trong PivotTable (hoặc PivotChart).
Bạn có thể tạo trường được tính toán dựa trên các hàm tổng hợp chuẩn, chẳng hạn như COUNT hoặc SUM hoặc bằng cách xác định công thức DAX của riêng bạn.
Sau đây là sự khác biệt giữa trường được tính toán và cột được tính toán -
Trường được tính toán chỉ có thể được sử dụng trong vùng GIÁ TRỊ của PivotTable.
Cũng có thể sử dụng cột được tính toán với các kết quả được tính toán trong các khu vực ROWS, COLUMNS và FILTERS.
Lưu trường được tính
Trường được tính toán sẽ được lưu cùng với bảng nguồn của nó trong Mô hình Dữ liệu. Nó xuất hiện trong danh sách Trường Power PivotTable hoặc Power PivotChart dưới dạng một trường trong bảng.
Sử dụng trường được tính toán
Để sử dụng trường được tính toán, bạn phải chọn trường đó từ danh sách Trường Power PivotTable. Trường được tính toán sẽ được thêm vào vùng GIÁ TRỊ và công thức được sử dụng cho trường được tính toán sẽ được đánh giá. Kết quả được tạo cho mỗi tổ hợp trường hàng và cột.
Trường tính toán - Ví dụ
Hãy xem xét Mô hình Dữ liệu sau cho dữ liệu Thế vận hội -
Như đã thấy trong ảnh chụp màn hình ở trên, bảng Kết quả có Huy chương trường chứa các giá trị - Vàng, Bạc hoặc Đồng cho mỗi hàng chứa kết hợp Thể thao - Sự kiện - Quốc gia - Ngày. Giả sử bạn muốn số lượng huy chương cho mỗi quốc gia, thì bạn có thể tạo một trường được tính toán Tổng số huy chương với công thức DAX sau:
Medal Count := COUNTA([Medal])
Tạo trường được tính toán trong bảng
Để tạo trường được tính toán Tổng số huy chương trong bảng Kết quả, hãy làm như sau:
Bấm vào ô trong vùng tính toán bên dưới cột Huy chương trong bảng Kết quả. Ô sẽ được đánh dấu.
Nhập Tổng số huy chương: = COUNTA ([Huy chương]) vào thanh công thức.
Bấm phím Enter.
Như đã thấy trong ảnh chụp màn hình ở trên, trường được tính toán xuất hiện trong ô đã chọn, hiển thị giá trị là 34,094. Con số này là tổng số hàng trong bảng Kết quả. Do đó, nó không có nhiều ý nghĩa ngay từ cái nhìn đầu tiên. Như đã thảo luận trước đó, chỉ có thể thấy việc sử dụng thực sự của một trường được tính toán bằng cách thêm nó vào Power PivotTable hoặc Power PivotChart.
Sử dụng Trường Tính toán trong Power PivotTable
Để sử dụng trường được tính toán để đếm số huy chương cho mỗi quốc gia, hãy làm như sau:
- Bấm vào PivotTable trên ruy-băng trong cửa sổ Power Pivot.
- Nhấp vào PivotTable trong danh sách thả xuống.
Hộp thoại Tạo PivotTable xuất hiện.
- Nhấp vào Trang tính hiện có.
- Chọn nơi bạn muốn đặt PivotTable.
Một PivotTable trống sẽ được tạo.
- Bấm vào bảng Kết quả trong danh sách Trường PivotTable.
- Nhấp vào các trường - Quốc gia và số huy chương.
Như bạn có thể quan sát, Tổng số huy chương được thêm vào khu vực VALUES và Quốc gia được thêm vào khu vực ROWS. PivotTable được tạo với trường Giá trị quốc gia xuất hiện trong các hàng. Và đối với mỗi hàng, giá trị Đếm Huy chương được tính toán và hiển thị. Đó là cách, trường được tính toán đánh giá công thức DAX được sử dụng và hiển thị các giá trị.
- Thêm lĩnh vực Thể thao từ bảng Kết quả vào khu vực ROWS.
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, Tổng số huy chương được tính cho từng Quốc gia - Thể thao và Tổng phụ cho chính Quốc gia đó.
Đây là cách DAX bổ sung các tính năng Power.
Các loại trường được tính toán
Có hai loại Trường được Tính toán - Ngầm định và Rõ ràng.
An implicit calculated field được tạo trong ngăn danh sách Trường Power PivotTable.
An explicit calculated field được tạo trong bảng trong cửa sổ Power Pivot hoặc từ Ruy-băng PowerPivot trong cửa sổ Excel.
Tạo một trường được tính toán ngầm
Trường được tính toán ngầm có thể được tạo theo hai cách, cả hai trong ngăn Trường Power PivotTable.
Tạo một trường được tính toán ngầm trong danh sách trường PivotTable
Bạn có thể tạo Trường Số lượng Huy chương từ trường Huy chương trong danh sách Trường PivotTable như sau:
- Bỏ chọn trường Số lượng huy chương.
- Nhấp chuột phải vào trường Huy chương.
- Nhấp vào Thêm vào giá trị trong danh sách thả xuống.
Số lượng huy chương xuất hiện trong khu vực Giá trị. Cột Số huy chương sẽ được thêm vào PivotTable.
Tạo một trường được tính toán ngầm trong vùng giá trị
Bạn có thể tạo một trường được tính toán ngầm -% của Hàng Gốc trong vùng Giá trị để thể hiện tổng số Huy chương của mỗi môn thể thao mà một quốc gia đã giành được dưới dạng tỷ lệ phần trăm của tổng số Huy chương mà Quốc gia đó giành được.
- Nhấp vào mũi tên xuống trong hộp Số huy chương trong khu vực GIÁ TRỊ.
- Nhấp vào Cài đặt Trường Giá trị trong danh sách thả xuống.
Hộp thoại Cài đặt Trường Giá trị xuất hiện.
- Nhập% Huy chương vào hộp Tên Tùy chỉnh.
- Bấm vào tab Hiển thị Giá trị Dưới dạng.
- Nhấp vào hộp bên dưới Hiển thị giá trị dưới dạng.
- Nhấp vào% của Tổng số hàng gốc.
- Bấm vào nút Định dạng Số.
Hộp thoại Định dạng Ô xuất hiện.
- Nhấp vào Phần trăm.
- Nhập 0 ở vị trí thập phân.
- Bấm OK.
- Bấm OK trong hộp thoại Cài đặt Trường Giá trị.
- Chọn Không hiển thị tổng phụ.
Bạn đã tạo một trường được tính toán ngầm khác% Huy chương và như bạn có thể quan sát, cho mỗi Quốc gia, phần trăm Huy chương Thể thao khôn ngoan được hiển thị.
Hạn chế của một trường được tính toán ngầm
Các trường được tính toán ngầm rất dễ tạo. Trên thực tế, bạn đã và đang tạo chúng ngay cả trong Excel PivotTables và Pivot Charts. Tuy nhiên, chúng có những nhược điểm sau:
They are volatile. Điều đó có nghĩa là, nếu bạn bỏ chọn trường bạn đã sử dụng cho trường được tính toán, trường đó sẽ bị xóa. Nếu muốn hiển thị lại, bạn phải tạo lại một lần nữa.
Their scope is limitedvào PivotTable hoặc PivotChart mà chúng được tạo. Nếu bạn tạo một PivotTable khác trong một trang tính khác, bạn phải tạo lại trường được tính toán.
Mặt khác, các trường được tính toán rõ ràng sẽ được lưu cùng với bảng và sẽ có sẵn bất cứ khi nào bạn chọn bảng đó.
Tạo một trường được tính toán rõ ràng
Bạn có thể tạo một trường được tính toán rõ ràng theo hai cách:
Trong vùng tính toán trong Bảng trong Mô hình Dữ liệu. Bạn đã học điều này trong phần - Tạo Trường Tính trong Bảng.
Từ Ruy-băng PowerPivot trong bảng Excel. Bạn sẽ học cách tạo trường được tính toán rõ ràng này trong phần tiếp theo.
Tạo trường được tính toán rõ ràng từ ruy-băng PowerPivot
Để tạo một trường được tính toán rõ ràng từ Ruy-băng PowerPivot, hãy thực hiện như sau:
- Bấm vào tab POWERPIVOT trên Ruy-băng trong sổ làm việc của bạn.
- Bấm vào Trường Tính toán trong vùng Tính toán.
- Nhấp vào Trường Tính toán Mới trong danh sách thả xuống.
Hộp thoại Trường tính toán xuất hiện.
- Điền các thông tin cần thiết như được hiển thị trong ảnh chụp màn hình sau.
- Nhấp vào nút Kiểm tra công thức.
- Chỉ bấm OK nếu không có lỗi trong công thức.
Như bạn có thể quan sát, bạn có thể xác định danh mục và định dạng của trường được tính toán trong hộp thoại này. Hơn nữa, bạn có thể sử dụng tính năng IntelliSense để hiểu cách sử dụng các chức năng và sử dụng tính năng Tự động điền để dễ dàng hoàn thành tên của các chức năng, bảng và cột. Để biết chi tiết về tính năng IntelliSense, hãy tham khảo chương - Công thức DAX .
Đây là cách được khuyến nghị để tạo các trường được tính toán rõ ràng.
Bạn có thể chỉnh sửa một trường được tính toán để sửa đổi nó. Tuy nhiên, trước khi bạn chỉnh sửa một trường được tính toán, bạn nên biết nó được lưu trữ ở đâu. Điều đó có nghĩa là trường được tính toán sẽ được lưu trữ trong bảng nào. Điều này phù hợp với cả các trường được tính toán ngầm định và rõ ràng. Trường được tính toán chỉ có thể được liên kết với một bảng trong Mô hình Dữ liệu.
Tìm các trường được tính toán
Để tìm các trường được tính toán trong Mô hình Dữ liệu, hãy làm như sau:
- Bấm vào tab Nâng cao trên Ruy-băng trong cửa sổ Power Pivot.
- Bấm vào Hiển thị các trường được tính toán ngầm.
- Nhấp vào Dạng xem Sơ đồ.
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, Hiển thị các trường được tính toán ngầm được đánh dấu trên Ribbon. Nếu nó không được đánh dấu, hãy nhấp lại vào nó.
Bạn cũng có thể quan sát thấy có 4 hộp kiểm - Cột, Trường được Tính, Cấu trúc phân cấp và KPI. Theo mặc định, tất cả 4 đều được chọn.
- Bỏ chọn các hộp - Cột, Cấu trúc phân cấp và KPI.
Điều này sẽ chỉ để lại hộp Trường tính toán được chọn.
Như đã thấy trong ảnh chụp màn hình ở trên, chỉ có bảng Kết quả có các trường được hiển thị. Hai bảng còn lại để trống. Điều này cho thấy rằng chỉ có bảng Kết quả có các trường được tính toán. Bạn cũng có thể quan sát thấy rằng các trường được tính toán ngầm có biểu tượng
Xem các trường được tính toán trong bảng
Bạn có thể xem các trường được tính toán trong Bảng như sau:
- Nhấp vào trường được tính toán.
- Nhấp chuột phải và chọn Đi tới trong danh sách thả xuống.
Bảng sẽ xuất hiện trong Chế độ xem dữ liệu.
Như đã thấy trong ảnh chụp màn hình ở trên, các trường được tính toán xuất hiện trong vùng tính toán của bảng.
Thay đổi một trường được tính toán trong bảng
Bạn có thể thay đổi công thức được sử dụng cho một trường được tính toán trong bảng.
- Bấm vào trường được tính toán trong bảng ở chế độ xem dữ liệu của Mô hình Dữ liệu.
- Chọn công thức trong thanh công thức - ở bên phải của: =.
Công thức sẽ được đánh dấu.
- Nhập công thức mới.
- Bấm phím Enter.
Bạn sẽ tìm hiểu thêm về các công thức DAX trong các chương tiếp theo.
Đổi tên một trường được tính toán trong mô hình dữ liệu
Bạn có thể thay đổi tên của một trường được tính toán trong Bảng Dữ liệu trong Dạng xem Dữ liệu hoặc Dạng xem Sơ đồ.
Đổi tên Trường được Tính trong Chế độ xem Dữ liệu
- Bấm vào trường được tính toán trong bảng ở chế độ xem dữ liệu của Mô hình Dữ liệu.
- Chọn tên trường được tính toán trong thanh công thức - ở bên trái của: =.
Tên trường được tính toán sẽ được đánh dấu.
- Nhập tên mới cho trường được tính toán.
- Bấm phím Enter.
Bạn sẽ tìm hiểu thêm về Cú pháp DAX trong các chương tiếp theo.
Đổi tên một trường được tính toán trong dạng xem sơ đồ
- Bấm chuột phải vào tên trường được tính toán trong bảng ở dạng xem sơ đồ.
- Nhấp vào Đổi tên trong danh sách thả xuống.
Tên sẽ chuyển sang chế độ chỉnh sửa. Nhập tên mới cho trường được tính toán.
Xem các trường được tính toán trong cửa sổ Excel
Bạn có thể xem các trường được tính toán trong cửa sổ Excel như sau:
- Nhấp vào tab POWERPIVOT trên Ribbon.
- Bấm vào Trường được tính trong nhóm Tính toán.
- Nhấp vào Quản lý các trường được tính toán trong danh sách thả xuống.
Hộp thoại Quản lý Trường Tính toán xuất hiện. Tên của các trường được tính toán rõ ràng trong Mô hình Dữ liệu xuất hiện trong hộp thoại.
Thay đổi Trường được Tính toán trong Quản lý Trường được Tính
Bạn có thể thay đổi trường được tính toán trong hộp thoại Quản lý Trường được Tính.
- Nhấp vào Số huy chương.
- Nhấp vào nút Chỉnh sửa.
Hộp thoại Trường tính toán xuất hiện.
- Chọn công thức ở bên phải của = trong hộp công thức.
- Nhập Công thức mới.
- Bấm OK.
- Bấm Đóng trong hộp thoại Quản lý Trường Tính toán.
Đổi tên Trường Tính toán trong Quản lý Trường được Tính
Bạn có thể đổi tên trường được tính toán trong hộp thoại Quản lý trường được tính.
- Nhấp vào Số huy chương.
- Nhấp vào nút Chỉnh sửa.
Hộp thoại Trường tính toán xuất hiện.
- Chọn tên trong hộp tên trường được tính toán.
- Nhập tên mới cho trường được tính toán.
- Bấm OK.
- Bấm Đóng trong hộp thoại Quản lý Trường Tính toán.
Di chuyển một trường được tính toán trong mô hình dữ liệu
Bạn có thể di chuyển một trường được tính toán trong vùng tính toán của bảng mà nó được tạo. Nhưng, nó không thể được chuyển sang một bảng khác.
- Bấm chuột phải vào trường được tính toán.
- Nhấp vào Cắt.
- Di chuyển con trỏ đến một vị trí khác trong vùng tính toán của cùng một bảng.
- Nhấp vào Dán.
Note - Việc trường được tính toán nằm ở đâu trong vùng tính toán của bảng không thực sự quan trọng vì các tham chiếu dữ liệu trong công thức DAX của trường được tính là theo tên cột và được nêu rõ ràng.
Bạn có thể xóa cả trường được tính toán rõ ràng và ẩn. Có một số cách làm như vậy, bạn sẽ học trong chương này.
Tuy nhiên, bạn cần nhớ những điểm sau trước khi xóa một trường được tính toán -
Trường được tính toán rõ ràng có thể được sử dụng trong nhiều PivotTable và / hoặc PivotChart. Do đó, bạn cần đảm bảo rằng việc xóa trường được tính toán rõ ràng không ảnh hưởng đến bất kỳ báo cáo nào mà bạn đã tạo.
Một trường được tính toán rõ ràng có thể được sử dụng trong các phép tính của các trường được tính toán rõ ràng khác. Do đó, bạn cần đảm bảo rằng trường được tính toán rõ ràng không được sử dụng trong bất kỳ phép tính nào của các trường được tính toán rõ ràng khác.
Trường được tính toán ngầm được giới hạn trong PivotTable hoặc PivotChart nơi nó được sử dụng. Do đó, trước khi xóa một trường được tính toán ngầm, chỉ cần đảm bảo rằng nó có thể bị xóa khỏi PivotTable hoặc PivotChart tương ứng.
Tạo trường được tính toán ngầm đơn giản hơn so với việc tạo trường được tính toán rõ ràng. Do đó, cần thận trọng hơn trước khi xóa một trường được tính toán rõ ràng.
Bạn không thể tạo trường được tính toán rõ ràng, nếu tên xung đột với tên của trường được tính toán ngầm. Do đó, bạn có thể phải xóa trường được tính toán ngầm đó trước khi tạo trường được tính toán rõ ràng.
Xóa một trường được tính toán rõ ràng trong mô hình dữ liệu
Bạn có thể xóa trường được tính toán rõ ràng trong chế độ xem dữ liệu hoặc chế độ xem sơ đồ trong Mô hình dữ liệu.
Xóa một trường được tính toán rõ ràng trong chế độ xem dữ liệu
- Định vị trường được tính toán trong vùng tính toán trong Chế độ xem dữ liệu.
- Bấm chuột phải vào trường được tính toán.
- Nhấp vào Xóa trong danh sách thả xuống.
Thông báo xuất hiện để xác nhận xóa.
Nhấp vào Xóa khỏi Mô hình. Trường được tính toán rõ ràng sẽ bị xóa.
Xóa một trường được tính toán rõ ràng trong dạng xem sơ đồ
- Định vị trường được tính toán trong bảng dữ liệu ở Dạng xem Sơ đồ.
- Bấm chuột phải vào tên trường được tính toán.
- Nhấp vào Xóa trong danh sách thả xuống.
Thông báo xuất hiện để xác nhận xóa.
Nhấp vào Xóa khỏi Mô hình. Trường được tính toán rõ ràng sẽ bị xóa và nó sẽ không được nhìn thấy trong danh sách trường của bảng dữ liệu.
Xóa trường được tính toán rõ ràng trong cửa sổ Excel
Bạn có thể xóa một trường được tính toán rõ ràng khỏi cửa sổ Excel như sau:
- Nhấp vào tab POWERPIVOT trên Ribbon.
- Bấm Trường Tính toán trong nhóm Tính toán.
- Nhấp vào Quản lý các trường được tính toán trong danh sách thả xuống.
Hộp thoại Quản lý Trường Tính toán xuất hiện.
- Nhấp vào tên trường được tính toán rõ ràng.
- Nhấp vào nút Xóa.
Thông báo xác nhận xóa xuất hiện.
- Nhấp vào Có. Thông báo thông tin rằng Mô hình Dữ liệu được thay đổi xuất hiện ở trên cùng.
- Nhấp vào nút Đóng trong hộp thoại.
Trường được tính toán rõ ràng sẽ bị xóa và nó sẽ không được nhìn thấy trong danh sách Trường PivotTable / PivotChart trong sổ làm việc.
Xóa một trường được tính toán ngầm
Bạn có thể xóa trường được tính toán ngầm trong chế độ xem dữ liệu hoặc chế độ xem sơ đồ trong Mô hình dữ liệu.
Xóa một trường được tính toán ngầm trong chế độ xem dữ liệu
- Định vị trường được tính toán trong vùng tính toán trong Chế độ xem dữ liệu.
- Bấm chuột phải vào trường được tính toán.
- Nhấp vào Xóa trong danh sách thả xuống.
Thông báo xuất hiện để xác nhận xóa.
- Nhấp vào Xóa khỏi Mô hình. Trường được tính toán ngầm định sẽ bị xóa.
Xóa một trường được tính toán ngầm trong chế độ xem sơ đồ
- Định vị trường được tính toán trong bảng dữ liệu ở Dạng xem Sơ đồ.
- Bấm chuột phải vào tên trường được tính toán.
- Nhấp vào Xóa trong danh sách thả xuống.
Thông báo xuất hiện để xác nhận xóa.
Nhấp vào Xóa khỏi Mô hình. Trường được tính toán ngầm định sẽ bị xóa và nó sẽ không được nhìn thấy trong danh sách trường của bảng dữ liệu.
Như đã thảo luận trước đó, DAX là một ngôn ngữ công thức bao gồm các toán tử, giá trị, hàm và công thức. Trong chương này, bạn sẽ tìm hiểu về Cú pháp DAX.
DAX Syntax có thể được phân loại là -
- Cú pháp cho công thức DAX
- Yêu cầu đặt tên DAX
- Giá trị đặc biệt của DAX
- Chức năng DAX
- Nhà điều hành DAX
- Các loại dữ liệu DAX
Trước khi bắt đầu học Cú pháp DAX, bạn phải hiểu sự khác biệt giữa công thức Excel và công thức DAX.
Sự khác biệt giữa Công thức Excel và Công thức DAX
Công thức DAX tương tự như công thức Excel và bạn có thể nhập chúng vào thanh công thức. Tuy nhiên, có một số khác biệt quan trọng giữa cả hai.
Công thức Excel | Công thức DAX |
---|---|
Công thức Excel được nhập vào thanh công thức trong cửa sổ Excel. |
Công thức DAX được nhập vào thanh công thức trong cửa sổ Power Pivot. |
Trong công thức Excel, bạn có thể tham chiếu các ô hoặc mảng riêng lẻ cho dữ liệu. |
Trong công thức DAX, bạn chỉ có thể tham chiếu đến các bảng hoặc cột dữ liệu hoàn chỉnh, tức là các tham chiếu chỉ có thể đến các bảng và trường trong bảng. Tuy nhiên, nếu bạn chỉ phải thực hiện phép tính trên một phần của dữ liệu cột, bạn có thể làm như vậy với các hàm DAX lọc và cung cấp các giá trị dữ liệu duy nhất cần thiết để tính toán. |
Công thức Excel hỗ trợ một số kiểu dữ liệu nhất định. |
DAX cung cấp nhiều kiểu dữ liệu hơn Excel. Do đó, các công thức DAX cũng có thể sử dụng các kiểu dữ liệu bổ sung. |
Excel không hỗ trợ bất kỳ chuyển đổi dữ liệu ngầm nào. |
DAX thực hiện các chuyển đổi kiểu dữ liệu ngầm trong quá trình tính toán. |
DAX là một ngôn ngữ công thức bao gồm các hàm, toán tử và giá trị có thể được sử dụng trong một công thức hoặc biểu thức, để tính toán và trả về một hoặc nhiều giá trị.
Bạn có thể dùng DAX operatorsđể so sánh các giá trị, thực hiện các phép tính số học và nối các chuỗi. Trong chương này, bạn sẽ tìm hiểu về các toán tử DAX và cách sử dụng chúng.
Các loại toán tử DAX
DAX hỗ trợ các loại toán tử sau:
- Toán tử số học DAX
- Toán tử so sánh DAX
- Toán tử kết nối văn bản DAX
- Toán tử lôgic DAX
Thứ tự ưu tiên nhà điều hành DAX
Bạn có thể có một công thức DAX với nhiều toán tử DAX kết hợp một số giá trị hoặc biểu thức. Trong trường hợp như vậy, kết quả cuối cùng sẽ phụ thuộc vào thứ tự thực hiện các thao tác. DAX cung cấp cho bạn thứ tự ưu tiên toán tử mặc định và cả các cách ghi đè thứ tự ưu tiên mặc định.
Ưu tiên toán tử mặc định DAX được liệt kê trong bảng sau.
Thứ tự ưu tiên | (Các) nhà điều hành | Hoạt động |
---|---|---|
1 | ^ | Luỹ thừa |
2 | - | Ký tên |
3 | * và / | Phép nhân và phép chia |
4 | ! | KHÔNG PHẢI |
5 | + và - | Cộng và trừ |
6 | & | Kết nối |
7 | =, <,>, <=,> = và <> | Bằng, Nhỏ hơn, Lớn hơn, Nhỏ hơn hoặc bằng, Lớn hơn hoặc bằng và Không bằng |
Cú pháp biểu thức DAX
Trước tiên, bạn cần hiểu cú pháp biểu thức DAX và cách đánh giá biểu thức được thực hiện với các toán hạng và toán tử.
Tất cả các biểu thức luôn bắt đầu bằng dấu bằng (=). Dấu bằng chỉ ra rằng các ký tự tiếp theo tạo thành một biểu thức.
Ở bên phải của dấu bằng, bạn sẽ có các toán hạng được kết nối bởi các toán tử DAX. Ví dụ: = 5 + 4> 5.
= 5 * 6 - 3.
Các biểu thức luôn được đọc từ trái sang phải và các phép tính được thực hiện theo trình tự đó, dựa trên ưu tiên toán tử DAX được đưa ra trong phần trước.
Nếu các toán tử DAX có giá trị ưu tiên bằng nhau, chúng được đánh giá từ trái sang phải. Ví dụ: = 5 * 6/10. Cả hai * và / đều có cùng thứ tự tiền lệ. Do đó, biểu thức được đánh giá là 30/10 = 3.
Nếu các toán tử DAX trong biểu thức có các giá trị ưu tiên khác nhau, thì chúng được đánh giá theo thứ tự ưu tiên từ trái sang phải.
= 5 + 4> 7. Mức độ ưu tiên mặc định là + đầu tiên và> tiếp theo. Do đó, biểu thức được tính từ trái sang phải. - 5 + 4 được tính đầu tiên dẫn đến kết quả là 9 và sau đó 9> 5 được đánh giá là kết quả ĐÚNG.
= 5 * 6 - 3. Mức độ ưu tiên mặc định là * đầu tiên và - tiếp theo. Do đó, biểu thức được tính từ trái sang phải. - 5 * 6 được tính trước tiên cho kết quả là 30 và sau đó 30 - 3 được tính cho kết quả là 27.
= 2 * 5 - 6 * 3. Mức độ ưu tiên mặc định là * đầu tiên, * tiếp theo và sau đó -. Do đó, biểu thức đánh giá là 10 - 18 và sau đó là -8. Lưu ý rằng nó không phải là 10 - 6 dẫn đến 4 và sau đó 4 * 3 mà là 12.
Sử dụng dấu ngoặc đơn để kiểm soát thứ tự tính toán DAX
Bạn có thể thay đổi thứ tự ưu tiên toán tử mặc định DAX bằng cách sử dụng dấu ngoặc đơn, nhóm các toán hạng và toán tử để điều khiển trình tự tính toán.
Ví dụ: = 5 * 6 - 3 cho kết quả là 27 với thứ tự ưu tiên toán tử mặc định DAX. Nếu bạn sử dụng dấu ngoặc đơn để nhóm các toán hạng và toán tử là = 5 * (6 - 3), thì 6 - 3 được tính trước tiên dẫn đến kết quả là 3 và sau đó 5 * 3 được tính với kết quả là 15.
= 2 * 5 - 6 * 3 cho kết quả là -8 với thứ tự ưu tiên toán tử mặc định DAX. Nếu bạn sử dụng dấu ngoặc đơn để nhóm các toán hạng và toán tử là = 2 * (5 - 6) * 3, thì 5 - 6 được tính đầu tiên dẫn đến -1 và sau đó 2 * (-1) * 3 được tính với kết quả là -6 .
Như bạn thấy, với cùng một toán hạng và toán tử, các kết quả khác nhau có thể có bằng cách bạn nhóm chúng. Do đó, khi bạn sử dụng các toán tử DAX trong công thức DAX, bạn nên chú ý đến trình tự tính toán như thế nào.
Sự khác biệt giữa Excel và DAX
Mặc dù DAX có những điểm tương đồng với các công thức Excel, nhưng có một số điểm khác biệt đáng kể giữa hai công thức.
DAX mạnh hơn Excel vì công cụ tính toán thường trú bộ nhớ cơ bản của nó.
DAX hỗ trợ nhiều kiểu dữ liệu hơn Excel.
DAX cung cấp các tính năng nâng cao bổ sung của cơ sở dữ liệu quan hệ, Mô hình dữ liệu, bao gồm hỗ trợ phong phú hơn cho các loại ngày và giờ.
Trong một số trường hợp, kết quả tính toán hoặc hoạt động của các hàm trong DAX có thể không giống như trong Excel. Điều này là do sự khác biệt trong những điều sau:
- Truyền kiểu dữ liệu
- Loại dữ liệu
Sự khác biệt trong truyền kiểu dữ liệu
Trong DAX, khi bạn có biểu thức = value1 toán tử value2, hai toán hạng value1 và value2 phải có cùng kiểu dữ liệu. Nếu các kiểu dữ liệu khác nhau, DAX sẽ chuyển đổi chúng trước tiên thành một kiểu dữ liệu chung. Tham khảo chương - Cú pháp DAX để biết thêm chi tiết.
Ví dụ: bạn phải so sánh hai toán hạng của các kiểu dữ liệu khác nhau, chẳng hạn như một số kết quả từ một công thức, chẳng hạn như = [Số tiền] * 0,08 và một số nguyên. Số đầu tiên có thể là một số thập phân với nhiều chữ số thập phân, trong khi số thứ hai là một số nguyên. Sau đó DAX xử lý nó như sau:
Đầu tiên, DAX sẽ chuyển đổi cả hai toán hạng thành số thực bằng cách sử dụng định dạng số lớn nhất có thể lưu trữ cả hai loại số.
Tiếp theo, DAX sẽ so sánh hai số thực.
Ngược lại, Excel cố gắng so sánh các giá trị của các kiểu dữ liệu khác nhau mà trước tiên không ép buộc chúng vào một kiểu dữ liệu chung. Vì lý do này, bạn có thể tìm thấy các kết quả khác nhau trong DAX và trong Excel cho cùng một biểu thức so sánh.
Sự khác biệt về các loại dữ liệu
Thứ tự ưu tiên toán tử trong DAX và Excel là giống nhau. Tuy nhiên, toán tử phần trăm (%) và phạm vi dữ liệu mà Excel hỗ trợ không được DAX hỗ trợ. Hơn nữa, DAX hỗ trợ bảng như một kiểu dữ liệu, điều này không đúng trong Excel.
Hơn nữa, trong công thức Excel, bạn có thể tham chiếu đến một ô hoặc một mảng hoặc một dải ô. Trong công thức DAX, bạn không thể tham chiếu đến bất kỳ công thức nào trong số này. Công thức DAX tham chiếu đến dữ liệu phải theo bảng, cột, trường được tính toán và cột được tính toán.
Nếu bạn sao chép công thức từ Excel và dán chúng vào DAX, hãy đảm bảo tính đúng đắn của công thức DAX vì cú pháp DAX khác với cú pháp công thức Excel. Ngoài ra, ngay cả khi một hàm có cùng tên trong DAX và Excel, các tham số của nó có thể khác nhau và kết quả của hàm cũng có thể khác nhau.
Bạn sẽ tìm hiểu thêm về tất cả những điều này trong các chương tiếp theo.
Excel DAX - Tham số chuẩn
DAX có standard parametertên để tạo điều kiện cho việc sử dụng và hiểu các chức năng DAX. Hơn nữa, bạn có thể sử dụng các tiền tố nhất định cho tên tham số. Nếu tiền tố đủ rõ ràng, bạn có thể sử dụng tiền tố đó làm tên tham số.
Tên thông số chuẩn
Sau đây là các tên thông số tiêu chuẩn DAX:
Sr.No. | Tên & Mô tả Thông số |
---|---|
1 | expression Bất kỳ biểu thức DAX nào trả về một giá trị vô hướng duy nhất, trong đó biểu thức sẽ được đánh giá nhiều lần (cho mỗi hàng / ngữ cảnh). |
2 | value Bất kỳ biểu thức DAX nào trả về một giá trị vô hướng duy nhất trong đó biểu thức sẽ được đánh giá chính xác một lần trước tất cả các hoạt động khác. |
3 | table Bất kỳ biểu thức DAX nào trả về một bảng dữ liệu. |
4 | tableName Tên của bảng hiện có sử dụng cú pháp DAX tiêu chuẩn. Nó không thể là một biểu thức. |
5 | columnName Tên của cột hiện có sử dụng cú pháp DAX tiêu chuẩn, thường đủ tiêu chuẩn. Nó không thể là một biểu thức. |
6 | name Một hằng số chuỗi sẽ được sử dụng để cung cấp tên của một đối tượng mới. |
7 | order Một kiểu liệt kê được sử dụng để xác định thứ tự sắp xếp. |
số 8 | ties Một kiểu liệt kê được sử dụng để xác định việc xử lý các giá trị ràng buộc. |
9 | type Một kiểu liệt kê được sử dụng để xác định kiểu dữ liệu cho PathItem và PathItemReverse. |
Tên tham số tiền tố
Bạn có thể đủ điều kiện cho một tên thông số có tiền tố -
Tiền tố phải mô tả cách đối số được sử dụng.
Tiền tố phải theo cách để tránh việc đọc tham số một cách mơ hồ.
Ví dụ,
Result_ColumnName - Tham chiếu đến một cột hiện có được sử dụng để lấy các giá trị kết quả trong hàm DAX LOOKUPVALUE ().
Search_ColumnName - Tham chiếu đến cột hiện có được sử dụng để tìm kiếm giá trị trong hàm DAX LOOKUPVALUE ().
Chỉ sử dụng tiền tố làm tham số
Bạn có thể bỏ qua tên tham số và chỉ sử dụng tiền tố, nếu tiền tố đủ rõ ràng để mô tả tham số. Việc bỏ qua tên tham số và chỉ sử dụng tiền tố đôi khi có thể giúp tránh sự lộn xộn khi đọc.
Ví dụ: Hãy xem xét DATE (Giá_trị năm, Giá_trị_ngày, Giá_trị_ngày). Bạn có thể bỏ qua tên tham số - giá trị, được lặp lại ba lần và viết nó là DATE (Năm, Tháng, Ngày). Như bạn có thể quan sát, bằng cách chỉ sử dụng các tiền tố, hàm dễ đọc hơn.
Tuy nhiên, đôi khi tên tham số và tiền tố phải có mặt để rõ ràng.
Ví dụ, hãy xem xét Year_columnName. Tên tham số là ColumnName và tiền tố là Năm. Cả hai đều được yêu cầu để người dùng hiểu rằng tham số yêu cầu tham chiếu đến cột năm hiện có.
Excel DAX - Hàm
Hầu hết các DAX functionscó cùng tên và chức năng với chức năng của hàm Excel. Tuy nhiên, các hàm DAX đã được sửa đổi để sử dụng kiểu dữ liệu DAX và làm việc với các bảng và cột.
DAX có một số hàm bổ sung mà bạn sẽ không tìm thấy trong Excel. Các hàm DAX này được cung cấp cho các mục đích cụ thể như tra cứu dựa trên các mối quan hệ được liên kết với các khía cạnh cơ sở dữ liệu quan hệ của Mô hình Dữ liệu, khả năng lặp qua bảng để thực hiện các phép tính đệ quy, để thực hiện tổng hợp động và các phép tính sử dụng thông minh thời gian.
Trong chương này, bạn sẽ tìm hiểu về các chức năng được hỗ trợ trong ngôn ngữ DAX. Để biết thêm thông tin về cách sử dụng các hàm DAX này, hãy tham khảo hướng dẫn - Các hàm DAX trong thư viện hướng dẫn này.
Hàm DAX là gì?
Hàm DAX là một hàm tích hợp được cung cấp bằng ngôn ngữ DAX để cho phép bạn thực hiện các hành động khác nhau trên dữ liệu trong các bảng trong Mô hình Dữ liệu của bạn. Như đã thảo luận trước đó, DAX được sử dụng cho các mục đích phân tích dữ liệu và kinh doanh thông minh yêu cầu hỗ trợ để trích xuất, đồng hóa và thu thập thông tin chi tiết từ dữ liệu. Các hàm DAX dựa trên Mô hình Dữ liệu cung cấp cho bạn những tiện ích này giúp công việc của bạn trở nên đơn giản hơn, sau khi bạn nắm được ngôn ngữ DAX và cách sử dụng các hàm DAX.
Hàm Excel so với Hàm DAX
Có một số điểm tương đồng nhất định giữa các hàm Excel mà bạn biết và các hàm DAX. Tuy nhiên, cũng có những khác biệt nhất định. Bạn cần hiểu rõ những điều này để có thể tránh mắc sai lầm trong việc sử dụng các hàm DAX và viết các công thức DAX bao gồm các hàm DAX.
Điểm giống nhau giữa các hàm Excel và hàm DAX
Nhiều hàm DAX có cùng tên và hoạt động chung giống như các hàm Excel.
DAX có các hàm tra cứu tương tự như các hàm tra cứu mảng và vectơ trong Excel.
Sự khác biệt giữa Hàm Excel và Hàm DAX
Các hàm DAX đã được sửa đổi để nhận các loại đầu vào khác nhau và một số hàm DAX có thể trả về kiểu dữ liệu khác. Do đó, bạn cần hiểu cách sử dụng của các hàm này một cách riêng biệt mặc dù chúng có cùng tên. Trong hướng dẫn này, bạn sẽ tìm thấy mọi hàm DAX có tiền tố là DAX để tránh nhầm lẫn với các hàm Excel.
Bạn không thể sử dụng các hàm DAX trong công thức Excel hoặc sử dụng công thức / hàm Excel trong DAX mà không có các sửa đổi bắt buộc.
Các hàm Excel lấy một tham chiếu ô hoặc một dải ô làm tham chiếu. Các hàm DAX không bao giờ lấy tham chiếu ô hoặc một dải ô làm tham chiếu mà thay vào đó lấy một cột hoặc bảng làm tham chiếu.
Các hàm ngày và giờ trong Excel trả về một số nguyên biểu thị ngày dưới dạng số sê-ri. Hàm ngày và giờ DAX trả về kiểu dữ liệu ngày giờ có trong DAX nhưng không có trong Excel.
Excel không có hàm nào trả về bảng, nhưng một số hàm có thể hoạt động với mảng. Nhiều hàm DAX có thể dễ dàng tham chiếu các bảng và cột hoàn chỉnh để thực hiện các phép tính và trả về một bảng hoặc một cột giá trị. Khả năng này của DAX bổ sung sức mạnh cho Power Pivot, Power View và Power BI, nơi DAX được sử dụng.
Các hàm tra cứu DAX yêu cầu một mối quan hệ được thiết lập giữa các bảng.
Excel hỗ trợ kiểu dữ liệu biến thể trong một cột dữ liệu, tức là bạn có thể có dữ liệu thuộc các kiểu dữ liệu khác nhau trong một cột. Trong khi đó, DAX mong muốn dữ liệu trong một cột của bảng luôn có cùng kiểu dữ liệu. Nếu dữ liệu không cùng kiểu dữ liệu, DAX sẽ thay đổi toàn bộ cột thành kiểu dữ liệu phù hợp nhất với tất cả các giá trị trong cột. Tuy nhiên, nếu dữ liệu được nhập và vấn đề này phát sinh, DAX có thể gắn cờ lỗi.
Để tìm hiểu về kiểu dữ liệu DAX và truyền kiểu dữ liệu, hãy tham khảo chương - Tham chiếu cú pháp DAX.
Các loại chức năng DAX
DAX hỗ trợ các loại chức năng sau.
- Các hàm có giá trị trong bảng DAX
- Chức năng bộ lọc DAX
- Các chức năng tổng hợp DAX
- Các chức năng thông minh thời gian DAX
- Chức năng ngày và giờ DAX
- Chức năng thông tin DAX
- Các chức năng logic của DAX
- DAX Math và Hàm Trig
- Các chức năng khác của DAX
- Hàm con của DAX
- Chức năng thống kê DAX
- Hàm văn bản DAX
Trong phần này, bạn sẽ tìm hiểu về các hàm DAX ở cấp độ danh mục hàm. Để biết chi tiết về Cú pháp hàm DAX và hàm DAX trả về và hoạt động gì - hãy tham khảo hướng dẫn về Hàm DAX trong thư viện hướng dẫn này.
Các chức năng thông minh thời gian DAX và chức năng bộ lọc DAX rất mạnh mẽ và cần được đề cập đặc biệt. Tham khảo các chương - Tìm hiểu các chức năng của DAX Time Intelligence và DAX Filter để biết thêm chi tiết.
Các hàm có giá trị trong bảng DAX
Nhiều hàm DAX lấy bảng làm bảng đầu vào hoặc đầu ra hoặc làm cả hai. Các hàm DAX này được gọi là các hàm có giá trị bảng DAX. Bởi vì một bảng có thể có một cột duy nhất, các hàm có giá trị của bảng DAX cũng lấy các cột đơn làm đầu vào. Bạn có các loại hàm giá trị của bảng DAX sau:
- Các chức năng tổng hợp DAX
- Các chức năng của Bộ lọc DAX
- Các chức năng thông minh về thời gian DAX
Việc hiểu các hàm có giá trị trong bảng DAX giúp bạn viết công thức DAX một cách hiệu quả.
Các chức năng tổng hợp DAX
Hàm tổng hợp DAX tổng hợp bất kỳ biểu thức nào trên các hàng của bảng và rất hữu ích trong tính toán.
Sau đây là một số chức năng Tổng hợp DAX -
ADDCOLUMNS (<bảng>, <tên>, <biểu thức>, [<tên>, <biểu thức>]…)
AVERAGE (<cột>)
AVERAGEA (<cột>)
AVERAGEX (<bảng>, <biểu thức>)
COUNT (<cột>)
COUNTA (<cột>)
COUNTAX (<bảng>, <biểu thức>)
COUNTBLANK (<cột>)
COUNTROWS (<bảng>)
COUNTX (<bảng>, <biểu thức>)
CROSSJOIN (<table1>, <table2>, [<table3>]…)
DISTINCTCOUNT (<cột>)
GENERATE (<table1>, <table2>)
GENERATEALL (<table1>, <table2>)
MAX (<cột>)
MAXA (<cột>)
MAXX (<bảng>, <biểu thức>)
MIN (<cột>)
MINA (<cột>)
MINX (<bảng>, <biểu thức>)
SẢN PHẨM (<cột>)
PRODUCTX (<bảng>, <biểu thức>)
ROW (<tên>, <biểu thức>, [<tên>, <biểu thức>]…)
SELECTCOLUMNS (<table>, <name>, <scalar_expression>,
[<name>, <scalar_expression>]…)
SUM (<cột>)
SUMMARIZE (<table>, <groupBy_columnName>, [<groupBy_columnName>]…, [<name>, <expression>]…)
SUMX (<bảng>, <biểu thức>)
TOPN (<n_value>, <table>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]]…)
Chức năng bộ lọc DAX
Các hàm Bộ lọc DAX trả về một cột, một bảng hoặc các giá trị liên quan đến hàng hiện tại. Bạn có thể sử dụng các chức năng Bộ lọc DAX để trả về các kiểu dữ liệu cụ thể, tra cứu giá trị trong các bảng có liên quan và lọc theo các giá trị liên quan. Các hàm DAX Lookup hoạt động bằng cách sử dụng các bảng và mối quan hệ giữa chúng. Các chức năng Bộ lọc DAX cho phép bạn thao tác bối cảnh dữ liệu để tạo các phép tính động.
Sau đây là một số chức năng của Bộ lọc DAX -
ADDMISSINGITEMS (<showAllColumn>, [<showAllColumn>]…, <table>, <groupingColumn>, [<groupingColumn>]… [filterTable]…)
TẤT CẢ ({<bảng> | <cột>, [<cột>], [<cột>]…})
ALLEXCEPT (<bảng>, <cột>, [<cột>]…)
ALLNOBLANKROW(<table>|<column>)
ALLSELECTED ([<tên bảng> | <tên cột>])
CALCULATE (<biểu thức>, <filter1>, <filter2>…)
CALCULATETABLE (<biểu thức>, <filter1>, <filter2>…)
CROSSFILTER (<columnName1>, <columnName2>, <direction>)
DISTINCT (<cột>)
EARLIER (<cột>, <số>)
EARLIEST(<column>)
FILTER(<table>,<filter>)
FILTERS(<columnName>)
HASONEFILTER(<columnName>)
HASONEVALUE(<columnName>)
ISCROSSFILTERED (<columnName>)
ĐÃ LỌC (<columnName>)
KEEPFILTERS (<biểu thức>)
RELATED(<column>)
RELATEDTABLE(<tableName>)
SUBSTITUTEWITHINDEX (<table>, <indexColumnName>, <indexColumnsTable>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]]…])
USERELATIONSHIP(<columnName1>,<columnName2>)
VALUES(<TableNameOrColumnName>)
Các chức năng thông minh thời gian DAX
Các hàm DAX Time Intelligence trả về một bảng ngày tháng hoặc sử dụng bảng ngày tháng để tính tổng hợp. Các hàm DAX này giúp bạn tạo các tính toán hỗ trợ nhu cầu phân tích Business Intelligence bằng cách cho phép bạn thao tác dữ liệu bằng các khoảng thời gian, bao gồm ngày, tháng, quý và năm.
Sau đây là một số chức năng của DAX Time Intelligence -
CLOSINGBALANCEMONTH (<biểu thức>, <ngày> [, <bộ lọc>])
CLOSINGBALANCEQUARTER (<biểu thức>, <ngày>, [<bộ lọc>])
CLOSINGBALANCEYEAR (<expression>, <dates>, [<filter>], [<year_end_date>])
DATEADD (<ngày>, <number_of_intervals>, <interval>)
DATESBETWEEN (<ngày>, <ngày bắt đầu>, <ngày kết thúc>)
DATESINPERIOD (<ngày>, <ngày_tháng>, <number_of_intervals>, <interval>)
DATESMTD (<ngày>)
DATESQTD (<ngày>)
DATESYTD (<ngày>, [<năm_end_date>])
ENDOFMONTH (<ngày>)
ENDOFQUARTER (<ngày>)
ENDOFYEAR (<ngày>, [<năm_end_date>])
FIRSTDATE (<ngày>)
FIRSTNONBLANK (<cột>, <biểu thức>)
LASTDATE (<ngày>)
LASTNONBLANK (<cột>, <biểu thức>)
NEXTDAY (<ngày>)
NEXTMONTH (<ngày>)
NEXTQUARTER (<ngày>)
NEXTYEAR (<ngày>, [<năm_end_date>])
OPENINGBALANCEMONTH (<biểu thức>, <ngày>, [<bộ lọc>])
OPENINGBALANCEQUARTER (<biểu thức>, <ngày>, [<bộ lọc>])
OPENINGBALANCEYEAR (<expression>, <dates>, [<filter>], [<year_end_date>])
PARALLELPERIOD (<ngày>, <number_of_intervals>, <interval>)
PREVIOUSDAY(<dates>)
PREVIOUSMONTH(<dates>)
PREVIOUSQUARTER(<dates>)
PREVIOUSYEAR (<ngày>, [<năm_end_date>])
SAMEPERIODLASTYEAR(<dates>)
STARTOFMONTH(<dates>)
STARTOFQUARTER(<dates>)
STARTOFYEAR(<dates>)
TOTALMTD (<biểu thức>, <ngày>, [<bộ lọc>])
TOTALQTD (<biểu thức>, <ngày>, [<bộ lọc>])
TOTALYTD (<biểu thức>, <ngày>, [<lọc>], [<năm_tệp>])
Chức năng ngày và giờ DAX
Các hàm Ngày và Giờ DAX tương tự như các hàm ngày và giờ trong Excel. Tuy nhiên, các hàm Ngày và Giờ của DAX dựa trên kiểu dữ liệu ngày giờ của DAX.
Sau đây là các chức năng Ngày và Giờ DAX -
- DATE (<năm>, <tháng>, <ngày>)
- DATEVALUE(date_text)
- DAY(<date>)
- EDATE (<start_date>, <months>)
- EOMONTH (<start_date>, <months>)
- HOUR(<datetime>)
- MINUTE(<datetime>)
- MONTH(<datetime>)
- NOW()
- SECOND(<time>)
- TIME (giờ, phút, giây)
- TIMEVALUE(time_text)
- TODAY()
- WEEKDAY (<ngày>, <return_type>)
- WEEKNUM (<ngày>, <return_type>)
- YEAR(<date>)
- YEARFRAC (<start_date>, <end_date>, <basis>)
Chức năng thông tin DAX
Các hàm DAX Information xem xét ô hoặc hàng được cung cấp dưới dạng đối số và cho bạn biết liệu giá trị có khớp với kiểu mong đợi hay không.
Sau đây là một số chức năng Thông tin DAX -
CONTAINS (<table>, <columnName>, <value>, [<columnName>, <value>]…)
CUSTOMDATA()
ISBLANK(<value>)
ISERROR(<value>)
ISEVEN(number)
ISLOGICAL(<value>)
ISNONTEXT(<value>)
ISNUMBER(<value>)
ISONORAFTER (<scalar_expression>, <scalar_expression>, [sort_order], [<scalar_expression>, <scalar_expression>, [sort_order]]…)
ISTEXT(<value>)
LOOKUPVALUE (<result_columnName>, <search_columnName>, <search_value>, [<search_columnName>, <search_value>]…)
USERNAME()
Các chức năng logic của DAX
Hàm logic DAX trả về thông tin về các giá trị trong một biểu thức. Ví dụ: hàm DAX TRUE cho bạn biết liệu một biểu thức mà bạn đang đánh giá có trả về giá trị TRUE hay không.
Sau đây là các hàm logic DAX -
- AND(<logical1>,<logical2>)
- FALSE()
- IF (logic_test>, <value_if_true>, value_if_false)
- IFERROR (giá trị, giá trị_if_error)
- NOT(<logical>)
- OR(<logical1>,<logical2>)
- SWITCH (<biểu thức>, <giá trị>, <kết quả>, [<giá trị>, <kết quả>]…, [<else>])
- TRUE()
DAX Math và Hàm Trig
Các hàm toán học và lượng giác DAX rất giống với các hàm toán học và lượng giác trong Excel.
Sau đây là một số hàm DAX Math và Trig:
- ABS(<number>)
- ACOS(number)
- ACOSH(number)
- ASIN(number)
- ASINH(number)
- ATAN(number)
- ATANH(number)
- TRẦN (<số>, <ý>)
- COMBIN (số, số_chọn)
- COMBINA (số, số_chọn)
- COS(number)
- COSH(number)
- CURRENCY(<value>)
- DEGREES(angle)
- DIVIDE (<numerator>, <denominator>, [<alternateresult>])
- EVEN(number)
- EXP(<number>)
- FACT(<number>)
- TẦNG (<số>, <ý>)
- GCD (number1, [number2], ...)
- INT(<number>)
- ISO.CEILING (<number>, [<significance>])
- LCM (number1, [number2], ...)
- LN(<number>)
- LOG(<number>,<base>)
- LOG10(<number>)
- INT(<number>)
- MROUND (<số>, <nhiều>)
- ODD(number)
- PI()
- POWER (<số>, <sức mạnh>)
- PRODUCT(<column>)
- PRODUCTX (<bảng>, <biểu thức>)
- QUOTIENT (<mẫu số>, <mẫu số>)
- RADIANS(angle)
- RAND()
- RANDBETWEEN(<bottom>,<top>)
- ROUND (<số>, <num_digits>)
- ROUNDDOWN (<number>, <num_digits>)
- ROUNDUP (<number>, <num_digits>)
- SIN(number)
- SINH(number)
- SIGN(<number>)
- SQRT(<number>)
- SUM(<column>)
- SUMX (<bảng>, <biểu thức>)
- TAN(number)
- TANH(number)
- TRUNC(<number>,<num_digits>)
Các chức năng khác của DAX
Các hàm DAX này thực hiện các hành động duy nhất không thể được xác định bởi bất kỳ danh mục nào mà hầu hết các hàm khác thuộc về.
Sau đây là một số DAX Các chức năng khác -
NGOẠI LỆ (<table_expression1>, <table_expression2>
GROUPBY (<bảng>, [<groupBy_columnName1>], [<tên>, <biểu thức>]…)
INTERSECT (<table_expression1>, <table_expression2>)
ISEMPTY(<table_expression>)
NATURALINNERJOIN (<leftJoinTable>, <rightJoinTable>)
NATURALLEFTOUTERJOIN (<leftJoinTable>, <rightJoinTable>)
SUMMARIZECOLUMNS (<groupBy_columnName>, [<groupBy_columnName>]…, [<filterTable>]…, [<name>, <expression>]…)
UNION (<table_expression1>, <table_expression2>, [<table_expression>]…)
VAR <tên> = <biểu thức>
Hàm con của DAX
Các hàm cha và con của DAX hữu ích trong việc quản lý dữ liệu được trình bày dưới dạng phân cấp cha / con trong Mô hình dữ liệu.
Sau đây là một số hàm cha và con của DAX:
- PATH (<ID_columnName>, <parent_columnName>)
- PATHCONTAINS (<path>, <item>)
- PATHITEM (<đường dẫn>, <vị trí>, [<loại>])
- PATHITEMREVERSE (<đường dẫn>, <vị trí>, [<loại>])
- PATHLENGTH(<path>)
Chức năng thống kê DAX
Hàm thống kê DAX rất giống với hàm thống kê trong Excel.
Sau đây là một số chức năng Thống kê DAX -
BETA.DIST (x, alpha, beta, tích lũy, [A], [B])
BETA.INV (xác suất, alpha, beta, [A], [B])
CHISQ.INV (xác suất, độ_tự do)
CHISQ.INV.RT (xác suất, độ_tự do)
CONFIDENCE.NORM (alpha, standard_dev, size)
CONFIDENCE.T (alpha, standard_dev, size)
DATATABLE (ColumnName1, DataType1, ColumnName2, DataType2 ..., {{Value1, Value2 ...}, {ValueN, ValueN + 1 ...} ...})
EXPON.DIST (x, lambda, tích lũy)
GEOMEAN(<column>)
GEOMEANX (<bảng>, <biểu thức>)
MEDIAN(<column>)
MEDIANX (<bảng>, <biểu thức>)
PERCENTILE.EXC (<cột>, <k>)
PERCENTILE.INC (<cột>, <k>)
PERCENTILEX.EXC (<bảng>, <biểu thức>, k)
PERCENTILEX.EXC (<bảng>, <biểu thức>, k)
POISSON.DIST (x, trung bình, tích lũy)
RANK.EQ (<giá trị>, <tên cột> [, <thứ tự>])
RANKX (<bảng>, <biểu thức> [, <giá trị> [, <thứ tự> [, <ties>]]])
SAMPLE (<n_value>, <table>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]]…)
STDEV.P(<ColumnName>)
STDEV.S(<ColumnName>)
STDEVX.P (<bảng>, <biểu thức>)
STDEVX.S (<bảng>, <biểu thức>)
SQRTPI(number)
VAR.P(<columnName>)
VAR.S(<columnName>)
VARX.P (<bảng>, <biểu thức>)
VARX.S (<bảng>, <biểu thức>)
XIRR (<bảng>, <giá trị>, <ngày>, [đoán])
XNPV (<bảng>, <giá trị>, <ngày>, <tỷ lệ>)
Hàm văn bản DAX
Các hàm DAX Text hoạt động với các bảng và cột. Với các hàm DAX Text, bạn có thể trả về một phần của chuỗi, tìm kiếm văn bản trong chuỗi hoặc nối các giá trị chuỗi. Bạn cũng có thể kiểm soát các định dạng cho ngày, giờ và số.
Sau đây là một số hàm DAX Text:
- BLANK()
- CODE(text)
- CONCATENATE (<text1>, <text2>)
- CONCATENATEX (<bảng>, <biểu thức>, [dấu phân cách])
- EXACT(<text1>,<text2>)
- TÌM (<find_text>, <within_text>, [<start_num>], [<NotFoundValue>])
- ĐÃ CỐ ĐỊNH (<number>, <decimals>, <no_commas>)
- FORMAT (<value>, <format_string>)
- LEFT (<text>, <num_chars>)
- LEN(<text>)
- LOWER(<text>)
- MID (<text>, <start_num>, <num_chars>)
- REPLACE (<old_text>, <start_num>, <num_chars>, <new_text>)
- REPT (<text>, <num_times>)
- RIGHT (<text>, <num_chars>)
- TÌM KIẾM (<find_text>, <within_text>, [<start_num>], [<NotFoundValue>])
- SUBSTITUTE (<text>, <old_text>, <new_text>, <instance_num>)
- TRIM(<text>)
- LÊN (<text>)
- VALUE(<text>)
Excel DAX - Hiểu các hàm DAX
Trong Excel 2013, DAX có 246 hàm. Bạn đã tìm hiểu về các loại hàm DAX khác nhau trong chương - Hàm DAX. Tuy nhiên, nếu bạn phải sử dụng hàm DAX trong công thức DAX, bạn cần phải hiểu hàm một cách chi tiết. Bạn nên biết cú pháp của hàm, các loại tham số, hàm trả về gì, v.v.
Nếu bạn đang viết công thức DAX, bạn nên sử dụng các hàm DAX nếu có. Về điều này, bạn có thể tham khảo hướng dẫn - Hàm DAX trong thư viện hướng dẫn này để hiểu sâu hơn về vị trí và cách sử dụng từng hàm trong số 246 hàm DAX. Bạn luôn có thể quay đi quay lại giữa hướng dẫn này và hướng dẫn Chức năng DAX để có được sự thành thạo về DAX.
Trong chương này, bạn sẽ hiểu cách đọc và giải thích các hàm DAX trong hướng dẫn Các hàm DAX.
Hàm DAX - Cấu trúc giải thích
Trong phần hướng dẫn các hàm DAX, mỗi hàm DAX được giải thích theo cấu trúc chuẩn, bao gồm các phần sau:
- Description
- Syntax
- Parameters
- Giá trị trả lại
- Remarks
- Example
Bạn sẽ tìm hiểu về từng thứ này trong các phần sau.
Sự miêu tả
Trong phần Mô tả, bạn sẽ tìm hiểu hàm DAX nói về chức năng gì và nó có thể được sử dụng ở đâu.
Cú pháp
Trong phần Cú pháp, bạn sẽ tìm hiểu tên hàm chính xác và các tham số tương ứng.
Thông số
Trong phần Tham số, bạn sẽ tìm hiểu về từng tham số của hàm DAX cụ thể, liệu một tham số là đầu vào hay đầu ra và nếu có bất kỳ tùy chọn nào. Như đã thấy trong chương - Tham số chuẩn DAX, chỉ các tên tham số chuẩn sẽ được sử dụng.
Giá trị trả lại
Trong phần Giá trị Trả lại, bạn sẽ tìm hiểu về giá trị nào mà hàm DAX sẽ trả về và kiểu dữ liệu của nó.
Nhận xét
Trong phần Ghi chú, bạn sẽ tìm hiểu về bất kỳ thông tin bổ sung nào mà bạn cần biết về cách sử dụng hàm DAX.
Thí dụ
Mô tả hàm DAX sẽ được kết thúc với một ví dụ về cách sử dụng hàm.
Excel DAX - Bối cảnh đánh giá
Trong DAX, ngữ cảnh là một thuật ngữ quan trọng mà bạn nên biết khi viết công thức DAX. Còn được gọi làevaluation context, Ngữ cảnh DAX được sử dụng để xác định đánh giá của công thức DAX và kết quả tương ứng. Điều này có nghĩa là, kết quả của công thức DAX có thể thay đổi tùy theo ngữ cảnh. Bạn nên hiểu rõ cách sử dụng ngữ cảnh DAX cụ thể và kết quả có thể khác nhau như thế nào.
Ngữ cảnh đánh giá cho phép bạn thực hiện phân tích động, trong đó kết quả của công thức DAX có thể thay đổi để phản ánh hàng hiện tại hoặc lựa chọn ô và cả bất kỳ dữ liệu liên quan nào. Hiểu ngữ cảnh và sử dụng ngữ cảnh hiệu quả là điều rất quan trọng để xây dựng các công thức DAX mạnh mẽ, thực hiện phân tích dữ liệu động và khắc phục sự cố trong công thức DAX. Các bối cảnh đánh giá là cơ sở của tất cả các tính năng nâng cao của DAX mà bạn cần phải nắm vững để tạo các báo cáo phân tích dữ liệu phức tạp.
Khi bạn tiếp tục tham chiếu đến các hàm DAX để sử dụng có liên quan trong các công thức DAX, bạn cần tham khảo chương này về ngữ cảnh DAX để hiểu rõ về kết quả.
Các loại ngữ cảnh trong DAX
DAX hỗ trợ các bối cảnh đánh giá sau:
- Ngữ cảnh hàng
- Bối cảnh bộ lọc
Khi công thức DAX được đánh giá, tất cả các ngữ cảnh sẽ được tính đến và được áp dụng khi có liên quan. Các ngữ cảnh tồn tại cùng nhau và kết quả của công thức sẽ khác nhau dựa trên ngữ cảnh được sử dụng trong khi tính giá trị. Ví dụ: khi bạn chọn trường cho hàng, cột và bộ lọc trong PivotTable, tổng phụ được tính động dựa trên hàng và cột nào mà tổng / tổng phụ được liên kết với và giá trị trong hàng và cột được xác định bởi bộ lọc đã sử dụng.
Ngữ cảnh hàng
Ngữ cảnh hàng có nghĩa là công thức DAX hoặc hàm DAX biết dòng nào của bảng mà nó đang tham chiếu tại bất kỳ thời điểm nào. Bạn có thể coi ngữ cảnh hàng là hàng hiện tại. Công thức sẽ được tính toán từng hàng với ngữ cảnh hàng.
Một số hàm DAX (ví dụ: hàm X, FILTER ()) và tất cả các cột được tính toán đều có ngữ cảnh hàng. Ví dụ: nếu bạn tạo cột được tính toán Năm với công thức DAX = YEAR ([Ngày]), các giá trị của cột được tính toán sẽ nhận được bằng cách áp dụng công thức DAX đã cho trên cột đã cho trong bảng, theo từng hàng.
Điều này có nghĩa là 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 riêng lẻ và các giá trị trong các cột có liên quan đến hàng hiện tại, được xác định bởi công thức DAX được sử dụng. Mặc dù công thức DAX không chứa tham chiếu đến một hàng, DAX hiểu ngầm ngữ cảnh hàng trong khi tính toán các giá trị.
DAX tự động tạo ngữ cảnh hàng khi bạn xác định một cột được tính toán và tất cả các giá trị được tính toán với công thức DAX được sử dụng sẽ xuất hiện trong cột được tính toán.
Ngược lại, khi bạn có một hàm DAX chẳng hạn như SUMX, các giá trị được tính theo từng hàng sẽ được cộng lại và chỉ kết quả cuối cùng mới được hiển thị. Nghĩa là, các giá trị trung gian bị loại bỏ.
Khi bạn có các bảng liên quan, ngữ cảnh hà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. Tuy nhiên, ngữ cảnh hàng không tự động truyền qua các mối quan hệ. Bạn phải sử dụng các hàm DAX - LIÊN QUAN và CÓ LIÊN QUAN cho việc này.
Bối cảnh nhiều hàng
DAX có các chức năng của trình lặp như SUMX. Bạn có thể sử dụng các hàm này để lồng các ngữ cảnh hàng. Với điều này, theo chương trình, bạn có thể có một đệ quy qua một vòng lặp bên trong và một vòng lặp bên ngoài, nơi bạn có thể có nhiều hàng hiện tại và bối cảnh hàng hiện tại.
Ví dụ, bạn có thể sử dụng hàm DAX trước đó () để lưu trữ ngữ cảnh hàng từ thao tác trước thao tác hiện tại. Hàm này lưu trữ hai bộ ngữ cảnh trong bộ nhớ - một bộ ngữ cảnh đại diện cho hàng hiện tại cho vòng lặp bên trong của công thức và một bộ ngữ cảnh khác đại diện cho hàng hiện tại cho vòng lặp bên ngoài của công thức. DAX tự động nạp các giá trị giữa hai vòng lặp để bạn có thể tạo các tổng hợp phức tạp.
Để có ví dụ, hãy tham khảo kịch bản - Tạo Công thức DAX để Xếp hạng Động các Giá trị trong chương Kịch bản - Xếp hạng và So sánh Giá trị.
Bối cảnh bộ lọc
Ngữ cảnh bộ lọc đề cập đến bất kỳ bộ lọc nào được áp dụng cho Mô hình dữ liệu trong DAX. Bối cảnh bộ lọc được tạo bởi PivotTable và cũng bởi các hàm DAX.
Bối cảnh bộ lọc do PivotTable tạo
Ngữ cảnh bộ lọc được tạo bởi PivotTable là bộ lọc tự nhiên được áp dụng bởi các lựa chọn được thực hiện trên các trường PivotTable từ sau:
- Rows
- Columns
- Filters
- Slicers
Bối cảnh bộ lọc được tạo bởi PivotTable, lọc các bảng bên dưới trong Mô hình Dữ liệu. Nếu các bảng có liên quan với nhau, thì các bộ lọc chảy xuống từ bảng tra cứu đến bảng dữ liệu. Điều đó có nghĩa là, bạn có thể lọc các bảng dữ liệu dựa trên kết quả từ các bảng tra cứu. Sự lan truyền bộ lọc không xảy ra theo chiều ngược lại. Tuy nhiên, bạn có thể sử dụng công thức DAX để lọc bảng tra cứu dựa trên kết quả từ bảng dữ liệu.
Bối cảnh bộ lọc được tạo bởi các hàm DAX
Bạn có thể sử dụng các hàm Bộ lọc DAX để xác định các trường được tính toán và các cột được tính toán, chứa các biểu thức bộ lọc kiểm soát các giá trị được sử dụng bởi công thức DAX. Các trường được tính toán và cột được tính toán này sau đó trở thành một phần của danh sách trường PivotTable và bạn có thể thêm chúng vào PivotTable. Bạn cũng có thể xóa có chọn lọc các bộ lọc trên các cột cụ thể bằng các chức năng Bộ lọc DAX này. Một ví dụ về hàm Bộ lọc DAX mạnh mẽ để tạo Ngữ cảnh bộ lọc là CALCULATE (). Để biết ví dụ, hãy tham khảo chương Kịch bản - Thực hiện các phép tính phức tạp.
Lọc ngữ cảnh như một bổ sung cho ngữ cảnh hàng
Ngữ cảnh hàng không tự động tạo ngữ cảnh bộ lọc. Bạn có thể đạt được điều tương tự với các công thức DAX có chứa các chức năng Bộ lọc DAX.
Excel DAX - Công thức
DAX là ngôn ngữ công thức để tạo các phép tính tùy chỉnh trong Power PivotTables. Bạn có thể sử dụng các hàm DAX được thiết kế để làm việc với dữ liệu quan hệ và thực hiện tổng hợp động trong các công thức DAX.
DAX formulasrất giống với các công thức Excel. Để tạo công thức DAX, bạn nhập dấu bằng, theo sau là tên hàm hoặc biểu thức và bất kỳ giá trị hoặc đối số bắt buộc nào.
Chức năng DAX so với Công thức DAX
Công thức DAX có thể bao gồm các hàm DAX và tận dụng việc sử dụng chúng. Đây là nơi mà các công thức DAX có xu hướng khác với các hàm DAX theo những cách quan trọng.
Hàm DAX luôn tham chiếu đến một cột hoặc một bảng hoàn chỉnh. Nếu bạn chỉ muốn sử dụng các giá trị cụ thể từ bảng hoặc cột, bạn có thể thêm bộ lọc vào công thức.
Nếu bạn muốn tùy chỉnh các phép tính trên cơ sở từng hàng, Power Pivot cung cấp các hàm cho phép bạn sử dụng giá trị hàng hiện tại hoặc giá trị có liên quan để thực hiện các phép tính thay đổi theo ngữ cảnh.
DAX bao gồm một loại hàm trả về một bảng là kết quả của nó, thay vì một giá trị duy nhất. Các hàm này có thể được sử dụng để cung cấp đầu vào cho các hàm khác, do đó tính toán các giá trị cho toàn bộ bảng hoặc cột.
Một số hàm DAX cung cấp thông tin thời gian, cho phép bạn tạo các phép tính bằng cách sử dụng các phạm vi ngày có ý nghĩa và so sánh kết quả giữa các khoảng thời gian song song.
Hiểu cú pháp công thức DAX
Mọi công thức DAX đều có cú pháp sau:
Mỗi công thức phải bắt đầu bằng một dấu bằng.
Ở bên phải của dấu bằng, bạn có thể nhập hoặc chọn tên hàm hoặc nhập biểu thức. Biểu thức có thể chứa tên bảng và tên cột được kết nối bởi toán tử DAX.
Sau đây là một số công thức DAX hợp lệ:
- [column_Cost] + [column_Tax]
- = Hôm nay ()
Hiểu tính năng của IntelliSense
DAX cung cấp tính năng IntelliSense cho phép bạn viết các công thức DAX nhanh chóng và chính xác. Với tính năng này, bạn không cần nhập hoàn toàn tên bảng, cột và hàm mà hãy chọn các tên có liên quan từ danh sách thả xuống trong khi viết công thức DAX.
Bắt đầu nhập một vài ký tự đầu tiên của tên hàm. AutoComplete hiển thị danh sách các chức năng có sẵn với tên bắt đầu bằng các chữ cái đó.
Đặt con trỏ vào bất kỳ tên hàm nào. Chú giải công cụ IntelliSense sẽ được hiển thị để bạn sử dụng chức năng.
Nhấp vào tên chức năng. Tên hàm xuất hiện trong thanh công thức và cú pháp được hiển thị, sẽ hướng dẫn bạn khi bạn chọn các đối số.
Nhập chữ cái đầu tiên của tên bảng mà bạn muốn. AutoComplete hiển thị danh sách các bảng và cột có sẵn với tên bắt đầu bằng chữ cái đó.
Nhấn TAB hoặc nhấp vào tên để thêm một mục từ danh sách Tự động điền vào công thức.
Nhấn vào Fxđể hiển thị danh sách các chức năng có sẵn. Để chọn một chức năng từ danh sách thả xuống, sử dụng các phím mũi tên để đánh dấu mục đó và bấm OK để thêm chức năng vào công thức.
Cung cấp các đối số cho hàm bằng cách chọn chúng từ danh sách thả xuống gồm các bảng và cột có thể có hoặc bằng cách nhập các giá trị bắt buộc.
Khuyến khích sử dụng tính năng IntelliSense tiện dụng này.
Sử dụng công thức DAX ở đâu?
Bạn có thể sử dụng công thức DAX trong việc tạo các cột được tính toán và các trường được tính toán.
Bạn có thể sử dụng công thức DAX trong các cột được tính toán, bằng cách thêm một cột và sau đó nhập biểu thức vào thanh công thức. Bạn tạo các công thức này trong cửa sổ PowerPivot.
Bạn có thể sử dụng công thức DAX trong các trường được tính toán. Bạn tạo các công thức này -
Trong cửa sổ Excel trong hộp thoại Trường Tính toán, hoặc
Trong cửa sổ Power Pivot trong vùng tính toán của bảng.
Cùng một công thức có thể hoạt động khác nhau tùy thuộc vào việc công thức được sử dụng trong một cột được tính toán hay một trường được tính toán.
Trong cột được tính toán, công thức luôn được áp dụng cho mọi hàng trong cột, trong toàn bộ bảng. Tùy thuộc vào ngữ cảnh hàng, giá trị có thể thay đổi.
Tuy nhiên, trong một trường được tính toán, việc tính toán kết quả phụ thuộc nhiều vào ngữ cảnh. Đó là, thiết kế của PivotTable và lựa chọn tiêu đề hàng và cột ảnh hưởng đến các giá trị được sử dụng trong tính toán.
Điều quan trọng là phải hiểu khái niệm ngữ cảnh trong DAX để viết công thức DAX. Điều này có thể hơi khó khăn khi bắt đầu hành trình DAX của bạn, nhưng khi bạn đã nắm bắt được nó, bạn có thể viết các công thức DAX hiệu quả cần thiết để phân tích dữ liệu động và phức tạp. Để biết chi tiết, hãy tham khảo chương - Bối cảnh DAX.
Tạo công thức DAX
Bạn đã tìm hiểu về tính năng IntelliSense trong phần trước. Hãy nhớ sử dụng nó trong khi tạo bất kỳ công thức DAX nào.
Để tạo công thức DAX, hãy sử dụng các bước sau:
Nhập dấu bằng.
Ở bên phải của dấu bằng, nhập như sau:
Nhập chữ cái đầu tiên của một hàm hoặc tên bảng và chọn tên đầy đủ từ danh sách thả xuống.
Nếu bạn đã chọn một tên hàm, hãy nhập dấu ngoặc đơn '('.
Nếu bạn đã chọn tên bảng, hãy nhập dấu ngoặc vuông '['. Nhập chữ cái đầu tiên của tên cột và chọn tên đầy đủ từ danh sách thả xuống.
Đóng tên cột bằng ']' và tên hàm bằng ')'.
Nhập toán tử DAX giữa các biểu thức hoặc kiểu ',' để tách các đối số của hàm.
Lặp lại các bước 1 - 5 cho đến khi công thức DAX hoàn tất.
Ví dụ: bạn muốn tìm tổng số tiền bán hàng ở khu vực phía Đông. Bạn có thể viết công thức DAX như hình dưới đây. East_Sales là tên của bảng. Số tiền là một cột trong bảng.
SUM ([East_Sales[Amount])
Như đã thảo luận trong chương - Cú pháp DAX, bạn nên sử dụng tên bảng cùng với tên cột trong mọi tham chiếu đến bất kỳ tên cột nào. Điều này được gọi là - "tên đủ điều kiện".
Công thức DAX có thể thay đổi dựa trên việc nó dành cho trường được tính toán hay cột được tính toán. Tham khảo các phần bên dưới để biết chi tiết.
Tạo công thức DAX cho cột được tính
Bạn có thể tạo công thức DAX cho một cột được tính toán trong cửa sổ Power Pivot.
- Bấm vào tab của bảng mà bạn muốn thêm cột được tính toán.
- Bấm vào tab Thiết kế trên Ruy-băng.
- Nhấp vào Thêm.
- Nhập công thức DAX cho cột được tính toán trong thanh công thức.
= DIVIDE (East_Sales[Amount], East_Sales[Units])
Công thức DAX này thực hiện như sau cho mọi hàng trong bảng East_Sales -
Chia giá trị trong cột Số lượng của một hàng cho giá trị trong cột Đơn vị trong cùng một hàng.
Đặt kết quả vào cột mới được thêm vào trong cùng một hàng.
Lặp đi lặp lại các bước 1 và 2 cho đến khi hoàn thành tất cả các hàng trong bảng.
Bạn đã thêm một cột cho Đơn giá mà tại đó những đơn vị đó được bán với công thức trên.
Như bạn có thể quan sát, các cột được tính toán cũng yêu cầu tính toán và không gian lưu trữ. Do đó, chỉ sử dụng các cột được tính toán nếu cần thiết. Sử dụng các trường được tính toán nếu có thể và đủ.
Tham khảo chương - Cột Tính toán để biết thêm chi tiết.
Tạo công thức DAX cho trường được tính
Bạn có thể tạo công thức DAX cho trường được tính toán trong cửa sổ Excel hoặc trong cửa sổ Power Pivot. Trong trường hợp được tính toán, bạn cần phải cung cấp tên trước.
Để tạo công thức DAX cho một trường được tính toán trong cửa sổ Excel, hãy sử dụng hộp thoại Trường Tính toán.
Để tạo công thức DAX cho trường được tính toán trong cửa sổ Power Pivot, hãy bấm vào ô trong vùng tính toán trong bảng có liên quan. Bắt đầu công thức DAX với CalculatedFieldName: =.
Ví dụ, Tổng số tiền bán hàng miền Đông: = SUM ([Số lượng bán hàng miền Đông [Số tiền])
Nếu bạn sử dụng hộp thoại Trường Tính toán trong cửa sổ Excel, bạn có thể kiểm tra công thức trước khi lưu và tạo thói quen bắt buộc để đảm bảo sử dụng đúng công thức.
Để biết thêm chi tiết về các tùy chọn này, hãy tham khảo chương - Các trường được tính toán.
Tạo công thức DAX bằng thanh công thức
Cửa sổ Power Pivot cũng có một thanh công thức giống như thanh công thức của cửa sổ Excel. Thanh công thức giúp tạo và chỉnh sửa công thức dễ dàng hơn, bằng cách sử dụng chức năng Tự động điền để giảm thiểu lỗi cú pháp.
Để nhập tên của bảng, hãy bắt đầu nhập tên của bảng. Công thức AutoComplete cung cấp một danh sách thả xuống chứa các tên bảng hợp lệ bắt đầu bằng các chữ cái đó. Bạn có thể bắt đầu bằng một chữ cái và nhập nhiều chữ cái hơn để thu hẹp danh sách nếu cần.
Để nhập tên của cột, bạn có thể chọn từ danh sách tên cột trong bảng đã chọn. Nhập dấu ngoặc nhọn '[' ở bên phải tên bảng, sau đó chọn cột từ danh sách các cột trong bảng đã chọn.
Mẹo sử dụng tự động điền
Sau đây là một số mẹo để sử dụng Tự động điền -
Bạn có thể lồng các hàm và công thức trong một công thức DAX. Trong trường hợp như vậy, bạn có thể sử dụng Công thức Tự động điền ở giữa một công thức hiện có với các hàm lồng nhau. Văn bản ngay trước điểm chèn được sử dụng để hiển thị các giá trị trong danh sách thả xuống và tất cả văn bản sau điểm chèn vẫn không thay đổi.
Các tên đã xác định mà bạn tạo cho các hằng số không được hiển thị trong danh sách thả xuống Tự động điền, nhưng bạn vẫn có thể nhập chúng.
Dấu ngoặc đóng của các hàm không được thêm tự động. Bạn cần phải làm điều đó một mình.
Bạn phải đảm bảo rằng mỗi hàm đều đúng về mặt cú pháp.
Hiểu tính năng của chức năng Chèn
Bạn có thể tìm thấy nút Chèn Hàm có nhãn là fx, cả trong cửa sổ Power Pivot và cửa sổ Excel.
Nút Chèn Hàm trong cửa sổ Power Pivot ở bên trái thanh công thức.
Nút Chèn Hàm trong cửa sổ Excel nằm trong hộp thoại Trường Tính ở bên phải Công thức.
Khi bạn nhấp vào fx, hộp thoại Chèn Hàm xuất hiện. Hộp thoại Chèn Hàm là cách dễ nhất để tìm một hàm DAX có liên quan đến công thức DAX của bạn.
Hộp thoại Chèn Hàm giúp bạn chọn các chức năng theo danh mục và cung cấp các mô tả ngắn cho từng chức năng.
Sử dụng Hàm Chèn trong Công thức DAX
Giả sử bạn muốn tạo trường được tính toán sau:
Medal Count: = COUNTA (]Medal])
Bạn có thể sử dụng hộp thoại Chèn hàm theo các bước sau:
- Nhấp vào vùng tính toán của bảng Kết quả.
- Nhập nội dung sau vào thanh công thức:
Medal Count: =
- Nhấp vào nút Chèn Hàm (fx).
Hộp thoại Chèn Hàm xuất hiện.
Chọn Thống kê trong hộp Chọn một danh mục như được hiển thị trong ảnh chụp màn hình sau.
Chọn COUNTA trong hộp Chọn chức năng như được hiển thị trong ảnh chụp màn hình sau.
Như bạn có thể quan sát, cú pháp hàm DAX đã chọn và mô tả hàm được hiển thị. Điều này cho phép bạn đảm bảo rằng đó là hàm mà bạn muốn chèn.
Bấm OK. Số lượng huy chương: = COUNTA (xuất hiện trong thanh công thức và chú giải công cụ hiển thị cú pháp hàm cũng xuất hiện.
Kiểu [. Điều này có nghĩa là bạn sắp nhập tên cột. Tên của tất cả các cột và các trường được tính toán trong bảng hiện tại sẽ được hiển thị trong danh sách thả xuống. Bạn có thể sử dụng IntelliSense để hoàn thành công thức.
Nhập M. Các tên được hiển thị trong danh sách thả xuống sẽ bị giới hạn ở những tên bắt đầu bằng 'M'.
Nhấp vào Huy chương.
Bấm đúp vào Huy chương. Tổng số huy chương: = COUNTA ([Huy chương] sẽ được hiển thị trong thanh công thức. Đóng dấu ngoặc đơn.
Bấm phím Enter. Bạn xong việc rồi. Bạn cũng có thể sử dụng quy trình tương tự để tạo một cột được tính toán. Bạn cũng có thể làm theo các bước tương tự để chèn một hàm trong hộp thoại Trường Tính trong cửa sổ Excel bằng cách sử dụng tính năng Chèn Hàm.
Bấm vào Hàm Chèn (fx) ở bên phải Công thức.
Hộp thoại Chèn Hàm xuất hiện. Các bước còn lại tương tự như trên.
Sử dụng nhiều hàm trong một công thức DAX
Công thức DAX có thể chứa tối đa 64 hàm lồng nhau. Tuy nhiên, không chắc rằng một công thức DAX chứa nhiều hàm lồng nhau như vậy.
Nếu một công thức DAX có nhiều hàm lồng nhau, nó có những nhược điểm sau:
- Công thức sẽ rất khó tạo.
- Nếu công thức có lỗi, sẽ rất khó gỡ lỗi.
- Việc đánh giá công thức sẽ không nhanh lắm.
Trong những trường hợp như vậy, bạn có thể chia công thức thành các công thức nhỏ hơn có thể quản lý được và xây dựng công thức lớn dần dần.
Tạo công thức DAX bằng cách sử dụng tổng hợp chuẩn
Khi bạn thực hiện phân tích dữ liệu, bạn sẽ thực hiện tính toán trên dữ liệu tổng hợp. Có một số hàm tổng hợp DAX, chẳng hạn như SUM, COUNT, MIN, MAX, DISTINCTCOUNT, v.v. mà bạn có thể sử dụng trong công thức DAX.
Bạn có thể tự động tạo công thức bằng cách sử dụng tổng hợp tiêu chuẩn bằng cách sử dụng tính năng Tự động tính tổng trong cửa sổ Power Pivot.
- Bấm vào tab Kết quả trong cửa sổ Power Pivot. Bảng kết quả sẽ được hiển thị.
- Nhấp vào cột Huy chương. Toàn bộ cột - Huy chương sẽ được chọn.
- Bấm vào tab Trang đầu trên Ruy-băng.
- Bấm vào mũi tên xuống bên cạnh Tự động cộng trong nhóm Tính toán.
- Nhấp vào COUNT trong danh sách thả xuống.
Như bạn có thể quan sát, trường được tính toán Số huy chương xuất hiện trong vùng tính toán bên dưới cột - Huy chương. Công thức DAX cũng xuất hiện trong thanh công thức -
Count of Medal: = COUNTA([Medal])
Tính năng AutoSum đã hoàn thành công việc cho bạn - tạo trường được tính toán để tổng hợp dữ liệu. Hơn nữa, AutoSum đã sử dụng biến thể thích hợp của hàm DAX COUNT, tức là COUNTA (DAX có các hàm COUNT, COUNTA, COUNTAX).
Lưu ý - Để sử dụng tính năng AutoSum, bạn cần nhấp vào mũi tên xuống bên cạnh AutoSum trên Ribbon. Nếu bạn nhấp vào AutoSum thay vào đó, bạn sẽ nhận được -
Sum of Medal: = SUM([Medal])
Và một lỗi được gắn cờ là Huy chương không phải là cột dữ liệu số và văn bản trong cột không thể chuyển đổi thành số.
Bạn có thể tham khảo chương - DAX Error Reference để biết chi tiết về lỗi DAX.
Công thức DAX và Mô hình quan hệ
Như bạn đã biết, trong Mô hình Dữ liệu của Power Pivot, bạn có thể làm việc với nhiều bảng dữ liệu và kết nối các bảng bằng cách xác định mối quan hệ. Điều này sẽ cho phép bạn tạo các công thức DAX thú vị sử dụng mối tương quan của các cột giữa các bảng liên quan để tính toán.
Khi bạn tạo mối quan hệ giữa hai bảng, bạn phải đảm bảo rằng hai cột được sử dụng làm khóa có giá trị khớp với nhau, ít nhất là đối với hầu hết các hàng, nếu không hoàn toàn. Trong Mô hình Dữ liệu Power Pivot, có thể có các giá trị không khớp trong cột khóa và vẫn tạo mối quan hệ, vì Power Pivot không thực thi tính toàn vẹn của tham chiếu (xem phần tiếp theo để biết chi tiết). Tuy nhiên, sự hiện diện của các giá trị trống hoặc không khớp trong cột khóa có thể ảnh hưởng đến kết quả của công thức DAX và sự xuất hiện của PivotTable.
Tính toàn vẹn tham chiếu
Thiết lập tính toàn vẹn tham chiếu liên quan đến việc xây dựng một bộ quy tắc để bảo toàn các mối quan hệ đã xác định giữa các bảng khi bạn nhập hoặc xóa dữ liệu. Nếu bạn không hoàn toàn đảm bảo điều này, vì Power Pivot không thực thi nó, bạn có thể không nhận được kết quả chính xác với các công thức DAX được tạo trước khi thay đổi dữ liệu được thực hiện.
Nếu bạn thực thi tính toàn vẹn của tham chiếu, bạn có thể ngăn chặn các cạm bẫy sau:
Thêm hàng vào bảng có liên quan khi không có hàng được liên kết nào trong bảng chính (nghĩa là với các giá trị khớp trong các cột chính).
Thay đổi dữ liệu trong bảng chính dẫn đến các hàng mồ côi trong một bảng có liên quan (tức là các hàng có giá trị dữ liệu trong cột khóa không có giá trị khớp trong cột khóa của bảng chính).
Xóa các hàng khỏi bảng chính khi có các giá trị dữ liệu phù hợp trong các hàng của bảng liên quan.
Cập nhật kết quả của công thức DAX
Công thức DAX được sử dụng trong các phép tính liên quan đến dữ liệu lớn, bao gồm dữ liệu từ các nguồn dữ liệu bên ngoài. Dữ liệu có thể bị thay đổi theo thời gian vì các tính toán DAX cũng dành cho dữ liệu trực tiếp.
Kết quả của công thức DAX cần được cập nhật hai lần -
Data Refresh - Khi dữ liệu được làm mới.
Recalculation - Khi có những thay đổi trong công thức DAX.
Hiểu làm mới dữ liệu so với tính toán lại
Làm mới dữ liệu và tính toán lại là hai hoạt động riêng biệt nhưng có liên quan đến nhau.
Làm mới dữ liệu là quá trình cập nhật dữ liệu trong Mô hình Dữ liệu trong sổ làm việc của bạn, thu thập dữ liệu cập nhật từ các nguồn dữ liệu bên ngoài.
Tính toán lại là quá trình cập nhật tất cả các cột, bảng và PivotTable trong sổ làm việc của bạn có chứa công thức DAX, để phản ánh những thay đổi trong dữ liệu cơ bản là kết quả của những thay đổi đối với chính công thức DAX.
Bạn không nên lưu hoặc xuất bản sổ làm việc cho đến khi các công thức DAX trong đó được tính toán lại.
Các cách khác nhau để cập nhật dữ liệu trong mô hình dữ liệu
Power Pivot không tự động phát hiện các thay đổi trong nguồn dữ liệu bên ngoài.
Bạn có thể làm mới dữ liệu theo cách thủ công từ cửa sổ Power Pivot vào các khoảng thời gian mà bạn có thể chỉ định.
Bạn có thể lên lịch làm mới dữ liệu tự động từ các nguồn bên ngoài, nếu bạn đã xuất bản sổ làm việc lên site SharePoint.
Để biết chi tiết về những điều này, hãy tham khảo chương - Updating Data in Data Model.
Tính toán lại các công thức DAX
Tính toán lại công thức DAX là một nhiệm vụ quan trọng, bởi vì trong quá trình tính toán lại, các phụ thuộc cột được kiểm tra và bạn sẽ được thông báo nếu cột đã thay đổi, nếu dữ liệu không hợp lệ hoặc nếu lỗi đã xuất hiện trong công thức DAX đã từng hoạt động.
Tính toán lại có thể ảnh hưởng đến hiệu suất theo những cách sau:
Đối với một cột được tính toán, kết quả của công thức DAX phải luôn được tính toán lại cho toàn bộ cột, bất cứ khi nào bạn thay đổi công thức DAX.
Đối với trường được tính toán, kết quả của công thức DAX không được tính cho đến khi trường được tính toán được đặt trong ngữ cảnh của PivotTable hoặc PivotChart. Công thức DAX sẽ được tính toán lại khi bạn thay đổi bất kỳ tiêu đề hàng hoặc cột nào ảnh hưởng đến bộ lọc trên dữ liệu hoặc khi bạn làm mới PivotTable theo cách thủ công.
Trong DAX, việc tính toán lại các công thức có thể được thực hiện tự động hoặc thủ công.
Để tìm hiểu thêm về tính toán lại, hãy tham khảo chương - Recalculating DAX Formulas.
Excel DAX - Cập nhật dữ liệu trong mô hình dữ liệu
DAX được sử dụng để tính toán dữ liệu trong Mô hình Dữ liệu trong Excel Power Pivot. DAX cho phép các hoạt động báo cáo và lập mô hình dữ liệu được xử lý theo cách hiệu quả. Tuy nhiên, điều này yêu cầu cập nhật dữ liệu trong Mô hình dữ liệu theo thời gian để phản ánh dữ liệu hiện tại.
Bạn có thể nhập dữ liệu từ nguồn dữ liệu bên ngoài vào Mô hình Dữ liệu của sổ làm việc bằng cách thiết lập kết nối dữ liệu. Bạn có thể cập nhật dữ liệu từ nguồn bất cứ khi nào bạn chọn. Tùy chọn này hữu ích nếu bạn đang nhận dữ liệu từ cơ sở dữ liệu quan hệ có chứa thông tin bán hàng trực tiếp hoặc nguồn cấp dữ liệu được cập nhật nhiều lần trong ngày.
Các cách cập nhật dữ liệu khác nhau trong mô hình dữ liệu
Bạn có thể cập nhật dữ liệu trong Mô hình dữ liệu theo những cách sau:
- Đôi khi, làm mới dữ liệu trong Mô hình dữ liệu.
- Thực hiện các thay đổi đối với nguồn dữ liệu, chẳng hạn như thuộc tính kết nối.
- Cập nhật dữ liệu trong Mô hình dữ liệu sau khi dữ liệu nguồn đã thay đổi.
- Lọc dữ liệu để tải có chọn lọc các hàng từ bảng trong nguồn dữ liệu.
Làm mới dữ liệu trong mô hình dữ liệu
Ngoài việc nhận dữ liệu cập nhật từ một nguồn hiện có, bạn sẽ cần phải làm mới dữ liệu trong sổ làm việc của mình bất cứ khi nào bạn thực hiện thay đổi đối với giản đồ của dữ liệu nguồn. Những thay đổi này có thể bao gồm thêm cột hoặc bảng hoặc thay đổi các hàng được nhập.
Lưu ý rằng việc bổ sung dữ liệu, thay đổi dữ liệu hoặc chỉnh sửa bộ lọc luôn kích hoạt tính toán lại các công thức DAX phụ thuộc vào nguồn dữ liệu đó. Tham khảo chương - Tính toán lại công thức DAX để biết thêm chi tiết.
Bạn có hai kiểu làm mới dữ liệu trong Mô hình Dữ liệu -
Làm mới thủ công
Nếu bạn chọn tùy chọn làm mới thủ công, bạn có thể làm mới dữ liệu trong Mô hình Dữ liệu theo cách thủ công bất kỳ lúc nào. Bạn có thể làm mới tất cả dữ liệu, đây là dữ liệu mặc định hoặc bạn có thể chọn thủ công các bảng và cột để làm mới cho các nguồn dữ liệu riêng lẻ.
Làm mới tự động hoặc theo lịch trình
Nếu bạn đã xuất bản sổ làm việc của mình lên Thư viện PowerPivot hoặc site SharePoint hỗ trợ PowerPivot, bạn hoặc người quản trị SharePoint có thể tạo lịch để tự động cập nhật dữ liệu trong sổ làm việc. Trong trường hợp như vậy, bạn có thể lên lịch làm mới dữ liệu không cần giám sát trên máy chủ.
Làm mới theo cách thủ công nguồn dữ liệu hiện có
Bạn có thể làm mới dữ liệu của mình theo cách thủ công bất kỳ lúc nào, nếu bạn cần cập nhật dữ liệu từ nguồn dữ liệu hiện có hoặc lấy dữ liệu gần đây để thiết kế công thức DAX mới. Bạn có thể làm mới một bảng, tất cả các bảng chia sẻ cùng một kết nối dữ liệu hoặc tất cả các bảng trong Mô hình Dữ liệu.
Nếu bạn đã nhập dữ liệu từ nguồn dữ liệu quan hệ, chẳng hạn như SQL Server và Oracle, bạn có thể cập nhật tất cả các bảng liên quan trong một thao tác. Hoạt động tải dữ liệu mới hoặc cập nhật vào Mô hình dữ liệu thường kích hoạt tính toán lại các công thức DAX, cả hai công thức này có thể cần một thời gian để hoàn thành. Do đó, bạn nên biết về tác động tiềm ẩn trước khi thay đổi nguồn dữ liệu hoặc làm mới dữ liệu thu được từ nguồn dữ liệu.
Để làm mới dữ liệu cho một bảng hoặc tất cả các bảng trong Mô hình Dữ liệu, hãy làm như sau:
- Bấm vào tab Trang đầu trên Ruy-băng trong cửa sổ Power Pivot.
- Nhấp vào Làm mới.
- Nhấp vào Làm mới trong danh sách thả xuống để làm mới bảng đã chọn.
- Bấm Làm mới Tất cả trong danh sách thả xuống để làm mới tất cả các bảng.
Để làm mới dữ liệu cho tất cả các bảng sử dụng cùng một kết nối trong Mô hình Dữ liệu, hãy làm như sau:
- Bấm vào tab Trang đầu trên Ruy-băng trong cửa sổ Power Pivot.
- Bấm vào Kết nối Hiện có trong nhóm Lấy Dữ liệu Bên ngoài.
Hộp thoại Kết nối Hiện có xuất hiện.
- Chọn một kết nối.
- Nhấp vào nút Làm mới.
Hộp thoại Làm mới dữ liệu xuất hiện và thông tin tiến trình làm mới dữ liệu được hiển thị khi công cụ PowerPivot tải lại dữ liệu từ bảng đã chọn hoặc từ tất cả các bảng từ nguồn dữ liệu.
Có ba kết quả có thể xảy ra -
Success - Báo cáo về số lượng hàng được nhập vào mỗi bảng.
Error- Có thể xảy ra lỗi nếu cơ sở dữ liệu ngoại tuyến, bạn không còn quyền. Một bảng hoặc cột bị xóa hoặc đổi tên trong nguồn.
Cancelled - Điều này có nghĩa là Excel đã không đưa ra yêu cầu làm mới, có thể do làm mới bị tắt trên kết nối.
Nhấp vào nút Đóng.
Thay đổi nguồn dữ liệu
Để thay đổi dữ liệu trong Mô hình Dữ liệu, bạn có thể chỉnh sửa thông tin kết nối hoặc cập nhật định nghĩa của bảng và cột được sử dụng trong Mô hình Dữ liệu trong cửa sổ Power Pivot.
Bạn có thể thực hiện các thay đổi sau đối với các nguồn dữ liệu hiện có -
Kết nối
- Chỉnh sửa tên cơ sở dữ liệu hoặc tên máy chủ.
- Thay đổi tên của tệp văn bản nguồn, bảng tính hoặc nguồn cấp dữ liệu.
- Thay đổi vị trí của nguồn dữ liệu.
- Đối với các nguồn dữ liệu quan hệ, hãy thay đổi danh mục mặc định hoặc danh mục ban đầu.
- Thay đổi phương thức xác thực hoặc thông tin xác thực được sử dụng để truy cập dữ liệu.
- Chỉnh sửa các thuộc tính nâng cao trên nguồn dữ liệu.
Những cái bàn
- Thêm hoặc xóa bộ lọc trên dữ liệu.
- Thay đổi tiêu chí bộ lọc.
- Thêm hoặc xóa bảng.
- Thay đổi tên bảng.
- Chỉnh sửa ánh xạ giữa các bảng trong nguồn dữ liệu và các bảng trong Mô hình Dữ liệu.
- Chọn các cột khác nhau từ nguồn dữ liệu.
Cột
- Thay đổi tên cột.
- Thêm các cột mới.
- Xóa các cột khỏi Mô hình Dữ liệu (không ảnh hưởng đến nguồn dữ liệu).
Bạn có thể chỉnh sửa các thuộc tính của nguồn dữ liệu hiện có theo những cách sau:
Bạn có thể thay đổi thông tin kết nối, bao gồm tệp, nguồn cấp dữ liệu hoặc cơ sở dữ liệu được sử dụng làm nguồn, thuộc tính của nó hoặc các tùy chọn kết nối cụ thể của nhà cung cấp khác.
Bạn có thể thay đổi ánh xạ bảng và cột cũng như xóa các tham chiếu đến các cột không còn được sử dụng.
Bạn có thể thay đổi bảng, dạng xem hoặc cột mà bạn nhận được từ nguồn dữ liệu bên ngoài.
Sửa đổi kết nối với nguồn dữ liệu hiện có
Bạn có thể sửa đổi kết nối mà bạn đã tạo với nguồn dữ liệu bên ngoài bằng cách thay đổi nguồn dữ liệu bên ngoài được kết nối hiện tại sử dụng. Tuy nhiên, quy trình cần tuân theo tùy thuộc vào loại nguồn dữ liệu.
- Bấm vào tab Trang đầu trên Ruy-băng trong cửa sổ PowerPivot.
- Bấm vào Kết nối Hiện có trong nhóm Lấy Dữ liệu Bên ngoài.
Hộp thoại Kết nối Hiện có xuất hiện. Chọn kết nối mà bạn muốn sửa đổi.
Tùy thuộc vào loại nguồn dữ liệu bạn đang thay đổi, nhà cung cấp có thể khác nhau. Ngoài ra, các thuộc tính có sẵn có thể yêu cầu thay đổi. Hãy xem xét một ví dụ đơn giản về kết nối với sổ làm việc Excel có chứa dữ liệu.
Nhấp vào nút Chỉnh sửa. Hộp thoại Chỉnh sửa kết nối xuất hiện.
Bấm vào nút Duyệt qua để định vị cơ sở dữ liệu khác cùng loại (sổ làm việc Excel trong ví dụ này), nhưng có tên hoặc vị trí khác.
Nhấp vào nút Mở.
Tệp mới sẽ được chọn. Một thông báo xuất hiện cho biết rằng bạn đã sửa đổi thông tin kết nối và bạn cần lưu và làm mới các bảng để xác minh kết nối.
Nhấp vào nút Lưu. Bạn sẽ quay lại hộp thoại Kết nối Hiện tại.
Nhấp vào nút Làm mới. Hộp thoại Làm mới dữ liệu xuất hiện hiển thị tiến trình làm mới dữ liệu. Trạng thái làm mới dữ liệu sẽ được hiển thị. Tham khảo phần -Manually Refreshing an Existing Data Source để biết chi tiết.
Nhấp vào Đóng, sau khi làm mới dữ liệu thành công.
Bấm Đóng trong hộp thoại Kết nối Hiện có.
Chỉnh sửa ánh xạ bảng và cột (liên kết)
Để chỉnh sửa ánh xạ cột khi nguồn dữ liệu thay đổi, hãy làm như sau:
Bấm vào tab có chứa bảng bạn muốn sửa đổi trong cửa sổ Power Pivot.
Bấm vào tab Thiết kế trên Ruy-băng.
Nhấp vào Thuộc tính bảng.
Hộp thoại Chỉnh sửa Thuộc tính Bảng xuất hiện.
Bạn có thể quan sát những điều sau:
Tên của bảng đã chọn trong Mô hình Dữ liệu được hiển thị trong hộp Tên Bảng.
Tên của bảng tương ứng trong nguồn dữ liệu bên ngoài được hiển thị trong hộp Tên nguồn.
Có hai tùy chọn cho tên cột từ - Nguồn và Phương thức.
Nếu các cột được đặt tên khác nhau trong nguồn dữ liệu và trong Mô hình Dữ liệu, bạn có thể chuyển đổi giữa hai nhóm tên cột bằng cách chọn các tùy chọn này.
Bản xem trước của bảng đã chọn sẽ xuất hiện trong hộp thoại.
Bạn có thể chỉnh sửa những điều sau -
Để thay đổi bảng được sử dụng làm nguồn dữ liệu, hãy chọn một bảng khác với bảng đã chọn trong danh sách thả xuống Tên nguồn.
Thay đổi ánh xạ cột nếu cần -
Để thêm một cột có trong nguồn nhưng không có trong Mô hình Dữ liệu, hãy chọn hộp kiểm bên cạnh tên cột. Lặp lại cho tất cả các cột sẽ được thêm vào. Dữ liệu thực tế sẽ được tải vào Mô hình dữ liệu, vào lần tiếp theo bạn làm mới.
Nếu một số cột trong Mô hình Dữ liệu không còn khả dụng trong nguồn dữ liệu hiện tại, một thông báo sẽ xuất hiện trong khu vực thông báo liệt kê các cột không hợp lệ. Bạn không cần phải làm bất cứ điều gì.
Nhấp vào nút Lưu.
Khi bạn lưu nhóm thuộc tính bảng hiện tại, bạn sẽ nhận được thông báo - Vui lòng đợi. Sau đó, số hàng được truy xuất sẽ được hiển thị.
Trong bảng trong Mô hình Dữ liệu, mọi cột không hợp lệ sẽ tự động bị loại bỏ và các cột mới được thêm vào.
Thay đổi tên cột và kiểu dữ liệu
Bạn có thể thay đổi tên của một cột trong bảng trong Mô hình Dữ liệu như sau:
Bấm đúp vào tiêu đề của cột. Tên của cột trong tiêu đề sẽ được đánh dấu.
Nhập tên cột mới, ghi đè tên cũ. Ngoài ra, bạn có thể thay đổi tên của một cột trong bảng trong Mô hình Dữ liệu như sau:
Chọn cột bằng cách nhấp vào tiêu đề của nó.
Bấm chuột phải vào cột.
Nhấp vào Đổi tên cột trong danh sách thả xuống.
Tên của cột trong tiêu đề sẽ được đánh dấu. Nhập tên cột mới, ghi đè tên cũ.
Như bạn đã học, tất cả các giá trị trong một cột trong bảng trong Mô hình Dữ liệu phải có cùng kiểu dữ liệu.
Để thay đổi kiểu dữ liệu của một cột, hãy làm như sau:
Chọn cột mà bạn muốn thay đổi bằng cách nhấp vào tiêu đề của nó.
Bấm vào tab Trang đầu trên Ruy-băng.
Bấm vào các điều khiển trong nhóm Định dạng để sửa đổi kiểu dữ liệu và định dạng của cột.
Thêm / thay đổi bộ lọc thành nguồn dữ liệu
Bạn có thể thêm bộ lọc vào nguồn dữ liệu khi nhập dữ liệu để hạn chế số hàng trong bảng trong Mô hình dữ liệu. Sau đó, bạn có thể thêm nhiều hàng hơn hoặc giảm số hàng trong bảng trong Mô hình Dữ liệu bằng cách thay đổi bộ lọc mà bạn đã xác định trước đó.
Thêm bộ lọc vào nguồn dữ liệu trong khi nhập
Để thêm bộ lọc mới vào nguồn dữ liệu trong quá trình nhập dữ liệu, hãy thực hiện như sau:
- Bấm vào tab Trang đầu trên Ruy-băng trong cửa sổ Power Pivot.
- Bấm vào một trong các nguồn dữ liệu trong nhóm Lấy Dữ liệu Bên ngoài.
Hộp thoại Trình hướng dẫn Nhập Bảng xuất hiện.
- Thực hiện bước - Chọn Bảng và Chế độ xem.
- Chọn một bảng và sau đó nhấp vào Xem trước & Lọc.
Hộp thoại Xem trước Bảng đã Chọn xuất hiện.
- Nhấp vào cột mà bạn muốn áp dụng bộ lọc.
- Bấm vào mũi tên xuống ở bên phải của tiêu đề cột.
Để thêm bộ lọc, hãy thực hiện một trong các thao tác sau:
Trong danh sách các giá trị cột, hãy chọn hoặc xóa một hoặc nhiều giá trị để lọc và sau đó bấm OK.
Tuy nhiên, nếu số lượng giá trị cực lớn, các mục riêng lẻ có thể không được hiển thị trong danh sách. Thay vào đó, bạn sẽ thấy thông báo - "Quá nhiều mục để hiển thị."
Nhấp vào Bộ lọc số hoặc Bộ lọc văn bản (tùy thuộc vào kiểu dữ liệu của cột).
Sau đó, nhấp vào một trong các lệnh của toán tử so sánh (chẳng hạn như Bằng) hoặc nhấp vào Bộ lọc tùy chỉnh. Trong hộp thoại Bộ lọc tùy chỉnh, tạo bộ lọc và sau đó bấm OK.
Note - Nếu bạn mắc lỗi ở bất kỳ giai đoạn nào, hãy nhấp vào nút Clear Row Filters và bắt đầu lại.
- Bấm OK. Bạn sẽ trở lại trang Chọn Bảng và Chế độ xem của Trình hướng dẫn Nhập Bảng.
Như bạn có thể quan sát, trong cột - Chi tiết Bộ lọc, một liên kết Bộ lọc được Áp dụng xuất hiện cho cột mà bạn đã xác định bộ lọc.
Bạn có thể nhấp vào liên kết để xem biểu thức bộ lọc được tạo bởi trình hướng dẫn. Tuy nhiên, cú pháp cho mỗi biểu thức bộ lọc phụ thuộc vào nhà cung cấp và bạn không thể chỉnh sửa nó.
- Nhấp vào Hoàn tất để nhập dữ liệu với các bộ lọc được áp dụng.
- Đóng Trình hướng dẫn Nhập Bảng.
Thay đổi Bộ lọc thành Nguồn dữ liệu Hiện tại
Sau khi bạn đã nhập dữ liệu, bạn có thể phải cập nhật nó theo thời gian, bằng cách thêm nhiều hàng hơn hoặc bằng cách hạn chế các hàng hiện có trong bảng. Trong trường hợp như vậy, bạn có thể thay đổi các bộ lọc hiện có trên bảng hoặc thêm các bộ lọc mới.
Bấm vào tab Trang đầu trên Ruy-băng trong cửa sổ Power Pivot.
Bấm vào Kết nối Hiện có trong nhóm Lấy Dữ liệu Bên ngoài. Hộp thoại Kết nối Hiện có xuất hiện.
Bấm vào kết nối có chứa bảng mà bạn phải thay đổi bộ lọc.
Nhấp vào nút Mở.
Bạn sẽ vào được hộp thoại Table Import Wizard. Lặp lại các bước trong phần trước để lọc các cột.
Excel DAX - Tính toán lại công thức DAX
Recalculation of a DAX formulađược yêu cầu phản ánh những thay đổi trong dữ liệu và những thay đổi trong chính công thức. Tuy nhiên, việc tính toán lại công thức DAX liên quan đến chi phí hiệu suất.
Ngay cả khi đó, để có được kết quả chính xác, việc tính toán lại là điều cần thiết. Trong quá trình tính toán lại, các phụ thuộc cột được kiểm tra và bạn sẽ được thông báo nếu cột đã thay đổi, nếu dữ liệu không hợp lệ hoặc nếu lỗi đã xuất hiện trong công thức DAX đã từng hoạt động.
Các loại tính toán lại
Bạn có hai tùy chọn để tính toán lại các công thức DAX -
- Chế độ tính toán lại tự động (mặc định)
- Chế độ tính toán lại thủ công
Theo mặc định, Power Pivot tự động tính toán lại theo yêu cầu trong khi tối ưu hóa thời gian cần thiết để xử lý. Tuy nhiên, bạn có thể chọn cập nhật các phép tính theo cách thủ công, nếu bạn đang làm việc với các công thức phức tạp hoặc tập dữ liệu rất lớn và muốn kiểm soát thời gian cập nhật.
Cả hai chế độ tính toán lại công thức DAX tự động và thủ công đều có lợi thế. Tuy nhiên, cách được khuyến nghị là sử dụng chế độ tính toán lại tự động. Bằng cách này, bạn có thể giữ cho dữ liệu Power Pivot được đồng bộ hóa và ngăn ngừa các sự cố do xóa dữ liệu, thay đổi tên hoặc kiểu dữ liệu hoặc thiếu phần phụ thuộc.
Tự động tính toán lại công thức DAX
Nếu bạn chọn chế độ mặc định của tính toán lại công thức DAX, tức là tính toán lại tự động, bất kỳ thay đổi nào đối với dữ liệu có thể khiến kết quả của bất kỳ công thức DAX nào thay đổi sẽ kích hoạt tính toán lại toàn bộ cột có chứa công thức DAX.
Những thay đổi sau đây luôn yêu cầu tính toán lại các công thức DAX:
Giá trị từ nguồn dữ liệu bên ngoài đã được làm mới.
Bản thân công thức DAX đã được thay đổi.
Tên của bảng hoặc cột được tham chiếu trong công thức DAX đã được thay đổi.
Mối quan hệ giữa các bảng đã được thêm, sửa đổi hoặc xóa.
Các trường được tính toán mới hoặc các cột được tính toán đã được thêm vào.
Các thay đổi đã được thực hiện đối với các công thức DAX khác trong sổ làm việc, do đó, các cột hoặc phép tính phụ thuộc vào các công thức DAX đó cần được tính toán lại.
Hàng đã được chèn hoặc xóa trong bảng.
Bạn đã áp dụng bộ lọc yêu cầu thực hiện truy vấn để cập nhật tập dữ liệu. Bộ lọc có thể đã được áp dụng trong công thức DAX hoặc là một phần của PivotTable hoặc PivotChart.
Khi nào sử dụng Chế độ tính toán lại thủ công?
Bạn có thể sử dụng chế độ tính toán lại thủ công cho đến khi bạn sẵn sàng với tất cả các công thức DAX cần thiết trong sổ làm việc của mình. Bằng cách này, bạn có thể tránh phải chịu chi phí tính toán kết quả công thức trên sổ làm việc vẫn ở trạng thái nháp.
Bạn có thể sử dụng tính toán lại thủ công các công thức DAX trong các điều kiện sau:
Bạn đang thiết kế công thức DAX bằng cách sử dụng mẫu và muốn thay đổi tên của các cột và bảng được sử dụng trong công thức DAX trước khi bạn xác thực nó.
Bạn biết rằng một số dữ liệu trong sổ làm việc đã thay đổi nhưng bạn đang làm việc với một cột khác không thay đổi, vì vậy bạn muốn hoãn tính toán lại.
Bạn đang làm việc trong một sổ làm việc có nhiều phụ thuộc và muốn trì hoãn việc tính toán lại cho đến khi bạn chắc chắn rằng tất cả các thay đổi cần thiết đã được thực hiện.
Tuy nhiên, bạn nên lưu ý rằng miễn là sổ làm việc được định cấu hình ở chế độ tính toán lại thủ công, bất kỳ xác nhận hoặc kiểm tra công thức nào sẽ không được thực hiện. Điều này sẽ dẫn đến những điều sau:
Bất kỳ công thức mới nào bạn thêm vào sổ làm việc sẽ được gắn cờ là có lỗi.
Không có kết quả nào sẽ xuất hiện trong các cột được tính toán mới.
Định cấu hình sổ làm việc để tính toán lại thủ công
Như bạn đã học, tính toán lại tự động là chế độ mặc định trong Mô hình Dữ liệu của bất kỳ sổ làm việc nào. Để định cấu hình sổ làm việc cho tính toán lại thủ công, hãy làm như sau:
- Bấm vào tab Thiết kế trên Ruy-băng trong cửa sổ Power Pivot.
- Bấm vào Tùy chọn Tính toán trong nhóm Tính toán.
- Nhấp vào Chế độ tính toán thủ công trong danh sách thả xuống.
Tính toán lại công thức DAX theo cách thủ công
Để tính toán lại các công thức DAX theo cách thủ công, hãy làm như sau:
- Bấm vào tab Thiết kế trên Ruy-băng trong cửa sổ Power Pivot.
- Bấm vào trường Tùy chọn Tính toán trong nhóm Tính toán.
- Nhấp vào trường Tính toán ngay trong danh sách thả xuống.
Khắc phục sự cố Tính toán lại Công thức DAX
Bất cứ khi nào thay đổi xảy ra trong Mô hình Dữ liệu của sổ làm việc của bạn, Power Pivot sẽ thực hiện phân tích dữ liệu hiện có để xác định xem có cần tính toán lại hay không và thực hiện cập nhật theo cách hiệu quả nhất có thể.
Power Pivot xử lý những điều sau đây, trong quá trình tính toán lại các công thức DAX -
- Dependencies
- Trình tự tính toán lại cho các cột phụ thuộc
- Transactions
- Tính toán lại các hàm biến động
Sự phụ thuộc
Khi một cột phụ thuộc vào một cột khác và nội dung của cột khác đó thay đổi theo bất kỳ cách nào, tất cả các cột liên quan có thể cần được tính toán lại.
Power Pivot luôn thực hiện tính toán lại hoàn chỉnh cho một bảng, vì tính toán lại hoàn chỉnh hiệu quả hơn việc kiểm tra các giá trị đã thay đổi. Những thay đổi kích hoạt tính toán lại có thể bao gồm xóa cột, thay đổi kiểu dữ liệu số của cột hoặc thêm cột mới. Những thay đổi này được coi là những thay đổi lớn. Tuy nhiên, những thay đổi có vẻ nhỏ nhặt, chẳng hạn như thay đổi tên của cột cũng có thể kích hoạt tính toán lại. Điều này là do tên của các cột được sử dụng làm số nhận dạng trong công thức DAX.
Trong một số trường hợp, Power Pivot có thể xác định rằng các cột có thể bị loại trừ khỏi tính toán lại.
Trình tự tính toán lại cho các cột phụ thuộc
Sự phụ thuộc được tính toán trước khi tính toán lại. Nếu có nhiều cột phụ thuộc vào nhau, Power Pivot tuân theo trình tự của các phụ thuộc. Điều này đảm bảo rằng các cột được xử lý theo đúng thứ tự ở tốc độ tối đa.
Giao dịch
Các hoạt động tính toán lại hoặc làm mới dữ liệu diễn ra như một giao dịch. Điều này có nghĩa là nếu bất kỳ phần nào của hoạt động làm mới không thành công, các hoạt động còn lại sẽ được khôi phục lại. Điều này nhằm đảm bảo rằng dữ liệu không bị để ở trạng thái đã được xử lý một phần. Tuy nhiên, bạn không thể quản lý các giao dịch như khi thực hiện trong cơ sở dữ liệu quan hệ hoặc tạo các điểm kiểm tra.
Tính toán lại các chức năng dễ bay hơi
Các hàm DAX như NOW, RAND hoặc TODAY không có giá trị cố định và được gọi là các hàm biến động. Nếu các hàm DAX như vậy được sử dụng trong một cột được tính toán, thì việc thực hiện truy vấn hoặc lọc thường sẽ không khiến chúng được đánh giá lại để tránh các vấn đề về hiệu suất.
Kết quả cho các hàm DAX này chỉ được tính toán lại khi toàn bộ cột được tính toán lại. Những tình huống này bao gồm làm mới từ nguồn dữ liệu bên ngoài hoặc chỉnh sửa thủ công dữ liệu gây ra đánh giá lại các công thức DAX có chứa các hàm này.
Tuy nhiên, các hàm như vậy sẽ luôn được tính toán lại nếu các hàm được sử dụng trong định nghĩa của Trường Tính toán.
Excel DAX - Lỗi công thức
Bạn có thể gặp lỗi khi viết DAX formulasvới cú pháp sai. Các trường được tính toán và các cột được tính toán có thể chứa các hàm DAX yêu cầu một loại đối số cụ thể. Đối số của các hàm DAX có thể là bảng, cột hoặc các hàm DAX khác (các hàm DAX lồng nhau). Vì các hàm DAX có thể trả về các bảng và cột, nên cần kiểm tra xem có đúng loại đối số được truyền cho các hàm DAX hay không.
Lỗi công thức DAX có thể là lỗi cú pháp hoặc lỗi ngữ nghĩa. Các lỗi có thể xảy ra tại thời điểm thiết kế hoặc tại thời điểm chạy.
Trong chương này, bạn sẽ tìm hiểu về một số lỗi DAX phổ biến, nguyên nhân của chúng và cách khắc phục những lỗi đó.
Lỗi DAX: Tính toán bị hủy bỏ
Lỗi sau có thể xảy ra khi cố gắng tạo (thời gian thiết kế) hoặc sử dụng (thời gian chạy) một trường được tính toán với chức năng thông minh thời gian DAX. Trong mỗi trường hợp, phạm vi ngày không liền kề sẽ được chuyển đến hàm thông minh thời gian.
“Lỗi DAX: CALCULATION ABORTED: MdxScript (instance) (00, 0) Hàm 'DATEADD' chỉ hoạt động với các lựa chọn ngày liền kề."
Nguyên nhân lúc Run-time
Lỗi này có thể được hiển thị khi trường được tính toán với chức năng thông minh thời gian DAX được đặt trong vùng GIÁ TRỊ của PivotTable và các trường ngày như tháng hoặc quý được chọn làm bộ lọc hoặc bộ lọc trước khi chọn năm. Ví dụ: nếu bạn có dữ liệu của ba năm - 2014, 2015 và 2016 và bạn cố gắng chỉ sử dụng tháng March mà không chọn trường Year, thì các giá trị không phải là giá trị dữ liệu liền kề và bạn sẽ gặp lỗi.
Làm thế nào để sửa lỗi lúc chạy?
Trong ví dụ trên,
Đầu tiên, thêm Năm làm bộ cắt hoặc bộ lọc và chọn một năm.
Sau đó, thêm Tháng hoặc Quý dưới dạng bộ cắt hoặc bộ lọc.
Sau đó, chọn một hoặc nhiều tháng hoặc quý để cắt hoặc lọc cho năm đã chọn.
Nguyên nhân tại thời điểm thiết kế
Hàm thông minh thời gian DAX yêu cầu cột ngày được chỉ định cho đối số ngày. Cột ngày phải có một phạm vi ngày liền nhau. Lỗi này có thể được trả lại, nếu có giá trị ngày trong một hoặc nhiều hàng trong cột ngày không tiếp giáp với giá trị dữ liệu trong các hàng trước đó và kế tiếp.
Nếu bạn đã nhập bảng chứa ngày tháng từ nguồn dữ liệu, hãy nhớ rằng nhiều tổ chức chạy quy trình đặc biệt quét các bảng trong cơ sở dữ liệu để tìm các giá trị không hợp lệ và thay thế các bảng đó bằng một giá trị cụ thể. Nghĩa là, nếu ngày không hợp lệ được tìm thấy, ngày đó sẽ được gán một giá trị ngày cụ thể có thể không tiếp giáp với các giá trị dữ liệu khác trong cột.
Làm thế nào để sửa lỗi này tại thời điểm thiết kế?
Làm như sau để sửa lỗi tại thời điểm thiết kế -
Nếu bảng ngày của bạn được nhập từ nguồn dữ liệu, hãy sử dụng Làm mới trong cửa sổ Power Pivot để nhập lại bất kỳ thay đổi nào được tìm thấy tại nguồn.
Kiểm tra các giá trị trong cột ngày của bạn để đảm bảo rằng chúng theo thứ tự liền kề. Nếu bất kỳ giá trị nào được tìm thấy không đúng vị trí, nó sẽ phải được sửa tại nguồn và bảng ngày tháng sẽ phải được làm mới.
Tạo bảng ngày và cột ngày riêng biệt trong Mô hình dữ liệu của bạn. Chỉ định cột ngày mới làm đối số ngày trong công thức gây ra lỗi. Bảng ngày dễ dàng tạo và thêm vào Mô hình Dữ liệu.
Lỗi ngữ nghĩa DAX - Một ví dụ
Lỗi DAX sau đây là lỗi ngữ nghĩa -
“Một hàm 'CALCULATE' đã được sử dụng trong một biểu thức true-false được sử dụng như một biểu thức lọc bảng. Điều này không được phép."
Nguyên nhân
Lỗi này có thể xuất hiện khi không thể sử dụng một hoặc nhiều biểu thức bộ lọc trong ngữ cảnh của trường được tính toán hoặc biểu thức cột được tính toán.
Trong hầu hết các trường hợp, lỗi này là do biểu thức bộ lọc được chỉ định làm đối số cho hàm DAX CALCULATE. Hàm CALCULATE yêu cầu các bộ lọc được xác định dưới dạng biểu thức Boolean hoặc biểu thức bảng.
Làm thế nào để sửa chữa những lỗi như vậy?
Bạn có thể sửa các lỗi như vậy bằng cách sử dụng hàm DAX FILTER để xác định bộ lọc dưới dạng biểu thức bảng, sau đó có thể được sử dụng làm đối số cho hàm DAX CALCULATE.
Excel DAX - Thông minh về thời gian
DAX có một tính năng quan trọng và mạnh mẽ, được gọi là Time Intelligence. Thông minh về thời gian cho phép bạn viết công thức DAX tham chiếu đến khoảng thời gian để sử dụng trong PivotTables.
DAX có 35 chức năng thông minh thời gian đặc biệt để tổng hợp và so sánh dữ liệu theo thời gian. Tuy nhiên, các hàm DAX này có một số ràng buộc đối với dữ liệu mà bạn cần hiểu và làm việc thận trọng để tránh lỗi.
Tại sao Trí tuệ thời gian lại làm cho DAX trở nên mạnh mẽ?
Chức năng thông minh thời gian hoạt động với dữ liệu liên tục thay đổi, tùy thuộc vào ngữ cảnh bạn chọn trong hình ảnh hóa PivotTables và Power View. Như bạn đã biết, hầu hết các phân tích dữ liệu bao gồm việc tóm tắt dữ liệu theo các khoảng thời gian, so sánh các giá trị dữ liệu trong các khoảng thời gian, hiểu xu hướng và đưa ra quyết định dựa trên các dự báo trong tương lai.
Ví dụ: bạn có thể muốn tính tổng số tiền bán hàng cho tháng trước theo sản phẩm và so sánh tổng số với các tháng khác trong năm tài chính. Điều này có nghĩa là bạn phải sử dụng ngày tháng như một cách để nhóm và tổng hợp các giao dịch bán hàng trong một khoảng thời gian cụ thể.
Đây là nơi bạn có thể quan sát sức mạnh của DAX. Bạn có thể sử dụng các hàm thông minh thời gian DAX để xác định các trường được tính toán giúp bạn phân tích dữ liệu theo thời gian mà không cần phải thay đổi lựa chọn ngày trong bảng tổng hợp. Điều này làm cho công việc của bạn dễ dàng hơn. Hơn nữa, bạn có thể xây dựng PivotTable mà không thể theo bất kỳ cách nào khác.
Yêu cầu đối với các chức năng thông minh thời gian DAX
Các chức năng thông minh thời gian DAX có một số yêu cầu nhất định. Nếu các yêu cầu này không được đáp ứng, bạn có thể gặp lỗi hoặc chúng có thể không hoạt động bình thường. Do đó, bạn cũng có thể coi các yêu cầu này là quy tắc hoặc ràng buộc. Sau đây là một số yêu cầu / quy tắc / ràng buộc chức năng thông minh thời gian DAX:
Bạn cần có một bảng ngày trong Mô hình Dữ liệu của mình.
Bảng ngày phải bao gồm một cột được DAX coi là cột Ngày. Bạn có thể đặt tên cột theo cách bạn muốn, nhưng nó phải tuân thủ các điều kiện sau: o Cột ngày phải chứa một nhóm ngày liền kề bao gồm mỗi ngày trong khoảng thời gian bạn đang phân tích dữ liệu.
Mỗi ngày phải tồn tại một lần và chỉ một lần trong cột ngày.
Bạn không thể bỏ qua bất kỳ ngày nào (Ví dụ: bạn không thể bỏ qua các ngày cuối tuần).
Các chức năng thông minh thời gian của DAX chỉ hoạt động trên một lịch chuẩn và giả sử bắt đầu của năm là ngày 1 tháng 1 và cuối năm là ngày 31 tháng 12, với các tháng trong năm và các ngày trong mỗi tháng theo năm dương lịch.
Tuy nhiên, bạn có thể tùy chỉnh lịch chuẩn cho các năm tài chính khác nhau. Một thực tiễn tốt là xác minh các yêu cầu trên trước khi sử dụng chức năng thông minh bất kỳ lúc nào.
Để biết thêm chi tiết về bảng ngày và cách sử dụng chúng trong công thức DAX, hãy tham khảo hướng dẫn = Lập mô hình dữ liệu với DAX trong thư viện hướng dẫn này.
Chức năng thông minh thời gian DAX - Danh mục
Các chức năng của DAX Time Intelligence có thể được phân loại như sau:
- Các hàm DAX trả về một ngày duy nhất.
- Hàm DAX trả về bảng ngày tháng.
- Hàm DAX đánh giá các biểu thức trong một khoảng thời gian.
Các chức năng DAX trả về một ngày duy nhất
Các hàm DAX trong danh mục này trả về một ngày duy nhất.
Có 10 hàm DAX trong danh mục này -
Sr.No. | Hàm DAX & Giá trị trả về |
---|---|
1 | FIRSTDATE (Date_Column) Trả về ngày đầu tiên trong Date_Column trong ngữ cảnh hiện tại. |
2 | LASTDATE (Date_Column) Trả về ngày cuối cùng trong Date_Column trong ngữ cảnh hiện tại. |
3 | FIRSTNONBLANK (Date_Column, Expression) Trả về ngày đầu tiên trong đó biểu thức có giá trị không trống. |
4 | LASTNONBLANK (Date_Column, Expression) Trả về ngày cuối cùng nơi biểu thức có giá trị không trống. |
5 | STARTOFMONTH (Date_Column) Trả về ngày đầu tiên của tháng trong ngữ cảnh hiện tại. |
6 | ENDOFMONTH (Date_Column) Trả về ngày cuối cùng của tháng trong ngữ cảnh hiện tại. |
7 | STARTOFQUARTER (Date_Column) Trả về ngày đầu tiên của một phần tư trong ngữ cảnh hiện tại. |
số 8 | ENDOFQUARTER (Date_Column) Trả về ngày cuối cùng của một phần tư trong ngữ cảnh hiện tại. |
9 | STARTOFYEAR (Date_Column, [YE_Date]) Trả về ngày đầu tiên của năm trong ngữ cảnh hiện tại. |
10 | ENDOFYEAR (Date_Column, [YE_Date]) Trả về ngày cuối cùng của một năm trong ngữ cảnh hiện tại. |
Các hàm DAX trả về một bảng ngày tháng
Các hàm DAX trong danh mục này trả về một bảng ngày tháng. Các hàm này chủ yếu sẽ được sử dụng làm đối số SetFilter cho hàm DAX - CALCULATE.
Có 16 hàm DAX trong danh mục này. Tám (8) trong số các hàm DAX này là các hàm “trước đó” và “tiếp theo”.
Các hàm “trước đó” và “tiếp theo” bắt đầu bằng cột ngày trong ngữ cảnh hiện tại và tính ngày, tháng, quý hoặc năm trước đó hoặc tiếp theo.
Các chức năng “trước đó” hoạt động ngược lại so với ngày đầu tiên trong ngữ cảnh hiện tại và các chức năng “tiếp theo” chuyển tiếp từ ngày cuối cùng trong ngữ cảnh hiện tại.
Các hàm “trước đó” và “tiếp theo” trả về ngày kết quả dưới dạng một bảng cột duy nhất.
Sr.No. | Hàm DAX & Giá trị trả về |
---|---|
1 | PREVIOUSDAY (Date_Column) Trả về một bảng có chứa một cột gồm tất cả các ngày đại diện cho ngày trước ngày đầu tiên trong Date_Column trong ngữ cảnh hiện tại. |
2 | NEXTDAY (Date_Column) Trả về một bảng chứa một cột gồm tất cả các ngày từ ngày tiếp theo, dựa trên ngày đầu tiên được chỉ định trong Date_Column trong ngữ cảnh hiện tại. |
3 | PREVIOUSMONTH (Date_Column) Trả về một bảng có chứa một cột gồm tất cả các ngày từ tháng trước, dựa trên ngày đầu tiên trong Date_Column trong ngữ cảnh hiện tại. |
4 | NEXTMONTH (Date_Column) Trả về một bảng chứa một cột gồm tất cả các ngày trong tháng tiếp theo, dựa trên ngày đầu tiên trong Date_Column trong ngữ cảnh hiện tại. |
5 | PREVIOUSQUARTER (Date_Column) Trả về một bảng có chứa một cột của tất cả các ngày từ quý trước, dựa trên ngày đầu tiên trong Date_Column trong ngữ cảnh hiện tại. |
6 | NEXTQUARTER (Date_Column) Trả về một bảng chứa một cột gồm tất cả các ngày trong quý tiếp theo, dựa trên ngày đầu tiên được chỉ định trong Date_Column trong ngữ cảnh hiện tại. |
7 | PREVIOUSYEAR (Date_Column, [YE_Date]) Trả về một bảng có chứa một cột của tất cả các ngày từ năm trước, cho ngày cuối cùng trong Date_Column trong ngữ cảnh hiện tại. |
số 8 | NEXTYEAR (Date_Column, [YE_Date]) Trả về một bảng chứa một cột của tất cả các ngày trong năm tiếp theo, dựa trên ngày đầu tiên trong Date_Column trong ngữ cảnh hiện tại. |
Bốn (4) hàm DAX tính toán một tập hợp các ngày trong một khoảng thời gian. Các hàm này thực hiện các phép tính bằng cách sử dụng ngày cuối cùng trong ngữ cảnh hiện tại.
Sr.No. | Hàm DAX & Giá trị trả về |
---|---|
1 | DATESMTD (Date_Column) Trả về một bảng có chứa một cột ngày của tháng cho đến nay, trong ngữ cảnh hiện tại. |
2 | DATESQTD (Date_Column) Trả về một bảng có chứa một cột ngày của quý cho đến nay, trong ngữ cảnh hiện tại. |
3 | DATESYTD (Date_Column, [YE_Date]) Trả về một bảng có chứa một cột ngày của năm tính đến thời điểm hiện tại, trong ngữ cảnh hiện tại. |
4 | SAMEPERIODLASTYEAR (Date_Column) Trả về một bảng chứa một cột ngày được dịch chuyển ngược một năm so với các ngày trong Date_Column được chỉ định, trong ngữ cảnh hiện tại. Note- SAMEPERIODLASTYEAR yêu cầu ngữ cảnh hiện tại phải chứa một nhóm ngày liền kề. Nếu ngữ cảnh hiện tại không phải là một tập hợp ngày liền nhau, thì SAMEPERIODLASTYEAR sẽ trả về một lỗi. |
Bốn (4) Hàm DAX được sử dụng để chuyển từ nhóm ngày trong ngữ cảnh hiện tại sang một nhóm ngày mới.
Các hàm DAX này mạnh hơn các hàm trước đó.
Các hàm DAX - DATEADD, DATESINPERIOD và PARALLELPERIOD thay đổi một số khoảng thời gian so với ngữ cảnh hiện tại. Khoảng thời gian có thể là ngày, tháng, quý hoặc năm, được biểu thị bằng các từ khóa - NGÀY, THÁNG, QUÝ và NĂM tương ứng.
Ví dụ:
Dịch chuyển lùi 2 ngày.
Tiến tới 5 tháng.
Tiến lên một tháng kể từ hôm nay.
Quay trở lại cùng một quý trong năm ngoái.
Hàm DAX - DATESBETWEEN tính toán bộ ngày giữa ngày bắt đầu và ngày kết thúc được chỉ định.
Nếu đối số hàm - số khoảng (giá trị nguyên) là dương, thì shift là tiến và nếu là âm, shift là lùi.
Sr.No. | Hàm DAX & Giá trị trả về |
---|---|
1 | DATEADD (Date_Column, Number_of_Intervals, Interval) Trả về một bảng có chứa một cột ngày tháng, được dịch chuyển tiến hoặc lùi theo thời gian theo số khoảng đã chỉ định từ các ngày trong ngữ cảnh hiện tại. |
2 | DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, Interval) Trả về một bảng có chứa một cột ngày bắt đầu bằng ngày bắt đầu và tiếp tục cho số_ khoảng_thời gian đã chỉ định. |
3 | PARALLELPERIOD (Date_Column, Number_of_Intervals, Interval) Trả về một bảng có chứa một cột ngày biểu thị một khoảng thời gian song song với các ngày trong Date_Column được chỉ định trong ngữ cảnh hiện tại, với các ngày được dịch chuyển một số khoảng tiến hoặc lùi theo thời gian. |
4 | DATESBETWEEN (Date_Column, Start_Date, End_Date) Trả về một bảng có chứa một cột ngày bắt đầu bằng start_date và tiếp tục cho đến end_date. |
Các hàm DAX đánh giá các biểu thức trong một khoảng thời gian
Các hàm DAX trong danh mục này đánh giá một biểu thức trong một khoảng thời gian cụ thể.
Có chín (9) hàm DAX trong danh mục này -
Ba (3) hàm DAX trong danh mục này có thể được sử dụng để đánh giá bất kỳ biểu thức nhất định nào trong một khoảng thời gian xác định.
Sr.No. | Hàm DAX & Giá trị trả về |
---|---|
1 | TOTALMTD (Expression, Date_Column, [SetFilter]) Đánh giá giá trị của biểu thức cho các ngày trong tháng cho đến nay, trong ngữ cảnh hiện tại. |
2 | TOTALQTD (Expression, Date_Column, [SetFilter]) Đánh giá giá trị của biểu thức cho các ngày trong quý cho đến nay, trong bối cảnh hiện tại. |
3 | TOTALYTD (Expression, Date_Column, [SetFilter], [YE_Date]) Đánh giá giá trị của biểu thức cho các ngày trong năm cho đến nay, trong bối cảnh hiện tại |
Sáu (6) hàm DAX trong danh mục này có thể được sử dụng để tính toán số dư đầu kỳ và số dư cuối kỳ.
Số dư đầu kỳ của bất kỳ kỳ nào cũng giống như số dư cuối kỳ của kỳ trước.
Số dư cuối kỳ bao gồm tất cả dữ liệu đến cuối kỳ, trong khi số dư đầu kỳ không bao gồm bất kỳ dữ liệu nào trong kỳ hiện tại.
Các hàm DAX này luôn trả về giá trị của một biểu thức được đánh giá cho một thời điểm cụ thể.
Thời điểm chúng tôi quan tâm luôn là giá trị ngày cuối cùng có thể có trong một khoảng thời gian theo lịch.
Số dư đầu kỳ dựa trên ngày cuối cùng của kỳ trước, trong khi số dư cuối kỳ dựa trên ngày cuối cùng trong kỳ hiện tại.
Khoảng thời gian hiện tại luôn được xác định bởi ngày cuối cùng trong bối cảnh ngày hiện tại.
Sr.No. | Hàm DAX & Giá trị trả về |
---|---|
1 | OPENINGBALANCEMONTH (Expression, Date_Column, [SetFilter]) Đánh giá biểu thức vào ngày đầu tiên của tháng trong ngữ cảnh hiện tại. |
2 | CLOSINGBALANCEMONTH (Expression, Date_Column, [SetFilter]) Đánh giá biểu thức vào ngày cuối cùng của tháng trong ngữ cảnh hiện tại. |
3 | OPENINGBALANCEQUARTER (Expression, Date_Column, [SetFilter]) Đánh giá biểu hiện vào ngày đầu tiên của quý, trong bối cảnh hiện tại. |
4 | CLOSINGBALANCEQUARTER (Expression, Date_Column, [SetFilter]) Đánh giá biểu thức vào ngày cuối cùng của quý trong bối cảnh hiện tại. |
5 | OPENINGBALANCEYEAR (Expression, Date_Column, [SetFilter], [YE_Date]) Đánh giá biểu thức vào ngày đầu tiên của năm trong bối cảnh hiện tại. |
6 | CLOSINGBALANCEYEAR (Expression, Date_Column, [SetFilter], [YE_Date]) Đánh giá biểu thức vào ngày cuối cùng của năm trong bối cảnh hiện tại. |
DAX có sức mạnh filter functionskhác với các hàm Excel. Các hàm tra cứu hoạt động bằng cách sử dụng các bảng và các mối quan hệ, giống như một cơ sở dữ liệu. Các chức năng lọc cho phép bạn thao tác ngữ cảnh dữ liệu để tạo các phép tính động.
Note- Các hàm lọc DAX trả về bảng không thêm bảng vào Mô hình Dữ liệu. Bảng kết quả được sử dụng làm đối số trong một hàm DAX khác. Có nghĩa là, các hàm DAX như vậy được sử dụng như các hàm lồng nhau với các hàm DAX khác.
Trong phần tiếp theo, bạn sẽ tìm hiểu những chức năng của bộ lọc DAX mà bạn có thể sử dụng. Để biết thêm chi tiết về các hàm này, hãy tham khảo hướng dẫn - Các hàm DAX trong thư viện hướng dẫn này.
Chức năng bộ lọc DAX
Sau đây là các chức năng của Bộ lọc DAX -
Sr.No. | Chức năng DAX & Chức năng này làm gì? |
---|---|
1 | ADDMISSINGITEMS (<showAllColumn>, [<showAllColumn>] …, <table>, <groupingColumn>, [<groupingColumn>] …, [filterTable] …) Thêm kết hợp các mục từ nhiều cột vào một bảng nếu chúng chưa tồn tại. Việc xác định tổ hợp mục nào cần thêm dựa trên việc tham chiếu các cột nguồn chứa tất cả các giá trị có thể có cho các cột. Để xác định sự kết hợp của các mục từ các cột khác nhau để đánh giá -
|
2 | ALL ( {<table> | <column>, [<column>], [<column>], … }) Trả về tất cả các hàng trong bảng đã cho hoặc tất cả các giá trị trong các cột được chỉ định trong bảng, bỏ qua bất kỳ bộ lọc nào có thể đã được áp dụng. Chức năng này hữu ích để xóa các bộ lọc và tạo các phép tính trên tất cả các hàng trong bảng. |
3 | ALLEXCEPT (<table>, <column>, [<column>], …) Loại bỏ tất cả các bộ lọc ngữ cảnh trong bảng ngoại trừ các bộ lọc đã được áp dụng cho các cột được chỉ định làm đối số. Đối với TẤT CẢ, bạn có thể sử dụng chức năng này khi muốn loại bỏ các bộ lọc trên nhiều, nhưng không phải tất cả, cột trong bảng. |
4 | ALLNOBLANKROW (<table>|<column>) Từ bảng cha của một mối quan hệ, trả về -
Hàm bỏ qua bất kỳ bộ lọc ngữ cảnh nào có thể tồn tại. |
5 | ALLSELECTED ( [<tableName>|<columnName>] ) Xóa bộ lọc ngữ cảnh khỏi các cột và hàng trong truy vấn hiện tại, trong khi vẫn giữ lại tất cả các bộ lọc ngữ cảnh hoặc bộ lọc rõ ràng khác. |
6 | CALCULATE (<expression>, [<filter1>, <filter2> …)] Đánh giá một biểu thức trong ngữ cảnh được sửa đổi bởi các bộ lọc được chỉ định. Trả về giá trị là kết quả của biểu thức. |
7 | CALCULATETABLE (<expression>, <filter1>, <filter2>, …) Đánh giá biểu thức bảng trong ngữ cảnh được sửa đổi bởi các bộ lọc nhất định. Trả về một bảng giá trị. |
số 8 | CROSSFILTER (<columnName1>, <columnName2>, <direction>) Chỉ định hướng lọc chéo được sử dụng trong phép tính cho mối quan hệ tồn tại giữa hai cột. Không trả lại bất kỳ giá trị nào. |
9 | DISTINCT (<column>) Trả về bảng một cột chứa các giá trị khác biệt với cột được chỉ định. Nói cách khác, các giá trị trùng lặp bị loại bỏ và chỉ các giá trị duy nhất được trả về. Cột kết quả được sử dụng làm đối số trong một hàm DAX khác. |
10 | EARLIER (<column>, <number>) Trả về giá trị hiện tại của cột được chỉ định trong một thẻ đánh giá bên ngoài của cột được đề cập được chỉ định bởi số. |
11 | EARLIEST (<column>) Trả về giá trị hiện tại của cột được chỉ định trong một đường đánh giá bên ngoài của cột được chỉ định. |
12 | FILTER (<table>, <filter>) Trả về một bảng chỉ chứa các hàng đã lọc. FILTER chỉ được sử dụng như một hàm được nhúng trong các hàm khác yêu cầu bảng làm đối số. |
13 | FILTERS (<columnName>) Trả về các giá trị được áp dụng trực tiếp dưới dạng bộ lọc cho columnName. FILTERS chỉ được sử dụng như một hàm được nhúng trong các hàm khác yêu cầu bảng làm đối số. |
14 | HASONEFILTER (<columnName>) Trả về TRUE khi số lượng giá trị được lọc trực tiếp trên columnName là một. Nếu không, trả về FALSE. |
15 | HASONEVALUE (<columnName>) Trả về TRUE khi ngữ cảnh cho columnName chỉ được lọc xuống một giá trị riêng biệt. Nếu không, trả về FALSE. |
16 | ISCROSSFILTERED (<columnName>) Trả về TRUE khi columnName hoặc một cột khác trong cùng một bảng hoặc bảng có liên quan đang được lọc. |
17 | ISFILTERED (<columnName>) Trả về TRUE khi columnName đang được lọc trực tiếp. Nếu không có bộ lọc trên cột hoặc nếu quá trình lọc xảy ra do một cột khác trong cùng một bảng hoặc trong một bảng có liên quan đang được lọc, thì hàm trả về FALSE. |
18 | KEEPFILTERS (<expression>) Sửa đổi cách bộ lọc được áp dụng trong khi đánh giá một hàm CALCULATE hoặc CALCULATETABLE. |
19 | RELATED (<column>) Trả về một giá trị có liên quan từ một bảng khác. |
20 | RELATEDTABLE (<tableName>) Đánh giá biểu thức bảng trong ngữ cảnh được sửa đổi bởi các bộ lọc nhất định. |
21 | SUBSTITUTEWITHINDEX (<table>, <indexColumnName>, <indexColumnTable>, <orderBy_expression>, [<order>]) Trả về một bảng biểu thị một bán phần bên trái của hai bảng được cung cấp dưới dạng đối số. Bán liên kết được thực hiện bằng cách sử dụng các cột chung, được xác định bởi tên cột chung và kiểu dữ liệu chung. Các cột đang được nối trên được thay thế bằng một cột trong bảng trả về có kiểu số nguyên và chứa chỉ mục. Chỉ mục là một tham chiếu vào bảng tham gia phù hợp với một thứ tự sắp xếp cụ thể. |
22 | USERELATIONSHIP ( <columnName1>,<columnName2>) Chỉ định mối quan hệ được sử dụng trong một phép tính cụ thể là mối quan hệ tồn tại giữa columnName1 và columnName2. |
23 | VALUES (<TableNameOrColumnName>) Trả về bảng một cột chứa các giá trị khác biệt với bảng hoặc cột được chỉ định. Nói cách khác, các giá trị trùng lặp bị loại bỏ và chỉ các giá trị duy nhất được trả về. |
Bạn đã học cú pháp DAX, cách sử dụng các toán tử DAX và các hàm DAX trong các chương trước. Như bạn đã biết, DAX là một ngôn ngữ công thức được sử dụng để lập mô hình dữ liệu và phân tích dữ liệu.
DAX có thể được sử dụng trong các tình huống khác nhau. Dựa trên các kịch bản DAX, DAX tối ưu hóa hiệu suất và tạo ra kết quả chính xác và hiệu quả. Trong chương này, bạn sẽ biết một số kịch bản DAX.
Thực hiện các phép tính phức tạp
Công thức DAX có thể thực hiện các phép tính phức tạp liên quan đến tổng hợp tùy chỉnh, lọc và sử dụng các giá trị có điều kiện. Bạn có thể làm như sau với DAX
- Tạo các phép tính tùy chỉnh cho PivotTable.
- Áp dụng bộ lọc cho một công thức.
- Xóa bộ lọc một cách chọn lọc để tạo tỷ lệ động.
- Sử dụng một giá trị từ một vòng lặp bên ngoài.
Để biết thêm chi tiết, hãy tham khảo chương Kịch bản - Thực hiện các phép tính phức tạp.
Làm việc với Văn bản và Ngày tháng
DAX có thể được sử dụng trong các tình huống liên quan đến làm việc cùng với văn bản, trích xuất và soạn các giá trị ngày và giờ hoặc tạo các giá trị dựa trên một điều kiện. Bạn có thể làm như sau với DAX -
- Tạo một cột chính bằng cách nối.
- Soạn ngày dựa trên các phần ngày được trích xuất từ ngày văn bản.
- Xác định một ngày tùy chỉnh.
- Thay đổi kiểu dữ liệu bằng công thức.
- Chuyển đổi số thực thành số nguyên.
- Chuyển đổi số thực, số nguyên hoặc ngày tháng sang chuỗi.
- Chuyển đổi chuỗi thành số thực hoặc ngày tháng.
Để biết chi tiết, hãy tham khảo chương Kịch bản - Làm việc với Văn bản và Ngày tháng.
Giá trị có điều kiện và kiểm tra lỗi
Các hàm DAX cho phép kiểm tra các giá trị trong dữ liệu và trả về một giá trị khác dựa trên một điều kiện. Các hàm DAX kiểm tra giá trị cũng hữu ích để kiểm tra phạm vi hoặc loại giá trị, để ngăn các lỗi dữ liệu không mong muốn phá vỡ tính toán. Bạn có thể làm như sau với DAX -
- Tạo một giá trị dựa trên một điều kiện.
- Kiểm tra lỗi trong công thức.
Để biết chi tiết, hãy tham khảo chương Kịch bản - Giá trị có điều kiện và Kiểm tra lỗi.
Sử dụng thông minh về thời gian
Bạn đã tìm hiểu về các chức năng thông minh thời gian DAX trong chương - Tìm hiểu về trí thông minh thời gian DAX.
Các chức năng thông minh thời gian DAX bao gồm các chức năng giúp bạn truy xuất ngày hoặc phạm vi ngày từ dữ liệu của mình. Sau đó, bạn có thể sử dụng các ngày hoặc phạm vi ngày đó để tính toán các giá trị trong các khoảng thời gian tương tự. Các chức năng thông minh thời gian cũng bao gồm các chức năng hoạt động với các khoảng ngày tiêu chuẩn, để cho phép bạn so sánh các giá trị giữa các tháng, năm hoặc quý. Bạn cũng có thể tạo công thức DAX so sánh các giá trị cho ngày đầu tiên và ngày cuối cùng của một khoảng thời gian cụ thể.
Bạn có thể tìm hiểu thêm về các chức năng thông minh của DAX và những gì chúng có thể làm cho những điều sau:
- Tính Doanh số tích lũy.
- So sánh giá trị theo thời gian.
- Tính giá trị trong phạm vi ngày tùy chỉnh.
Để biết chi tiết, hãy tham khảo chương Kịch bản - Sử dụng trí thông minh thời gian.
Xếp hạng và So sánh các giá trị
Nếu bạn chỉ muốn hiển thị n số mục hàng đầu trong một cột hoặc một PivotTable, bạn có các tùy chọn sau:
- Áp dụng bộ lọc để chỉ hiển thị một số mục trên cùng hoặc dưới cùng.
- Tạo công thức DAX tự động xếp hạng các giá trị và áp dụng bộ lọc.
Mỗi tùy chọn này đều có ưu và nhược điểm.
Để biết chi tiết, hãy tham khảo chương Kịch bản - Xếp hạng và So sánh các giá trị.
Công thức DAX có thể thực hiện các phép tính phức tạp liên quan đến tổng hợp tùy chỉnh, lọc và sử dụng các giá trị có điều kiện. Bạn có thể làm như sau với DAX -
- Tạo các phép tính tùy chỉnh cho PivotTable.
- Áp dụng bộ lọc cho công thức DAX.
- Xóa bộ lọc một cách chọn lọc để tạo tỷ lệ động.
- Sử dụng một giá trị từ một vòng lặp bên ngoài.
Tạo các tính toán tùy chỉnh cho PivotTable
Các hàm DAX CALCULATE và CALCULATETABLE rất mạnh mẽ và linh hoạt. Chúng hữu ích để xác định các trường được tính toán. Các hàm DAX này cho phép bạn thay đổi ngữ cảnh mà phép tính sẽ được thực hiện. Bạn cũng có thể tùy chỉnh kiểu tập hợp hoặc phép toán để thực hiện.
Hàm TÍNH TOÁN
TÍNH TOÁN (<biểu thức>, [<filter1>], [<filter2>]…)
Hàm CALCULATE đánh giá biểu thức đã cho trong ngữ cảnh được sửa đổi bởi không hoặc nhiều bộ lọc được chỉ định.
Nếu dữ liệu của bạn đã được lọc, hàm CALCULATE sẽ thay đổi ngữ cảnh mà dữ liệu được lọc và đánh giá biểu thức trong ngữ cảnh mới mà bạn chỉ định bởi bộ lọc. Điều đó có nghĩa là, mọi bộ lọc hiện có trên cột được chỉ định sẽ bị xóa và bộ lọc được sử dụng trong đối số bộ lọc được áp dụng thay thế.
Thí dụ
Giả sử bạn muốn hiển thị phần trăm số huy chương được lọc theo tên Quốc gia. Tính toán của bạn sẽ nhận được giá trị phần trăm ghi đè bộ lọc mà bạn áp dụng cho Quốc gia trong PivotTable.
Xác định trường được tính toán - Phần trăm Tổng số huy chương như được hiển thị trong ảnh chụp màn hình sau.
Với công thức DAX này, tất cả các hàng trong bảng Kết quả được tính đến trong hàm CALCULATE với bộ lọc chứa hàm ALL. Bằng cách này, bạn có tổng số ở mẫu số.
PivotTable của bạn sẽ được hiển thị trong ảnh chụp màn hình sau.
Trong ảnh chụp màn hình ở trên, Quốc gia được lọc thành Hoa Kỳ và 18 giá trị hàng đầu được hiển thị trong PivotTable. Tiếp theo, bạn có thể lọc động các giá trị trong PivotTable. Tuy nhiên, các tính toán sẽ chính xác theo công thức DAX tùy chỉnh mà bạn đã sử dụng.
Hàm CALCULATETABLE nhận một bảng giá trị và thực hiện hành động tương tự như của hàm CALCULATE.
Lọc dữ liệu trong công thức
Bạn có thể tạo bộ lọc trong công thức DAX, để chọn giá trị từ dữ liệu nguồn để sử dụng trong tính toán. Bạn có thể thực hiện việc này bằng cách xác định biểu thức bộ lọc và sử dụng biểu thức đó cùng với bảng là đầu vào cho công thức DAX.
Biểu thức bộ lọc cho phép bạn lấy một tập hợp con của dữ liệu nguồn. Bộ lọc được áp dụng động mỗi khi bạn cập nhật kết quả của công thức DAX, tùy thuộc vào ngữ cảnh hiện tại của dữ liệu của bạn và bạn có thể yên tâm về kết quả chính xác và mong đợi.
Biểu thức bộ lọc thường chứa hàm lọc DAX chỉ trả về các hàng đã chọn của bảng, sau đó có thể được sử dụng làm đối số cho một hàm DAX khác mà bạn đang sử dụng để tổng hợp dữ liệu.
Thí dụ
Ảnh chụp màn hình sau đây cho thấy định nghĩa của một trường được tính toán chỉ tính số huy chương cho các môn thể thao mùa hè.
Với trường được tính toán này, PivotTable trông như được hiển thị trong ảnh chụp màn hình sau.
Như bạn có thể quan sát, các giá trị trong PivotTable ở phía bên phải với trường được tính toán mới khớp với các giá trị trong PivotTable ở phía bên trái với bộ lọc trên trường Phần được áp dụng rõ ràng.
Note - Các hàm giá trị và bộ lọc DAX trả về một bảng, nhưng không bao giờ trả lại bảng hoặc các hàng trực tiếp vào Mô hình Dữ liệu và do đó luôn được nhúng trong một hàm DAX khác.
Để biết chi tiết về các hàm DAX này, hãy tham khảo chương - Các hàm bộ lọc DAX.
Tự động thêm và xóa bộ lọc
Công thức DAX mà bạn sử dụng trong PivotTable có thể bị ảnh hưởng bởi ngữ cảnh PivotTable. Tuy nhiên, bạn có thể thay đổi ngữ cảnh một cách chọn lọc bằng cách thêm hoặc bớt các bộ lọc. Bạn có thể sử dụng các hàm DAX ALL và ALLEXCEPT để chọn động các hàng không phân biệt ngữ cảnh PivotTable.
Ngoài ra, bạn có thể sử dụng các hàm DAX DISTINCT và VALUES để trả về các giá trị riêng biệt.
Sử dụng giá trị từ vòng lặp bên ngoài
Bạn có thể sử dụng một giá trị từ vòng lặp trước đó để tạo một tập hợp các phép tính liên quan với hàm DAX EARLIER. Hàm DAX này hỗ trợ tối đa hai cấp vòng lặp lồng nhau.
DAX có thể được sử dụng trong các tình huống liên quan đến làm việc cùng với văn bản, trích xuất và soạn các giá trị ngày và giờ hoặc tạo giá trị dựa trên một điều kiện. Bạn có thể làm như sau với DAX -
- Tạo một cột chính trong bảng bằng cách nối.
- Soạn ngày dựa trên các phần ngày được trích xuất từ ngày văn bản.
- Xác định định dạng ngày tùy chỉnh.
- Thay đổi kiểu dữ liệu bằng công thức.
- Chuyển đổi số thực thành số nguyên.
- Chuyển đổi số thực, số nguyên hoặc ngày tháng sang chuỗi.
- Chuyển đổi chuỗi thành số thực hoặc ngày tháng.
Tạo một cột chính bằng cách ghép nối
Mô hình Dữ liệu trong PowerPivot chỉ cho phép một cột khóa duy nhất. Nó không hỗ trợ các khóa tổng hợp mà bạn có thể tìm thấy trong các nguồn dữ liệu bên ngoài. Do đó, nếu có bất kỳ khóa tổng hợp nào tồn tại trong một bảng trong nguồn dữ liệu, bạn cần kết hợp chúng thành một cột khóa duy nhất cho bảng trong Mô hình Dữ liệu.
Bạn có thể sử dụng hàm DAX CONCATENATE để kết hợp hai cột thành một cột duy nhất trong bảng trong Mô hình Dữ liệu. Hàm DAX CONCATENATE nối hai chuỗi văn bản thành một chuỗi văn bản. Các mục được kết hợp có thể là văn bản, số hoặc giá trị Boolean được biểu thị dưới dạng văn bản hoặc kết hợp của các mục đó. Bạn cũng có thể sử dụng tham chiếu cột nếu cột chứa các giá trị thích hợp.
= CONCATENATE ([Column1], [Column2])
Hàm DAX CONCATENATE chỉ chấp nhận hai đối số. Nếu bất kỳ đối số nào không thuộc kiểu dữ liệu văn bản, nó sẽ được chuyển đổi thành văn bản. Hàm DAX CONCATENATE trả về chuỗi được nối.
Ngày dựa trên phần ngày được trích ra từ ngày văn bản
Mô hình Dữ liệu trong Power Pivot hỗ trợ kiểu dữ liệu ngày giờ cho các giá trị ngày và giờ. Các hàm DAX hoạt động trên các giá trị ngày và / hoặc thời gian yêu cầu kiểu dữ liệu ngày giờ cho các đối số.
Nếu nguồn dữ liệu của bạn chứa các ngày có định dạng khác, trước tiên bạn cần trích xuất các phần ngày bằng công thức DAX và kết hợp các phần đó để tạo thành một kiểu dữ liệu ngày giờ DAX hợp lệ.
Bạn có thể sử dụng các hàm DAX sau để trích xuất và soạn ngày tháng -
DATE - Trả về ngày đã chỉ định ở định dạng datetime.
DATEVALUE - Chuyển đổi ngày ở dạng văn bản thành ngày ở dạng datetime.
TIMEVALUE - Chuyển đổi thời gian ở định dạng văn bản thành thời gian ở định dạng ngày giờ.
Xác định định dạng ngày tùy chỉnh
Giả sử ngày tháng trong nguồn dữ liệu của bạn không được thể hiện bằng định dạng chuẩn. Bạn có thể xác định định dạng ngày tùy chỉnh để đảm bảo rằng các giá trị được xử lý chính xác. Chức năng DAX FORMAT cho phép bạn chuyển đổi giá trị thành văn bản theo định dạng được chỉ định.
FORMAT (<value>, <format_string>)
Hàm FORMAT trả về một chuỗi chứa giá trị được định dạng như được định nghĩa bởi format_string.
Bạn có thể sử dụng các định dạng Ngày và Giờ được xác định trước hoặc bạn có thể tạo các định dạng Ngày và Giờ do người dùng xác định cho chuỗi đối số format_string của hàm FORMAT.
Sau đây là các tên định dạng ngày và giờ được xác định trước. Nếu bạn sử dụng các chuỗi khác với các chuỗi được xác định trước này, chúng sẽ được hiểu là một định dạng ngày và giờ tùy chỉnh.
S. Không. | Format_String & Description |
---|---|
1 | "General Date" Hiển thị ngày và / hoặc giờ. Ví dụ: 2/10/2015 10:10:32 AM |
2 | "Long Date" or "Medium Date" Hiển thị ngày theo định dạng ngày dài. Ví dụ: Thứ 4, ngày 07 tháng 3 năm 2016 |
3 | "Short Date" Hiển thị ngày bằng định dạng ngày ngắn. Ví dụ: 02/03/2016 |
4 | "Long Time" Hiển thị thời gian sử dụng định dạng thời gian dài. Thông thường bao gồm giờ, phút và giây. Ví dụ: 10:10:32 AM |
5 | "Medium Time" Hiển thị thời gian ở định dạng 12 giờ. Ví dụ: 09:30 PM |
6 | "Short Time" Hiển thị thời gian ở định dạng 24 giờ. Ví dụ: 14:15 |
Ngoài ra, bạn có thể sử dụng các ký tự trong bảng sau để tạo định dạng ngày / giờ do người dùng xác định.
S. Không. | Nhân vật & Mô tả |
---|---|
1 | : Dấu phân cách thời gian. Dấu phân cách thời gian. Phân tách giờ, phút và giây khi các giá trị thời gian được định dạng. |
2 | / Dấu phân cách ngày. Phân tách ngày, tháng và năm khi các giá trị ngày được định dạng. |
3 | % Được sử dụng để chỉ ra rằng ký tự sau đây phải được đọc dưới dạng định dạng một chữ cái mà không liên quan đến bất kỳ chữ cái nào ở cuối. Cũng được sử dụng để chỉ ra rằng một định dạng một chữ cái được đọc như một định dạng do người dùng xác định. |
Sau đây là chi tiết của các nhân vật khác nhau.
%d - Hiển thị ngày dưới dạng số không có số 0 đứng đầu (ví dụ: 5).
%dd - Hiển thị ngày dưới dạng số có số 0 đứng đầu (ví dụ: 05).
%ddd - Hiển thị ngày dưới dạng viết tắt (ví dụ: Mặt trời).
%dddd - Hiển thị ngày dưới dạng tên đầy đủ (ví dụ: Chủ nhật).
%M - Hiển thị tháng dưới dạng số không có số 0 đứng đầu (ví dụ: tháng 1 được biểu thị bằng 1).
%MM - Hiển thị tháng dưới dạng số có số 0 đứng đầu (ví dụ: tháng 1 được biểu thị bằng 01).
%MMM - Hiển thị tháng dưới dạng viết tắt (ví dụ: tháng 1 được biểu thị là tháng 1).
%MMMM - Hiển thị tháng dưới dạng tên tháng đầy đủ (ví dụ: tháng 1).
%gg - Hiển thị chuỗi chu kỳ / kỷ nguyên (ví dụ: AD).
%h- Hiển thị giờ dưới dạng số không có số 0 ở đầu bằng cách sử dụng đồng hồ 12 giờ (ví dụ: 1:15:15 PM). Sử dụng%h nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.
%hh - Hiển thị giờ dưới dạng số với các số 0 ở đầu bằng cách sử dụng đồng hồ 12 giờ (ví dụ: 01:15:15 PM).
%H- Hiển thị giờ dưới dạng một số không có số 0 ở đầu bằng cách sử dụng đồng hồ 24 giờ (ví dụ: 13:15:15, 1:15:15). Sử dụng% H nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.
%HH - Hiển thị giờ dưới dạng một số với các số không ở đầu sử dụng đồng hồ 24 giờ (ví dụ: 13:15:15, 1:15:15).
%m- Hiển thị phút dưới dạng số không có số 0 ở đầu (ví dụ: 2: 1: 15). Sử dụng% m nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.
%mm - Hiển thị phút dưới dạng một số với các số 0 ở đầu (ví dụ: 2:01:15).
%s- Hiển thị số thứ hai dưới dạng một số không có số 0 ở đầu (ví dụ: 2: 15: 5). Sử dụng% s nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.
%ss - Hiển thị số thứ hai dưới dạng một số với các số 0 ở đầu (ví dụ: 2:15:05).
%f- Hiển thị phân số của giây. Ví dụff hiển thị phần trăm giây, trong khi ffffhiển thị phần mười nghìn giây. Bạn có thể sử dụng tối đa bảyfký hiệu ở định dạng do người dùng xác định. Sử dụng%f nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.
%t- Sử dụng đồng hồ 12 giờ và hiển thị chữ hoa A cho bất kỳ giờ nào trước buổi trưa; hiển thị chữ hoa P cho bất kỳ giờ nào từ giữa trưa đến 11:59 CH Sử dụng% t nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.
%tt- Đối với các ngôn ngữ sử dụng đồng hồ 12 giờ, hiển thị AM viết hoa với bất kỳ giờ nào trước buổi trưa; hiển thị PM viết hoa với bất kỳ giờ nào từ giữa trưa đến 11:59 PM Đối với các ngôn ngữ sử dụng đồng hồ 24 giờ, không hiển thị gì.
%y- Hiển thị số năm (0-9) không có số 0 ở đầu. Sử dụng%y nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.
%yy - Hiển thị năm ở định dạng số có hai chữ số với số 0 ở đầu, nếu có.
%yyy - Hiển thị năm ở định dạng số có bốn chữ số.
%yyyy - Hiển thị năm ở định dạng số có bốn chữ số.
%z- Hiển thị độ lệch múi giờ không có số 0 phía trước (ví dụ -8). Sử dụng%z nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.
%zz- Hiển thị. Độ lệch múi giờ với số 0 ở đầu (ví dụ -08)
%zzz - Hiển thị độ lệch múi giờ đầy đủ (ví dụ -08: 00).
Như bạn có thể quan sát, chuỗi định dạng có phân biệt chữ hoa chữ thường. Có thể thu được các định dạng khác nhau bằng cách sử dụng một trường hợp khác.
Thay đổi kiểu dữ liệu của đầu ra công thức DAX
Trong công thức DAX, kiểu dữ liệu của đầu ra được xác định bởi các cột nguồn và bạn không thể chỉ định rõ ràng kiểu dữ liệu của kết quả. Điều này là do kiểu dữ liệu tối ưu được xác định bởi Power Pivot. Tuy nhiên, bạn có thể sử dụng các chuyển đổi kiểu dữ liệu ngầm định do Power Pivot thực hiện để thao tác với kiểu dữ liệu đầu ra. Nếu không, bạn có thể sử dụng các hàm DAX nhất định để chuyển đổi kiểu dữ liệu đầu ra.
Using the Implicit Data Type Conversions
Để chuyển đổi một ngày hoặc một chuỗi số thành một số, hãy nhân với 1,0. Ví dụ: = (TODAY () + 5) * 1,0. Công thức này tính toán ngày hiện tại cộng với 5 ngày và chuyển kết quả thành giá trị số nguyên.
Để chuyển đổi giá trị ngày, số hoặc đơn vị tiền tệ thành một chuỗi, hãy nối giá trị với một chuỗi trống. Ví dụ: = Hôm nay () & “”
Using the DAX Functions for Data Type Conversions
Bạn có thể sử dụng các hàm DAX cho những việc sau:
- Chuyển đổi số thực thành số nguyên.
- Chuyển đổi số thực, số nguyên hoặc ngày thành chuỗi.
- Chuyển đổi Chuỗi thành Số hoặc Ngày thực.
Bạn sẽ tìm hiểu điều này trong các phần sau.
Chuyển đổi số thực thành số nguyên
Bạn có thể sử dụng các hàm DAX sau để chuyển đổi số thực thành số nguyên:
ROUND (<number>, <num_digits>) - Làm tròn một số đến một số chữ số được chỉ định và trả về một số thập phân.
CEILING (<number>, <significance>) - Làm tròn một số lên đến số nguyên gần nhất hoặc đến bội số có nghĩa gần nhất và trả về một số thập phân.
FLOOR (<number>, <significance>) - Làm tròn một số xuống dưới, về 0, đến bội số có nghĩa gần nhất và trả về một số thập phân.
Chuyển đổi số thực, số nguyên hoặc ngày thành chuỗi
Bạn có thể sử dụng các hàm DAX sau để chuyển đổi số thực, số nguyên hoặc ngày tháng thành chuỗi:
FIXED (<number>, [<decimals>], [<no_comma>])- Làm tròn một số và trả về kết quả dưới dạng văn bản. Số chữ số ở bên phải dấu thập phân là 2 hoặc số thập phân được chỉ định. Kết quả là có dấu phẩy hoặc tùy chọn không có dấu phẩy.
FORMAT (<value>, <format_string>) - Chuyển đổi một giá trị thành văn bản theo định dạng được chỉ định.
Bạn đã học về cách sử dụng hàm Định dạng để chuyển đổi ngày tháng thành chuỗi.
Chuyển đổi chuỗi thành số hoặc ngày thực
Bạn có thể sử dụng các hàm DAX sau để chuyển đổi chuỗi thành số thực hoặc ngày -
VALUE (<text>) - Chuyển đổi một chuỗi văn bản biểu thị một số thành một số.
DATEVALUE (date_text) - Chuyển đổi ngày ở dạng văn bản thành ngày ở dạng datetime.
TIMEVALUE (time_text) - Chuyển đổi thời gian ở định dạng văn bản thành thời gian ở định dạng ngày giờ.
Bạn có thể sử dụng các hàm DAX để kiểm tra các giá trị trong dữ liệu dẫn đến các giá trị khác nhau dựa trên một điều kiện. Ví dụ: bạn có thể kiểm tra số lượng bán hàng hàng năm và dựa trên kết quả, gắn nhãn người bán lại là Ưu tiên hoặc Giá trị.
Bạn cũng có thể sử dụng các hàm DAX để kiểm tra phạm vi hoặc loại giá trị, để ngăn các lỗi dữ liệu không mong muốn phá vỡ tính toán.
Tạo giá trị dựa trên điều kiện
Bạn có thể sử dụng điều kiện IF lồng nhau để kiểm tra giá trị và tạo giá trị mới có điều kiện. Các hàm DAX sau đây rất hữu ích cho quá trình xử lý có điều kiện và các giá trị có điều kiện:
IF (<logical_test>,<value_if_true>, [<value_if_false>])- Kiểm tra nếu một điều kiện được đáp ứng. Trả về một giá trị nếu điều kiện là TRUE và trả về giá trị khác nếu điều kiện là FALSE. Value_if_false là tùy chọn và nếu bị bỏ qua và điều kiện là FALSE, hàm trả về BLANK ().
OR (<logical1>,<logical2>)- Kiểm tra xem một trong các đối số là TRUE hay không để trả về TRUE. Hàm trả về FALSE nếu cả hai đối số đều FALSE.
CONCATENATE (<text1>, <text2>)- Nối hai chuỗi văn bản thành một chuỗi văn bản. Các mục được kết hợp có thể là văn bản, số hoặc giá trị Boolean được biểu thị dưới dạng văn bản hoặc kết hợp của các mục đó. Bạn cũng có thể sử dụng tham chiếu cột, nếu cột chứa các giá trị thích hợp.
Kiểm tra lỗi trong Công thức DAX
Trong DAX, bạn không thể có giá trị hợp lệ trong một hàng của cột được tính toán và giá trị không hợp lệ trong hàng khác. Nghĩa là, nếu có lỗi trong bất kỳ phần nào của cột được tính toán, toàn bộ cột sẽ được gắn cờ lỗi và bạn phải sửa công thức DAX để loại bỏ các lỗi dẫn đến giá trị không hợp lệ.
Một số lỗi phổ biến trong công thức DAX là:
- Chia cho số không.
- Đối số cho một hàm để trống trong khi đối số mong đợi là giá trị số.
Bạn có thể sử dụng kết hợp các hàm logic và thông tin để kiểm tra lỗi và luôn trả về các giá trị hợp lệ để tránh trả về lỗi trong cột được tính toán. Các hàm DAX sau đây sẽ giúp bạn điều này.
ISBLANK (<value>) - Kiểm tra xem một giá trị trống và trả về TRUE hoặc FALSE.
IFERROR (value, value_if_error)- Trả về value_if_error nếu biểu thức trong đối số đầu tiên dẫn đến lỗi. Nếu không, trả về giá trị của chính biểu thức.
Cả giá trị trả về của biểu thức và value_if_error phải cùng kiểu dữ liệu. Nếu không, bạn sẽ gặp lỗi.
Bạn đã tìm hiểu về tính năng mạnh mẽ của DAX Thông minh thời gian trong chương - Tìm hiểu Thông minh thời gian. Trong chương này, bạn sẽ học cách sử dụng các chức năng thông minh thời gian DAX trong các tình huống khác nhau.
Các chức năng thông minh thời gian DAX bao gồm:
Các hàm giúp bạn truy xuất ngày hoặc phạm vi ngày từ dữ liệu của mình, được sử dụng để tính toán các giá trị trong các khoảng thời gian tương tự.
Các chức năng hoạt động với khoảng ngày tiêu chuẩn, để cho phép bạn so sánh các giá trị giữa các tháng, năm hoặc quý.
Các hàm truy xuất ngày đầu tiên và ngày cuối cùng của một khoảng thời gian cụ thể.
Các chức năng giúp bạn làm việc trên số dư mở và đóng.
Tính toán doanh số bán hàng tích lũy
Bạn có thể sử dụng hàm thông minh thời gian DAX để tạo công thức tính doanh số bán hàng tích lũy. Các hàm DAX sau có thể được sử dụng để tính toán số dư đóng và mở:
CLOSINGBALANCEMONTH (<expression>,<dates>, [<filter>]) - Đánh giá biểu thức vào ngày cuối cùng của tháng trong bối cảnh hiện tại.
OPENINGBALANCEMONTH (<expression>,<dates>, [<filter>]) - Đánh giá biểu thức vào ngày đầu tiên của tháng trong bối cảnh hiện tại.
CLOSINGBALANCEQUARTER (<expression>,<dates>, [<filter>]) - Đánh giá biểu hiện vào ngày cuối cùng của quý trong bối cảnh hiện tại.
OPENINGBALANCEQUARTER (<expression>,<dates>, [<filter>]) - Đánh giá biểu hiện vào ngày đầu tiên của quý, trong bối cảnh hiện tại.
CLOSINGBALANCEYEAR (<expression>,<dates>, [<filter>], [<year_end_date>]) - Đánh giá biểu hiện vào ngày cuối cùng của năm trong bối cảnh hiện tại.
OPENINGBALANCEYEAR (<expression>, <dates>, <filter>], [<year_end_date>]) - Đánh giá biểu hiện của ngày đầu năm trong bối cảnh hiện tại.
Bạn có thể tạo các trường được tính toán sau cho khoảng không quảng cáo sản phẩm tại một thời điểm cụ thể bằng cách sử dụng các hàm DAX sau:
Month Start Inventory Value: = OPENINGBALANCEMONTH (
SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Month End Inventory Value: = CLOSINGBALANCEMONTH (
SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Quarter Start Inventory Value: = OPENINGBALANCEQUARTER (
SUMX ProductInventory, (ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Quarter End Inventory Value: = CLOSINGBALANCEQUARTER (
SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Year Start Inventory Value: = OPENINGBALANCEYEAR (
SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Year End Inventory Value: = CLOSINGBALANCEYEAR (
SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
So sánh các giá trị trong các khoảng thời gian khác nhau
Khoảng thời gian mặc định được DAX hỗ trợ là tháng, quý và năm.
Bạn có thể sử dụng các hàm thông minh thời gian DAX sau đây để so sánh tổng số trong các khoảng thời gian khác nhau.
PREVIOUSMONTH (<dates>) - Trả về một bảng có chứa một cột gồm tất cả các ngày từ tháng trước, dựa trên ngày đầu tiên trong cột ngày tháng, trong ngữ cảnh hiện tại.
PREVIOUSQUARTER (<dates>) - Trả về một bảng có chứa một cột gồm tất cả các ngày từ quý trước, dựa trên ngày đầu tiên trong cột ngày, trong ngữ cảnh hiện tại.
PREVIOUSYEAR (<dates>, <year_end_date>]) - Trả về một bảng có chứa một cột gồm tất cả các ngày từ năm trước, cho ngày cuối cùng trong cột ngày, trong ngữ cảnh hiện tại.
Bạn có thể tạo các trường được tính toán sau để tính tổng doanh số bán hàng ở khu vực phía Tây vào các khoảng thời gian được chỉ định để so sánh, bằng cách sử dụng các hàm DAX:
Previous Month Sales: = CALCULATE (
SUM (WestSales[SalesAmount]), PREVIOUSMONTH (DateTime [DateKey])
)
Previous Quarter Sales: = CALCULATE (
SUM (WestSales[SalesAmount]), PREVIOUSQUARTER (DateTime [DateKey])
)
Previous Year Sales: = CALCULATE (
SUM (WestSales[SalesAmount]), PREVIOUSYEAR (DateTime [DateKey])
)
So sánh các giá trị trong các khoảng thời gian song song
Bạn có thể sử dụng hàm thông minh thời gian DAX PARALLELPERIOD để so sánh tổng trong một khoảng thời gian song song với khoảng thời gian được chỉ định.
PARALLELPERIOD (<ngày>, <number_of_intervals>, <interval>)
Hàm DAX này trả về một bảng chứa một cột ngày biểu thị một khoảng thời gian song song với các ngày trong cột ngày được chỉ định, trong ngữ cảnh hiện tại, với các ngày được dịch chuyển một số khoảng tiến hoặc lùi theo thời gian.
Bạn có thể tạo trường được tính toán sau để tính doanh số bán hàng của năm trước ở khu vực phía Tây -
Previous Year Sales: = CALCULATE (
SUM (West_Sales[SalesAmount]), PARALLELPERIOD (DateTime[DateKey],-1,year)
)
Tính toán tổng số đang chạy
Bạn có thể sử dụng các hàm thông minh thời gian DAX sau đây để tính toán tổng số đang chạy hoặc tổng đang chạy.
TOTALMTD (<expression>,<dates>, [<filter>]) - Đánh giá giá trị của biểu thức cho tháng tính đến thời điểm hiện tại.
TOTALQTD (<expression>,<dates>, <filter>]) - Đánh giá giá trị của biểu thức cho các ngày trong quý cho đến nay, trong bối cảnh hiện tại.
TOTALYTD (<expression>,<dates>, [<filter>], [<year_end_date>]) - Đánh giá giá trị hàng năm của biểu thức trong bối cảnh hiện tại.
Bạn có thể tạo các trường được tính toán sau để tính toán tổng doanh số đang bán ở khu vực phía Tây vào các khoảng thời gian cụ thể, bằng cách sử dụng các hàm DAX:
Tổng thời gian chạy tháng: = TOTALMTD (SUM (West_Sales [SalesAmount]), DateTime [DateKey])
Tổng hoạt động hàng quý: = TOTALQTD (SUM (WestSales [SalesAmount]), DateTime [DateKey])
Tổng hoạt động trong năm: = TOTALYTD (SUM (WestSales [SalesAmount]), DateTime [DateKey])
Tính giá trị trong phạm vi ngày tùy chỉnh
Bạn có thể sử dụng các hàm thông minh thời gian DAX để truy xuất một nhóm ngày tùy chỉnh, mà bạn có thể sử dụng làm đầu vào cho hàm DAX thực hiện các phép tính, để tạo tổng hợp tùy chỉnh trong các khoảng thời gian.
DATESINPERIOD (<dates>, <start_date>, <number_of_intervals>, <interval>) - Trả về một bảng có chứa một cột ngày bắt đầu bằng ngày bắt đầu và tiếp tục cho số khoảng_thời gian đã chỉ định.
DATESBETWEEN (<dates>, <start_date>,
DATEADD (<dates>,<number_of_intervals>,<interval>) - Trả về một bảng có chứa một cột ngày tháng, được dịch chuyển tiến hoặc lùi theo thời gian theo số khoảng thời gian được chỉ định từ các ngày trong ngữ cảnh hiện tại.
FIRSTDATE (<dates>) - Trả về ngày đầu tiên trong ngữ cảnh hiện tại cho cột ngày đã chỉ định.
LASTDATE (<dates>) - Trả về ngày cuối cùng trong ngữ cảnh hiện tại cho cột ngày đã chỉ định.
Bạn có thể tạo các công thức DAX sau để tính tổng doanh số bán hàng ở miền Tây trong một phạm vi ngày cụ thể, bằng cách sử dụng các hàm DAX:
Công thức DAX để tính toán doanh số bán hàng trong 15 ngày trước ngày 17 tháng 7 năm 2016.
CALCULATE (
SUM (WestSales[SalesAmount]), DATESINPERIOD (DateTime[DateKey], DATE(2016,17,14), -15, day)
)
Công thức DAX để tạo trường được tính toán để tính toán doanh số bán hàng quý đầu tiên năm 2016.
= CALCULATE (
SUM (WestSales[SalesAmount]),DATESBETWEEN (DateTime[DateKey], DATE (2016,1,1), DATE (2016,3,31))
)
Công thức DAX để tạo trường được tính toán lấy ngày đầu tiên khi bán hàng được thực hiện ở miền Tây cho ngữ cảnh hiện tại.
= FIRSTDATE (WestSales [SaleDateKey])
Công thức DAX để tạo một trường được tính toán lấy ngày cuối cùng khi bán hàng được thực hiện ở miền Tây cho ngữ cảnh hiện tại.
= LASTDATE (WestSales [SaleDateKey])
DAX Công thức tính toán các ngày trước ngày một năm trong ngữ cảnh hiện tại.
= DATEADD (DateTime[DateKey],-1,year)
Nếu bạn muốn chỉ hiển thị phần trên cùng n số lượng mục trong một cột hoặc PivotTable, bạn có hai tùy chọn sau:
Bạn có thể chọn n số giá trị hàng đầu trong PivotTable.
Bạn có thể tạo công thức DAX tự động xếp hạng các giá trị và sau đó sử dụng các giá trị xếp hạng trong Trình cắt.
Áp dụng bộ lọc để chỉ hiển thị một số mục hàng đầu
Chọn n số lượng giá trị hàng đầu để hiển thị trong PivotTable, hãy làm như sau:
- Bấm vào mũi tên xuống trong tiêu đề nhãn hàng trong PivotTable.
- Nhấp vào Bộ lọc giá trị trong danh sách thả xuống và sau đó nhấp vào Top 10.
Hộp thoại Top 10 Filter (<tên cột>) xuất hiện.
- Trong Hiển thị, hãy chọn mục sau trong các hộp từ trái sang phải.
- Top
- 18 (Số giá trị hàng đầu mà bạn muốn hiển thị. Giá trị mặc định là 10.)
- Items.
- Trong hộp theo, chọn Số lượng huy chương.
Bấm OK. 18 giá trị hàng đầu sẽ được hiển thị trong PivotTable.
Ưu điểm và nhược điểm của việc áp dụng bộ lọc
Ưu điểm
- Nó rất đơn giản và dễ sử dụng.
- Thích hợp cho các bảng có số lượng hàng lớn.
Nhược điểm
Bộ lọc chỉ dành cho mục đích hiển thị.
Nếu dữ liệu bên dưới PivotTable thay đổi, bạn phải làm mới PivotTable theo cách thủ công để xem các thay đổi.
Tạo công thức DAX có giá trị xếp hạng động
Bạn có thể tạo một cột được tính bằng công thức DAX có chứa các giá trị được xếp hạng. Sau đó, bạn có thể sử dụng bộ cắt trên cột được tính toán kết quả để chọn các giá trị được hiển thị.
Bạn có thể nhận được giá trị xếp hạng cho một giá trị nhất định trong một hàng bằng cách đếm số hàng trong cùng một bảng có giá trị lớn hơn giá trị đang được so sánh. Phương thức này trả về như sau:
Giá trị 0 cho giá trị cao nhất trong bảng.
Các giá trị bằng nhau sẽ có cùng giá trị thứ hạng. Nếun số lượng giá trị bằng nhau, giá trị tiếp theo sau các giá trị bằng nhau sẽ có một giá trị xếp hạng không liên tiếp để cộng lại số n.
Ví dụ: nếu bạn có bảng 'Doanh số' với dữ liệu bán hàng, bạn có thể tạo một cột được tính toán với cấp bậc của các giá trị Số tiền Bán hàng như sau:
= COUNTROWS (FILTER (Sales,
EARLIER (Sales [Sales Amount]) < Sales [Sales Amount])
) + 1
Tiếp theo, bạn có thể chèn một Slicer trên cột mới được tính toán và hiển thị có chọn lọc các giá trị theo cấp bậc.
Ưu điểm và nhược điểm của Xếp hạng động
Ưu điểm
Việc xếp hạng được thực hiện trong bảng chứ không phải trên PivotTable. Do đó, có thể được sử dụng trong bất kỳ số lượng PivotTable nào.
Công thức DAX được tính toán động. Do đó, bạn luôn có thể chắc chắn rằng xếp hạng là chính xác ngay cả khi dữ liệu cơ bản đã thay đổi.
Vì công thức DAX được sử dụng trong một cột được tính toán, nên bạn có thể sử dụng xếp hạng trong Bộ cắt.
Thích hợp cho các bảng có số lượng hàng lớn.
Nhược điểm
Vì các phép tính DAX rất tốn kém về mặt tính toán, phương pháp này có thể không phù hợp với các bảng có số lượng hàng lớn.