<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Slow Dax Measure for Employee Turnover in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2375468#M61146</link>
    <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="279455" data-lia-user-login="dcrow5378" class="lia-mention lia-mention-user"&gt;dcrow5378&lt;/a&gt; , Can you explain these formulas. Can you share sample data and sample output in table format? Or a sample pbix after removing sensitive data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;refer if the approach on this blog can help&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-trend/ba-p/882970" target="_blank"&gt;https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-trend/ba-p/882970&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 04 Mar 2022 17:01:35 GMT</pubDate>
    <dc:creator>amitchandak</dc:creator>
    <dc:date>2022-03-04T17:01:35Z</dc:date>
    <item>
      <title>Slow Dax Measure for Employee Turnover</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2375415#M61143</link>
      <description>&lt;P&gt;Hello,&lt;BR /&gt;I have a few dax measures that are calculating employee turnover rates.&amp;nbsp; The problem is that it takes over a minute for the visuals/tables to render if the turnover measure is used.&amp;nbsp; I wonder if anyone can take a look and see any glaring issues.&amp;nbsp; Thanks in advance for any assistance.&amp;nbsp; The data set is only around 9k rows.&lt;BR /&gt;&lt;BR /&gt;Turnover =&lt;BR /&gt;&lt;SPAN&gt;IFERROR&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt; &lt;SPAN&gt;[Termed]&lt;/SPAN&gt; / &lt;SPAN&gt;[AVG Emps]&lt;/SPAN&gt;, &lt;SPAN&gt;BLANK&lt;/SPAN&gt; &lt;SPAN&gt;()&lt;/SPAN&gt; &lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;----------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Termed =&lt;BR /&gt;CALCULATE (&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;COUNT ( Turnover[Employee ID] ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FILTER (&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ALL ( Turnover[TermDate] ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Turnover[TermDate] &amp;gt;= MIN ( 'Date'[Date] )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp; Turnover[TermDate] &amp;lt;= MAX ( 'Date'[Date] )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;BR /&gt;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;----------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;AVG Emps =&lt;BR /&gt;AVERAGEX ( ALLSELECTED ( 'Date' ), [Employee Count] )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;----------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Employee Count =&lt;BR /&gt;SUMX (&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GENERATE (&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CALCULATETABLE (&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUMMARIZE (&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Turnover,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Turnover[Hire Date],&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Turnover[TermDate],&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"Rows", COUNTROWS ( Turnover )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ALL ( 'Date' )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INTERSECT (&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DATESBETWEEN ( 'Date'[Date], Turnover[Hire Date], Turnover[TermDate] ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LASTDATE ( 'Date'[Date] )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Rows]&lt;BR /&gt;)&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 04 Mar 2022 16:30:59 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2375415#M61143</guid>
      <dc:creator>dcrow5378</dc:creator>
      <dc:date>2022-03-04T16:30:59Z</dc:date>
    </item>
    <item>
      <title>Re: Slow Dax Measure for Employee Turnover</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2375468#M61146</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="279455" data-lia-user-login="dcrow5378" class="lia-mention lia-mention-user"&gt;dcrow5378&lt;/a&gt; , Can you explain these formulas. Can you share sample data and sample output in table format? Or a sample pbix after removing sensitive data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;refer if the approach on this blog can help&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-trend/ba-p/882970" target="_blank"&gt;https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-trend/ba-p/882970&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 04 Mar 2022 17:01:35 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2375468#M61146</guid>
      <dc:creator>amitchandak</dc:creator>
      <dc:date>2022-03-04T17:01:35Z</dc:date>
    </item>
    <item>
      <title>Re: Slow Dax Measure for Employee Turnover</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2375510#M61151</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="279455" data-lia-user-login="dcrow5378" class="lia-mention lia-mention-user"&gt;dcrow5378&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here are some measures I wrote for my job...&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;Headcount = 
VAR EveryoneHired =
    FILTER ( Employees, Employees[DateStarted] &amp;lt;= MAX ( 'Calendar'[FullDate] ) )
VAR TerminatedEmployees =
    FILTER (
        Employees,
        Employees[Active] = FALSE ()
            &amp;amp;&amp;amp; Employees[DateTerminated] &amp;lt;= MAX ( 'Calendar'[FullDate] )
    )
VAR ActiveEmployees =
    EXCEPT ( EveryoneHired, TerminatedEmployees )
RETURN
    COUNTROWS ( ActiveEmployees )



Hires = 
VAR NewHires =
    CALCULATE (
        DISTINCTCOUNT ( Employees[EmployeeID] ),
        USERELATIONSHIP ( 'Calendar'[FullDate], Employees[DateHired] )
    )
VAR Rehires =
    CALCULATE (
        DISTINCTCOUNT ( Employees[EmployeeID] ),
        NOT ( ISBLANK ( Employees[DateRehired] ) ),
        USERELATIONSHIP ( 'Calendar'[FullDate], Employees[DateRehired] )
    )
RETURN
    NewHires + Rehires


Terminations = 
CALCULATE (
    DISTINCTCOUNT ( Employees[EmployeeID] ),
    Employees[Active] = FALSE (),
    USERELATIONSHIP ( 'Calendar'[FullDate], Employees[DateTerminated] )
)


Median Tenure = 
VAR EveryoneHired =
    FILTER ( Employees, Employees[DateStarted] &amp;lt;= MAX ( 'Calendar'[FullDate] ) )
VAR TerminatedEmployees =
    FILTER (
        Employees,
        Employees[Active] = FALSE ()
            &amp;amp;&amp;amp; Employees[DateTerminated] &amp;lt;= MAX ( 'Calendar'[FullDate] )
    )
VAR ActiveEmployees =
    EXCEPT ( EveryoneHired, TerminatedEmployees )
RETURN
    MEDIANX ( ActiveEmployees, YEARFRAC ( Employees[DateStarted], TODAY () ) )


Turnover Rate = 
VAR PastYear =
    CALCULATETABLE (
        VALUES ( 'Calendar'[CalendarWeekEnd] ),
        DATESINPERIOD ( 'Calendar'[FullDate], MAX ( 'Calendar'[FullDate] ), -1, YEAR ),
        REMOVEFILTERS ( 'Calendar'[FullDate] )
    )
VAR WeeklyAmounts =
    CALCULATETABLE (
        ADDCOLUMNS (
            PastYear,
            "WeeklyHeadcount", [Headcount],
            "WeeklyTerminations", [Terminations]
        ),
        REMOVEFILTERS ( 'Calendar'[FullDate] )
    )
VAR AverageWeeklyHeadcount =
    AVERAGEX ( WeeklyAmounts, [WeeklyHeadcount] )
VAR TotalTerminations =
    SUMX ( WeeklyAmounts, [WeeklyTerminations] )
RETURN
    DIVIDE ( TotalTerminations, AverageWeeklyHeadcount, BLANK () )&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;Part of why your measures are so slow is using the SUMMARIZE function.&amp;nbsp; Try to avoid using that function...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;These measures are for the data model I created at work.&amp;nbsp; But you should be able to follow the logic and implement in your model.&amp;nbsp; Hope this helps!&lt;/P&gt;</description>
      <pubDate>Fri, 04 Mar 2022 17:20:36 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2375510#M61151</guid>
      <dc:creator>littlemojopuppy</dc:creator>
      <dc:date>2022-03-04T17:20:36Z</dc:date>
    </item>
    <item>
      <title>Re: Slow Dax Measure for Employee Turnover</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2375522#M61153</link>
      <description>&lt;P&gt;Hi &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="279455" data-lia-user-login="dcrow5378" class="lia-mention lia-mention-user"&gt;dcrow5378&lt;/a&gt;,&lt;BR /&gt;&lt;BR /&gt;1) Termed measure&lt;BR /&gt;Is there a specific reason why you need to explicitly filter the dates with MIN and MAX? Don't you have a relationship between&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;Turnover[TermDate] an Date[Date]?&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;2)&amp;nbsp;&lt;SPAN&gt;Employee Count&lt;/SPAN&gt;&lt;BR /&gt;What are you trying to accomplish here?&lt;BR /&gt;Like&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="148838" data-lia-user-login="amitchandak" class="lia-mention lia-mention-user"&gt;amitchandak&lt;/a&gt;&amp;nbsp;said, show us the Data and the model and explain to us with this measure should represent and what is the expected result. There's probably a better way to code this.&lt;BR /&gt;&lt;BR /&gt;Also, its really not best pracetice to use SUMMARIZE to do calculation. You should replace the syntax to :&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;ADDCOLUMNS(
	SUMMARIZE(
	    Turnover,
	    Turnover[Hire Date],
	    Turnover[TermDate]
	),
	"Rows", CALCULATE( COUNTROWS ( Turnover ))
)&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;Most likely, the problem is&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 04 Mar 2022 17:26:48 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2375522#M61153</guid>
      <dc:creator>Kucrapok</dc:creator>
      <dc:date>2022-03-04T17:26:48Z</dc:date>
    </item>
    <item>
      <title>Re: Slow Dax Measure for Employee Turnover</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2375824#M61181</link>
      <description>&lt;P&gt;It's not surprising that GENERATE inside of SUMX inside of AVERAGEX is slow.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Rewriting [Employee Count] is what I'd recommend. You can probably make it much simpler. Maybe something more like [Termed]?&lt;/P&gt;
&lt;LI-CODE lang="php"&gt;Employee Count =
VAR _MinDate = MIN ( 'Date'[Date] )
VAR _MaxDate = MAX ( 'Date'[Date] )
RETURN
    CALCULATE (
        COUNT ( Turnover[Employee ID] ),
        FILTER (
            ALL ( Turnover[TermDate] ),
            ISBLANK ( Turnover[TermDate] )
                || Turnover[TermDate] &amp;gt;= _MinDate
        ),
        Turnover[HireDate] &amp;lt;= _MaxDate
    )&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 04 Mar 2022 21:28:40 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2375824#M61181</guid>
      <dc:creator>AlexisOlson</dc:creator>
      <dc:date>2022-03-04T21:28:40Z</dc:date>
    </item>
    <item>
      <title>Re: Slow Dax Measure for Employee Turnover</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2387181#M61911</link>
      <description>&lt;P&gt;Thanks!&amp;nbsp; I'll give these a shot and let you know how it goes.&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2022 19:57:06 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2387181#M61911</guid>
      <dc:creator>dcrow5378</dc:creator>
      <dc:date>2022-03-10T19:57:06Z</dc:date>
    </item>
    <item>
      <title>Re: Slow Dax Measure for Employee Turnover</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2387184#M61912</link>
      <description>&lt;P&gt;I tried this and the numbers are coming out much too low.&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2022 19:58:04 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Slow-Dax-Measure-for-Employee-Turnover/m-p/2387184#M61912</guid>
      <dc:creator>dcrow5378</dc:creator>
      <dc:date>2022-03-10T19:58:04Z</dc:date>
    </item>
  </channel>
</rss>

