Sql server 使用DAX度量计算全职同等员工的数量

Sql server 使用DAX度量计算全职同等员工的数量,sql-server,powerpivot,dax,powerbi,Sql Server,Powerpivot,Dax,Powerbi,我能够使用DAX度量计算有多少员工在工作: Number of employees started := CALCULATE(COUNTA([Emp from]);FILTER(ALL(tDate[Date]);tDate[Date]<=MAX(tDate[Date]))) - Number of employees quit := CALCULATE(COUNTA([Emp unitl]);FILTER(ALL(tDate[Date]);tDate[Date]<=MAX(tDat

我能够使用DAX度量计算有多少员工在工作:

Number of employees started := CALCULATE(COUNTA([Emp from]);FILTER(ALL(tDate[Date]);tDate[Date]<=MAX(tDate[Date]))) - 
Number of employees quit := CALCULATE(COUNTA([Emp unitl]);FILTER(ALL(tDate[Date]);tDate[Date]<=MAX(tDate[Date])))
Number of employees working := [Number of employees started] - [Number of employees quit]
但我还没有计算出有多少全职员工在工作。每个雇员的工作量从0%到100%

我如何计算全职员工的数量

我试过以下方法来计算开始工作的全职员工的数量,但与上面的方法相比,它不会随着时间的推移而累积。它只显示每个月的结果:

Number of full time equivalent employees started:=CALCULATE(SUMX(tEmployees;tEmployees[Workload]*Not(ISBLANK(tEmployees[Emp from])));FILTER(ALL(tDate[Date]);tDate[Date]<=MAX(tDate[date])))

你对我如何解决这个问题有什么建议吗?

你可以试试这样的方法。在Emp表中,输入员工的开始日期和结束日期。在您的度量中,您将使用calculatetable函数创建一个内存表,该表中的每个日期和每个员工id都有一行。该内存表将采用工作百分比,并创建一列,表示该员工当天的工作小时数。然后,您只需要将“等效”员工的数量表示为:工作小时数/一个“全职工作日”的小时数之和*期间的天数。这应该给你一个衡量标准,你可以在你的日期中找到任何一天或任何一段时间内全职员工的数量

请参见中的“我的示例表结构”。这首先是一个建模问题,其次是DAX问题

一旦你创建了你的人数事实,所有这些都变得微不足道