Số đo được tính toán để chỉ nhận được nhiều dòng điện nhất từ ​​một chiều trên thực tế ảnh chụp nhanh nhưng vẫn giữ các bộ lọc khác


7

Tôi đang làm việc trên một khối lập phương trong SSAS 2012 SP1 CU4. Tôi có 3 thứ nguyên (Yêu cầu, Trạng thái Yêu cầu, Ngày) và 1 thực tế (Số lượng Yêu cầu). Bảng thực tế của tôi nằm ở hạt của yêu cầuKEY, RequisitionStatusKEY, SnapshotDateKey.

Tôi đã tính các biện pháp về cơ bản nhận được giá trị cuối cùng (như biện pháp bán phụ gia) trong khoảng thời gian nhất định cho dù đó là Năm, Tháng hay Ngày:

Openings:=CALCULATE(Sum('Requisition Counts'[NumberOfOpeningsQT]), 
Filter('Date','Date'[DateKey] = Max('Requisition Counts'[SnapshotDateKEY])))  

Điều này hoạt động tốt cho đến khi bạn ném Trạng thái Yêu cầu vào hỗn hợp. Tôi có hàng cho mỗi yêu cầu cho mỗi ngày vào năm 2013. Đối với một trong những yêu cầu, Trạng thái Yêu cầu đang chờ xử lý trong 6 tháng đầu và sau đó nó được thay đổi thành Đã phê duyệt trên tất cả dữ liệu từ ngày 1 tháng 7 đến nay. Khi tôi tóm tắt số lần mở cho yêu cầu ở cấp tháng cho tháng 7, người dùng sẽ thấy hai hàng: tổng số lần mở cho ngày dân cư cuối cùng vào tháng 7 đang chờ xử lý và tổng số lần mở cho ngày dân cư cuối cùng trong Tháng 7 mà nó đã được phê duyệt.
Bảng Pivot

Mặc dù tổng số 2 là chính xác, tôi cần thay đổi phép tính này để tôi chỉ nhận trạng thái yêu cầu hiện tại nhất cho khoảng thời gian ngày đã chọn (Đã phê duyệt) và hiển thị 0 hoặc null hoặc trống cho dòng phê duyệt đang chờ xử lý trong bảng xoay vòng.

Bảng Trạng thái Yêu cầu trông như thế này: Tình trạng yêu cầu

Cập nhật: Đây là một liên kết đến mô hình PowerPOLL mà tôi đã tạo có một số dữ liệu được lọc trong đó để giúp trả lời câu hỏi này. Điều này nên giải thích tốt hơn các lược đồ bảng. Trường NumberOfOpeningsQT về cơ bản là số lượng vị trí mở họ có cho công việc đó. Đôi khi nó là 1, đôi khi là hơn 1. Nó thường không thay đổi theo thời gian, nhưng tôi đoán nó có thể. Tôi đang cố gắng thực hiện phép tính Mở cho tôi câu trả lời mong muốn. Tôi đã đưa ra một số tính toán khác trong đó để cho thấy một số điều tôi đã thử có lời hứa nhưng tôi không thể làm việc.


2013-10943 có một mục cho 20130601, không có gì cho phần còn lại của tháng Sáu, sau đó là hai mục giống nhau cho 20130701/02. Vì vậy, nó dường như không phải là một ảnh chụp nhanh hàng ngày. Là dữ liệu hoặc mô tả sai? Nếu dữ liệu là chính xác và một ảnh chụp nhanh chỉ được ghi lại không liên tục, bạn mong đợi điều gì sẽ được trả về nếu ngày lọc là 20130602?
Mark Storey-Smith

Vâng ... họ bắt đầu thu thập dữ liệu hàng tháng, vì vậy họ chỉ có dữ liệu vào ngày đầu tiên mỗi tháng cho đến khi họ chuyển sang hàng ngày vào tháng Bảy. Nếu bạn lọc vào ngày 6/2 (không có dữ liệu), tôi sẽ không nhận được dữ liệu.
mmarie

Câu trả lời:


6

Bạn có thể thử tính toán sau:

Openings:=
CALCULATE( SUM( 'Requisition Counts'[NumberofOpeningsQT] )
         , CALCULATETABLE( LASTNONBLANK( 'Requisition Counts'[SnapshotDateKEY] , 1 )
                         , ALL( 'Requisition Status' )
                         )
         )

Phần quan trọng là trong việc thiết lập bối cảnh bộ lọc chính xác cho bên ngoài CALCULATE.

Với CALCULATETABLE, chúng tôi xác định các hàng cụ thể mà chúng tôi muốn CALCULATExem xét bên ngoài : ngày chụp nhanh không trống cuối cùng cho tất cả các yêu cầu (hoặc cho một yêu cầu cụ thể, xem xét bối cảnh của từng yêu cầu trên bảng xoay vòng), bất kể mọi bộ lọc trong tình trạng trưng dụng, đạt được bằng cách sử dụng ALLchức năng.

Các biện pháp không hoạt động chính xác như bạn muốn; bạn nói rằng bạn sẽ mong đợi tổng số được phê duyệt là 2. Sử dụng 2013-11059yêu cầu từ mô hình Power Pivot làm ví dụ, vì có 1 trạng thái được phê duyệt trong 2013-07-01 và một trạng thái khác trong 2013-07 / 02, nó chỉ xem xét trạng thái cuối cùng cho tổng số, dẫn đến 1.


Cảm ơn bạn! Điều đó đã làm việc hoàn hảo. Tôi dường như đã không suy nghĩ chính xác khi tôi nói rằng tôi muốn câu trả lời cuối cùng của mình là 2. Nó phải là 1. Đây là những gì tôi cần.
mmarie

Một điều tôi đã nhận thấy là tôi phải thay thế dấu chấm phẩy trong phép tính bằng dấu phẩy. Chỉ cần lưu ý để tham khảo trong tương lai cho bất cứ ai khác. Cảm ơn một lần nữa, @Gonsalu
mmarie

Rất vui vì nó hiệu quả với bạn, @mmarie. Tôi đã sử dụng dấu chấm phẩy làm dấu phân cách tham số, vì đó là ký tự được sử dụng trong miền địa phương của tôi. Tôi sẽ đổi nó thành dấu phẩy, vì đó dường như cũng là nhân vật được sử dụng trong Books Online.
gonsalu

0

Tôi chưa mô hình hóa điều này, nhưng một điều tôi nghĩ đến là thêm một LỌC () khác vào phạm vi CALCULATE () của bạn như vậy: LỌC ('Trạng thái yêu cầu', 'Trạng thái yêu cầu' [Khóa] = MAX (' FactRequisition '[RequisitionKey])). Tôi nghĩ rằng việc thêm cái này sẽ lọc bảng Yêu cầu để chỉ bao gồm Yêu cầu mới nhất - Tôi giả sử rằng một yêu cầu không thể được chuyển từ Ứng dụng sang Phê duyệt đang chờ xử lý, điều này sẽ khiến cho ...


Cảm ơn câu trả lời, Josh. Các giải pháp đó vẫn có cùng một vấn đề như giải pháp trước đây của tôi về việc yêu cầu chuyển trạng thái vào giữa năm, nó vẫn hiển thị hai hàng (một cho mỗi trạng thái) với cùng một số cho số đo. Tôi tin rằng điều này là do trạng thái là một phần của bối cảnh bộ lọc đến từ bảng xoay vòng, do đó, khóa trạng thái yêu cầu tối thiểu chỉ tóm tắt một giá trị và do đó bằng với bối cảnh bộ lọc.
mmarie
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.