将此 Tableau 计算转换为 DAX PBI 度量值

Translate this Tableau Calculation to DAX PBI Measure

提问人:mgh0104 提问时间:11/7/2023 更新时间:11/8/2023 访问量:19

问:

我有这个Tableau计算:

if [wlb_metric_name]='Count at Shift End'
and date([Interval_end_Datetime_ET]) = [Shift End Time]
and date([Shift Start Datetime])= [Overnight Shift Start Date]
and [Date] = Date([Interval_Start_Datetime_ET])
and [Date] = [Shift End Time]
then [wlb_metric_value] else 0 end
)/
COUNT(
if [wlb_metric_name]='Count at Shift End'
and date([Interval_end_Datetime_ET]) = [Shift End Time]
and date([Shift Start Datetime])= [Overnight Shift Start Date]
and [Date] = Date([Interval_Start_Datetime_ET])
and [Date] = [Shift End Time]
then [wlb_metric_value] else null end
),0) 

我需要将其转换为 PBI Dax Measure。这是我尝试过的代码,但显然它是不正确的

IF(
    ISBLANK(SUMX(
        FILTER(
            'Workload Balancing Fact',
            [wlb_metric_name] = "Count at Shift End"
                && [Interval_end_Datetime_ET].[Date] = [Shift End Time]
                && [Shift Start Datetime].[Date] = [Overnight Shift Start Date]
                && [Date] = [Interval_Start_Datetime_ET].[Date]
                && [Date] = [Overnight Shift Start Date].[Date]
        ),
        [wlb_metric_value]
    ) / COUNTX(
        FILTER(
            'Workload Balancing Fact',
            [wlb_metric_name] = "Count at Shift End"
                && [Interval_end_Datetime_ET].[Date] = [Shift End Time]
                && [Shift Start Datetime].[Date] = [Overnight Shift Start Date]
                && [Date] = [Interval_Start_Datetime_ET].[Date]
                && [Date] = [Overnight Shift Start Date]
        ),
        [wlb_metric_value]
    )),
    0,
    SUMX(
        FILTER(
            'Workload Balancing Fact',
            [wlb_metric_name] = "Count at Shift End"
                && [Interval_end_Datetime_ET].[Date] = [Shift End Time]
                && [Shift Start Datetime].[Date] = [Overnight Shift Start Date]
                && [Date] = [Interval_Start_Datetime_ET].[Date]
                && [Date] = [Overnight Shift Start Date]
        ),
        [wlb_metric_value]
    ) / COUNTX(
        FILTER(
            'Workload Balancing Fact',
            [wlb_metric_name] = "Count at Shift End"
                && [Interval_end_Datetime_ET].[Date] = [Shift End Time]
                && [Shift Start Datetime].[Date] = [Overnight Shift Start Date]
                && [Date] = [Interval_Start_Datetime_ET].[Date]
                && [Date] = [Shift End Time]
        ),
        [wlb_metric_value]
    )
)

我一直在绞尽脑汁地想我在哪里做错了这个计算。我没有收到错误,这在技术上更糟。请帮忙!

PowerBI DAX tableau-API 度量值

评论

0赞 Sam Nseir 11/7/2023
什么?列还是度量?如果是 measure,您能否分享其 Dax 表达式。[wlb_metric_value]
0赞 Sam Nseir 11/7/2023
很难看出上面哪些是列,哪些是度量。这些措施是什么?, ,[Shift End Time][Overnight Shift Start Date][Date]
0赞 mgh0104 11/8/2023
它们都是列。

答:

0赞 Sam Nseir 11/8/2023 #1

不要使用(日期层次结构) - 所以尽量省略这些。.[Date]

以下是表达式的清理版本:

Your Measure = 
  var factFilter = FILTER(
    'Workload Balancing Fact',
    [wlb_metric_name] = "Count at Shift End"
        && [Interval_end_Datetime_ET] = [Shift End Time]
        && [Shift Start Datetime] = [Overnight Shift Start Date]
        && [Date] = [Interval_Start_Datetime_ET]
        && [Date] = [Shift End Time]
  )
  var sumValue = SUMX(factFilter, [wlb_metric_value])
  var cntValue = COUNTX(factFilter, [wlb_metric_value])

  RETURN DIVIDE(sumValue, cntValue, 0)

评论

0赞 Sam Nseir 11/23/2023
这回答了你的问题吗?