<?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 population stability index - DAX in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/population-stability-index-DAX/m-p/3254245#M120135</link>
    <description>&lt;P&gt;I need to compare a first year month of my distribuition with another year-month distribuition as well , in this example i need to compare 2020-05 with 2020-06,2020-07 and 2020-08.. and so on..&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;variable&lt;/TD&gt;&lt;TD&gt;2020-05&lt;/TD&gt;&lt;TD&gt;2020-06&lt;/TD&gt;&lt;TD&gt;2020-07&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;abc&lt;/TD&gt;&lt;TD&gt;50%&lt;/TD&gt;&lt;TD&gt;35%&lt;/TD&gt;&lt;TD&gt;%45&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xpto&lt;/TD&gt;&lt;TD&gt;35%&lt;/TD&gt;&lt;TD&gt;25%&lt;/TD&gt;&lt;TD&gt;%45&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;yzx&lt;/TD&gt;&lt;TD&gt;15%&lt;/TD&gt;&lt;TD&gt;40%&lt;/TD&gt;&lt;TD&gt;%10&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;the formula to generate &lt;SPAN&gt;population stability index is&amp;nbsp;&lt;/SPAN&gt;is : &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Σ&lt;/EM&gt;([2020-06]-[2020-05])*LN([2020-06]/[2020-05])&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;I have a table in this format&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;year_month&lt;/TD&gt;&lt;TD&gt;variable&lt;/TD&gt;&lt;TD&gt;&lt;BR /&gt;value_variable&lt;BR /&gt;&lt;BR /&gt;&lt;/TD&gt;&lt;TD&gt;quantity&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2020-05&lt;/TD&gt;&lt;TD&gt;example_varable&lt;/TD&gt;&lt;TD&gt;xpto&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2020-06&lt;/TD&gt;&lt;TD&gt;example_varable&lt;/TD&gt;&lt;TD&gt;xpto&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2020-06&lt;/TD&gt;&lt;TD&gt;example_varable&lt;/TD&gt;&lt;TD&gt;yzx&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;I made this dax&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;PSX =
VAR base_line =
    ADDCOLUMNS (
        SUMMARIZE (
            FILTER ( my_tb, my_tb[yearmonth] = "202005" ),
            Sheet1[variable],
            Sheet1[value_variable],
            Sheet1[yearmonth]
        ),
        "qtd_tp_bl", CALCULATE ( SUM ( Sheet1[qty] ) ),
        "total_tp_bl", CALCULATE ( SUM ( Sheet1[qty] ), ( Sheet1[value_variable] ) )
    )
VAR base_line_temp =
    SELECTCOLUMNS (
        base_line,
        "qtd_bl", [qtd_tp_bl],
        "total_bl", [total_tp_bl],
        "Variavel", [variable],
        "valor_Variavel", [value_variable]
    )
VAR tab_principal =
    ADDCOLUMNS (
        SUMMARIZE ( Sheet1, Sheet1[var], Sheet1[valor], Sheet1[anomes] ),
        "qtd_tp", CALCULATE ( SUM ( Sheet1[qtd] ) ),
        "total_tp", CALCULATE ( SUM ( Sheet1[qtd] ), ( Sheet1[valor] ) )
    )
VAR tab_principal_temp =
    SELECTCOLUMNS (
        tab_principal,
        "qtd", [qtd_tp],
        "total", [total_tp],
        "anomes", [yearmonth],
        "Variavel", [variable],
        "valor_Variavel", [value_variable]
    )
VAR uni_mer=
    NATURALLEFTOUTERJOIN ( tab_principal_temp, base_line_temp )

VAR tab_calculos =
    ADDCOLUMNS (
        ADDCOLUMNS ( uni_mer, "Calc", DIVIDE ( [qtd], [total], 0 ) ),
        "Base_Line_calc", DIVIDE ( [QTD_BL], [total_bl], 0 )
    )
VAR tab_final =
    ADDCOLUMNS (
        SUMMARIZE ( tab_calculos, [yearmonth], [Calc], [Base_Line_calc] ),
        "PS_I",
            ( [Calc] - [Base_Line_calc] )
                * IF (
                    DIVIDE ( [Calc], [Base_Line_calc], 0 ) = 0,
                    0,
                    LN ( DIVIDE ( [Calc], [Base_Line_calc], 0 ) )
                )
    )
RETURN
    SUMX ( tab_final, [PS_I] )&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;BR /&gt;in the end , returning zero by month &lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;BR /&gt;&lt;BR /&gt;when I generate the table before sumx, worked perfectly&lt;BR /&gt;&lt;BR /&gt;someone knows why this happens in measure? , I guess that is something related with context, but I couldn't find the solution&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 26 May 2023 01:40:06 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2023-05-26T01:40:06Z</dc:date>
    <item>
      <title>population stability index - DAX</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/population-stability-index-DAX/m-p/3254245#M120135</link>
      <description>&lt;P&gt;I need to compare a first year month of my distribuition with another year-month distribuition as well , in this example i need to compare 2020-05 with 2020-06,2020-07 and 2020-08.. and so on..&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;variable&lt;/TD&gt;&lt;TD&gt;2020-05&lt;/TD&gt;&lt;TD&gt;2020-06&lt;/TD&gt;&lt;TD&gt;2020-07&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;abc&lt;/TD&gt;&lt;TD&gt;50%&lt;/TD&gt;&lt;TD&gt;35%&lt;/TD&gt;&lt;TD&gt;%45&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xpto&lt;/TD&gt;&lt;TD&gt;35%&lt;/TD&gt;&lt;TD&gt;25%&lt;/TD&gt;&lt;TD&gt;%45&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;yzx&lt;/TD&gt;&lt;TD&gt;15%&lt;/TD&gt;&lt;TD&gt;40%&lt;/TD&gt;&lt;TD&gt;%10&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;the formula to generate &lt;SPAN&gt;population stability index is&amp;nbsp;&lt;/SPAN&gt;is : &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Σ&lt;/EM&gt;([2020-06]-[2020-05])*LN([2020-06]/[2020-05])&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;I have a table in this format&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;year_month&lt;/TD&gt;&lt;TD&gt;variable&lt;/TD&gt;&lt;TD&gt;&lt;BR /&gt;value_variable&lt;BR /&gt;&lt;BR /&gt;&lt;/TD&gt;&lt;TD&gt;quantity&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2020-05&lt;/TD&gt;&lt;TD&gt;example_varable&lt;/TD&gt;&lt;TD&gt;xpto&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2020-06&lt;/TD&gt;&lt;TD&gt;example_varable&lt;/TD&gt;&lt;TD&gt;xpto&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2020-06&lt;/TD&gt;&lt;TD&gt;example_varable&lt;/TD&gt;&lt;TD&gt;yzx&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;I made this dax&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;PSX =
VAR base_line =
    ADDCOLUMNS (
        SUMMARIZE (
            FILTER ( my_tb, my_tb[yearmonth] = "202005" ),
            Sheet1[variable],
            Sheet1[value_variable],
            Sheet1[yearmonth]
        ),
        "qtd_tp_bl", CALCULATE ( SUM ( Sheet1[qty] ) ),
        "total_tp_bl", CALCULATE ( SUM ( Sheet1[qty] ), ( Sheet1[value_variable] ) )
    )
VAR base_line_temp =
    SELECTCOLUMNS (
        base_line,
        "qtd_bl", [qtd_tp_bl],
        "total_bl", [total_tp_bl],
        "Variavel", [variable],
        "valor_Variavel", [value_variable]
    )
VAR tab_principal =
    ADDCOLUMNS (
        SUMMARIZE ( Sheet1, Sheet1[var], Sheet1[valor], Sheet1[anomes] ),
        "qtd_tp", CALCULATE ( SUM ( Sheet1[qtd] ) ),
        "total_tp", CALCULATE ( SUM ( Sheet1[qtd] ), ( Sheet1[valor] ) )
    )
VAR tab_principal_temp =
    SELECTCOLUMNS (
        tab_principal,
        "qtd", [qtd_tp],
        "total", [total_tp],
        "anomes", [yearmonth],
        "Variavel", [variable],
        "valor_Variavel", [value_variable]
    )
VAR uni_mer=
    NATURALLEFTOUTERJOIN ( tab_principal_temp, base_line_temp )

VAR tab_calculos =
    ADDCOLUMNS (
        ADDCOLUMNS ( uni_mer, "Calc", DIVIDE ( [qtd], [total], 0 ) ),
        "Base_Line_calc", DIVIDE ( [QTD_BL], [total_bl], 0 )
    )
VAR tab_final =
    ADDCOLUMNS (
        SUMMARIZE ( tab_calculos, [yearmonth], [Calc], [Base_Line_calc] ),
        "PS_I",
            ( [Calc] - [Base_Line_calc] )
                * IF (
                    DIVIDE ( [Calc], [Base_Line_calc], 0 ) = 0,
                    0,
                    LN ( DIVIDE ( [Calc], [Base_Line_calc], 0 ) )
                )
    )
RETURN
    SUMX ( tab_final, [PS_I] )&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;BR /&gt;in the end , returning zero by month &lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;BR /&gt;&lt;BR /&gt;when I generate the table before sumx, worked perfectly&lt;BR /&gt;&lt;BR /&gt;someone knows why this happens in measure? , I guess that is something related with context, but I couldn't find the solution&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 26 May 2023 01:40:06 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/population-stability-index-DAX/m-p/3254245#M120135</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2023-05-26T01:40:06Z</dc:date>
    </item>
    <item>
      <title>Re: population stability index - DAX</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/population-stability-index-DAX/m-p/3258636#M120421</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;Anonymous&lt;/LI-USER&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;" lang="zh-CN"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;You can try the following methods&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Sample data:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;img /&gt;&lt;/P&gt;
&lt;P&gt;Measure:&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;Previous quantity = 
Var _Previous_month=MAXX(FILTER(ALLEXCEPT('Table','Table'[value_variable]),[year_month]&amp;lt;SELECTEDVALUE('Table'[year_month])),[year_month])
Return
CALCULATE(SUM('Table'[quantity]),FILTER(ALLEXCEPT('Table','Table'[value_variable]),[year_month]=_Previous_month))&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;Result = 
Var _Currentquantity=SUM('Table'[quantity])
return
IF(ISBLANK(_Currentquantity) || ISBLANK([Previous quantity]),BLANK(),
SUMX('Table',_Currentquantity-[Previous quantity])*LN(_Currentquantity/[Previous quantity]))&lt;/LI-CODE&gt;
&lt;P&gt;&lt;img /&gt;&lt;/P&gt;
&lt;P&gt;&lt;img /&gt;&lt;/P&gt;
&lt;P&gt;Is this the result you expect?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Community Support Team _Charlotte&lt;/P&gt;
&lt;P&gt;If this post&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;helps&lt;/STRONG&gt;, then please consider&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;EM&gt;Accept it as the solution&lt;/EM&gt;&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to help the other members find it more quickly.&lt;/P&gt;</description>
      <pubDate>Tue, 30 May 2023 02:43:57 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/population-stability-index-DAX/m-p/3258636#M120421</guid>
      <dc:creator>v-zhangti</dc:creator>
      <dc:date>2023-05-30T02:43:57Z</dc:date>
    </item>
  </channel>
</rss>

