Powerbi 如何在使用措施模拟计算柱时使钻取正常工作
我正在努力钻研,因为我不得不以一种不同寻常的方式构建一份报告,我希望你们能提供帮助。有一些解释背景,有点深入,但这是一个复杂的问题要解决,对不起 假设我们使用的是WideWorldImporters,并希望显示特定发票的过期程度。在PowerBI报告中,我们可以根据发票过期的程度将发票分配给各个桶,然后将金额相加,并显示如下数据: 这很好。然后,我被要求构建报告,以便最终用户可以使用切片器设置“生效日期”,并且报告将进行更新,以反映如果当前日期实际上是生效日期,发票的过期程度。有两个问题让这很烦人:Powerbi 如何在使用措施模拟计算柱时使钻取正常工作,powerbi,dax,Powerbi,Dax,我正在努力钻研,因为我不得不以一种不同寻常的方式构建一份报告,我希望你们能提供帮助。有一些解释背景,有点深入,但这是一个复杂的问题要解决,对不起 假设我们使用的是WideWorldImporters,并希望显示特定发票的过期程度。在PowerBI报告中,我们可以根据发票过期的程度将发票分配给各个桶,然后将金额相加,并显示如下数据: 这很好。然后,我被要求构建报告,以便最终用户可以使用切片器设置“生效日期”,并且报告将进行更新,以反映如果当前日期实际上是生效日期,发票的过期程度。有两个问题让这很
Effective Date = IF(MIN('Effective Date'[CalendarDate]) < TODAY(), TODAY(), MIN('Effective Date'[CalendarDate]))
这也很好;我可以使用日期切片器上的左手点更改生效日期度量值,这会导致针对每个度量值的生效日期桶更新,然后桶值度量值刷新并更新视觉效果。都是胖乎乎的多莉
这就是背景的结尾。问题在于:这种方法完全突破了钻取。如果我想钻取到一个详细信息页面,列出我选择的桶中的发票,我似乎无法在基于所选生效日期动态更新桶的可视化页面上实现这一点。相反,钻取只返回所有发票,这是无用的
我怎样才能:
a) 强制钻取仅带回动态更新的存储桶中的发票
b) 重新执行“根据选定的生效日期更新桶种群”doohicky,这样我一开始就不会遇到这个问题?幼崽,我放弃了尝试通过钻取来实现这一点。相反,我将钻取替换为书签:
不幸的副作用是,由于条形图位于比书签链接更低的z层,因此该视觉效果的交叉过滤功能丢失。这是人生。小崽子,我放弃了通过钻取来实现这一点的尝试。相反,我将钻取替换为书签:
Effective Date Bucket =
var CurrentDueDate = MAX('Sales Invoices'[DueDate])
return (
switch(
true(),
datediff(CurrentDueDate, 'Effective Date'[Effective Date], day) <= 0, "0: Not Overdue",
and(datediff(CurrentDueDate, 'Effective Date'[Effective Date], day) > 0, datediff(CurrentDueDate, 'Effective Date'[Effective Date], day) <= 30), "1: 0 - 30",
and(datediff(CurrentDueDate, 'Effective Date'[Effective Date], day) > 30, datediff(CurrentDueDate, 'Effective Date'[Effective Date], day) <= 60), "2: 31 - 60",
and(datediff(CurrentDueDate, 'Effective Date'[Effective Date], day) > 60, datediff(CurrentDueDate, 'Effective Date'[Effective Date], day) <= 90), "3: 61 - 90",
and(datediff(CurrentDueDate, 'Effective Date'[Effective Date], day) > 90, datediff(CurrentDueDate, 'Effective Date'[Effective Date], day) <= 365), "4: 91 - 365",
datediff(CurrentDueDate, 'Effective Date'[Effective Date], day) > 365, "5: 365+"
)
)
Bucket Value = (
var CurrentBucket = max('Debt Buckets'[Debt Bucket])
return (
CALCULATE(
sum('Sales InvoiceLines'[LineAmount]),
filter(
ALLSELECTED('Sales Invoices'),
'Sales Invoices'[Effective Date Bucket] = CurrentBucket
)
)
)
)