详细内容或原文请订阅后点击阅览
如何正确对DAX(和SQL)的结果正确应用限制
如果一项措施的输出不得超过特定的限制,该怎么办?我们如何确保正确计算总数?这篇文章是关于正确计算和汇总此类输出的。帖子如何正确应用DAX(和SQL)的结果限制,首先是在数据科学上出现的。
来源:走向数据科学简介
,我的一位客户问我以下问题:
我的公司对每个员工可以累积的加班余额限制。该限制总计为20小时。如果员工超过此限制,则加班时间将超过20小时。
如何在Power BI中对此进行计算?
Glenn Villas Unplash这听起来像是一件简单的工作。
让我们尝试DAX度量
首先,我们必须创建一个措施,该措施加在一起以来,自从开始计算总余额以来就完成了:
加班总= var firstot =计算(firstNonblank('date'[date],[coptertime]),removeFilters('date'))var maxdate = maxDate = max('date'[date'[date])返回计算(加班],emoverfime],removerfilters('date'),dateSbetthiew('date'date'date'date'[date],'[date],'[date],'date,maxdate) 第二,我们创建了一个将上限设置为20的度量: 加时性更正(尝试1)= var overtimeOverAll = [加时性总体]返回(越过时间> 20、20,加班) 让我们看看结果: 图1 - 第一种解决挑战的方法的结果(作者的数字) 看起来正确。 在仔细检查结果后,我们发现它们没有正确累加。 看曼迪·琼斯(发明名称): 图2 - 曼迪·琼斯(Mandy Jones)的结果,我们看到结果无法正确添加(作者的数字) 从4月开始,她工作时间较少,以减少加班的平衡。 但是,即使3月份进行了纠正,[整体加班]的措施仍显示超过20个小时。这是不正确的。 [总体加班]必须考虑更正。 此外,总数是错误的。由于总数始终高于20,因此它也将显示20。 计算的目标 在进行前进之前,我们必须定义要求以确定需要做什么。 calculatetable()
第二,我们创建了一个将上限设置为20的度量:
加时性更正(尝试1)= var overtimeOverAll = [加时性总体]返回(越过时间> 20、20,加班)
让我们看看结果:
看起来正确。
在仔细检查结果后,我们发现它们没有正确累加。
看曼迪·琼斯(发明名称):
从4月开始,她工作时间较少,以减少加班的平衡。
但是,即使3月份进行了纠正,[整体加班]的措施仍显示超过20个小时。这是不正确的。
[总体加班]必须考虑更正。
此外,总数是错误的。由于总数始终高于20,因此它也将显示20。
计算的目标
在进行前进之前,我们必须定义要求以确定需要做什么。
calculatetable()