<?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: Inferring Missing Columns and Imputing Missing Data in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5177441#M187932</link>
    <description>&lt;P&gt;Hi &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1580750" data-lia-user-login="liveincolorado" class="lia-mention lia-mention-user"&gt;liveincolorado&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for the update. Moving the logic to SQL is a good idea when Power BI transformations get complex, especially with account and month expansions.&lt;/P&gt;
&lt;P&gt;Using window functions for monthly totals per account is a solid approach. You could also create a monthly snapshot in SQL with active account flags and balances, so Power BI can use the dataset directly.&lt;/P&gt;
&lt;P&gt;With the data shaped at the source, Power BI can handle slicing, aggregation, and visualization more efficiently. If you have any issues modeling this, let me know, I’m happy to help.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 04 May 2026 11:56:37 GMT</pubDate>
    <dc:creator>v-sgandrathi</dc:creator>
    <dc:date>2026-05-04T11:56:37Z</dc:date>
    <item>
      <title>Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5150462#M187752</link>
      <description>&lt;P&gt;I am in the analysis stage of creating a PBI Report.&amp;nbsp; Here is what I am working with (not final...just preliminary&amp;nbsp; steps):&lt;BR /&gt;&lt;BR /&gt;Tabular Editor / The Cube&lt;BR /&gt;Oracle SQL Developer&lt;/P&gt;&lt;P&gt;Power BI Desktop&lt;BR /&gt;Excel (used by stakeholder to show me how/what they want)&lt;BR /&gt;&lt;BR /&gt;In Excel, the stakeholder's SQL is restricted by date guardrails (...and start_date &amp;lt;= to_date('31-MAR-2025', 'DD-MM-YY') etc).&lt;BR /&gt;&lt;BR /&gt;We're going to let PBI slice and dice dates.&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;acct_id,&lt;/P&gt;&lt;P&gt;rec_start_dt,&lt;/P&gt;&lt;P&gt;rec_end_dt,&lt;/P&gt;&lt;P&gt;sa_start_dt,s&lt;/P&gt;&lt;P&gt;a_end_dt,&lt;/P&gt;&lt;P&gt;tot_bal,&lt;/P&gt;&lt;P&gt;curr_bal&lt;BR /&gt;&lt;BR /&gt;Here is an example of the sql output that will become source in cube, just the first few rows:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;ACCT_ID&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;CLI_START_DT&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;CLI_END_DT&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;SA_START_DT&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;SA_END_DT&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;TOTAL_BALANCE&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;CURRENT_BALANCE&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;=IF(AND(B2&amp;lt;=DATE(2022,8,31), C2&amp;gt;=DATE(2022,8,1)), "Yes", "No")&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;=IF(AND(D2&amp;lt;=DATE(2022,8,31), E2&amp;gt;=DATE(2022,8,1)), "Yes", "No")&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;=IF(AND(H2="Yes", I2="Yes"), "Yes", "No")&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;123456&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;13-Jul-21&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;30-May-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;27-Apr-21&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;16-May-23&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;107.44&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;107.44&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;564789&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;1-Sep-22&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;16-Oct-22&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;7-Feb-22&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;20-Jun-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;103&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;103&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;564789&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;17-Oct-22&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;7-Feb-22&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;20-Jun-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;103&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;103&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;635241&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;28-Aug-23&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;1-May-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;10-May-19&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;29-Sep-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;247.15&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;247.15&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;635241&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;2-May-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;29-Sep-26&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;10-May-19&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;29-Sep-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;247.15&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;247.15&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;568923&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;18-May-23&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;5-Feb-20&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;2-Dec-22&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;-962&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;-962&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;568923&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;29-Oct-20&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;17-May-23&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;5-Feb-20&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;2-Dec-22&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;-962&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;-962&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;951847&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;15-Mar-21&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;3-Jun-23&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;26-Oct-18&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;3-Jun-22&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;539.3&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;539.3&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;592634&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;23-Sep-19&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;12-Sep-17&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;27-Feb-23&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;1540.35&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;1511.79&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;958471&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;26-Aug-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;8-Mar-23&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;26-Aug-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;876.2&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;54&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;258963&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;28-Feb-11&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;20-Jun-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;14-Sep-92&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;20-Jun-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;0&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;0&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;852147&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;28-Nov-22&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;5-Dec-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;12-Oct-15&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;23-May-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;1542.38&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;457.97&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;456987&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;1-Aug-23&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;2-Sep-26&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;3-Mar-21&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;2-Sep-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;49.9&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;0&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;Yes&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="2"&gt;456321&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;20-Nov-23&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;22-Dec-26&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;30-Dec-22&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;30-Mar-26&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;337.54&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;337.54&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;No&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;4&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;11&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;685.79&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;4&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;=COUNTIFS(B2:B15,"&amp;lt;=8/31/2022", C2:C15,"&amp;gt;=8/1/2022")&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;=COUNTIFS(D2:D15,"&amp;lt;=8/31/2022", E2:E15,"&amp;gt;=8/1/2022")&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;=SUMIF(J2:J15, "Yes", F2:F15)&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="2"&gt;=COUNTIFS(H2:H15,"Yes", I2:I15,"Yes")&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Ask 1: Active Accounts (measure in Power BI)&lt;/STRONG&gt;&lt;/U&gt;&lt;BR /&gt;I need to count the number of active accounts (monthly) and that definition of active is:&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&lt;BR /&gt;between (and including) cli_start_dt and cli_end_dt&lt;BR /&gt;AND&lt;BR /&gt;between (and including) sa_start_dt and sa_end_dt&lt;BR /&gt;AND if no cli_end_dt and no sa_end_dt, assume account is still active.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, ACCT_ID 123456 is active for August 2022, even though that date is not explicitly stated in the table.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Ask 2: Total Balance (measure in Power BI)&lt;/STRONG&gt;&lt;/U&gt;&lt;BR /&gt;I need to sum the TOTAL_BALANCE of ONLY the active accounts in the months they were active (Ask 1)&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;1.&amp;nbsp; Need to infer the value of the assumed missing dates cells&lt;/P&gt;&lt;P&gt;2.&amp;nbsp; If real or assumed cell is empty, the value will be the prior month's value.&lt;BR /&gt;&lt;BR /&gt;ACCT_ID 123456 will have 107.44 in the assumed (but missing) date of April 2023, but 0.00 in June 2024&lt;BR /&gt;&lt;BR /&gt;&lt;U&gt;&lt;STRONG&gt;Ask 3: Avg Payoff Balance per Account&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;I need the average payoff balance per Account (dates will be filtered by slicers)&lt;BR /&gt;&lt;BR /&gt;1.&amp;nbsp; Active accounts only&lt;/P&gt;&lt;P&gt;2.&amp;nbsp; If cell is empty, then use previous month's values&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;August 2022 had 4 active acounts, Total balance for those active account for Aug 2022 is 685.79 (assume every single value for all inferred months/years is from column F.&amp;nbsp; Average Payoff Balance per Account is $171.48 (685.75/4 active accounts)&lt;BR /&gt;Month&lt;BR /&gt;&lt;BR /&gt;The table or matrix would look like this:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;2022&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Month&lt;/TD&gt;&lt;TD&gt;Number of active Accounts&lt;/TD&gt;&lt;TD&gt;Total balance&lt;/TD&gt;&lt;TD&gt;Average Payoff Balance per Account&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;August&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;685.79&lt;/TD&gt;&lt;TD&gt;171.48&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;What is the DAX for the three columns&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have written soooo many iterations&lt;/P&gt;</description>
      <pubDate>Thu, 16 Apr 2026 13:57:25 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5150462#M187752</guid>
      <dc:creator>liveincolorado</dc:creator>
      <dc:date>2026-04-16T13:57:25Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5150669#M187754</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1580750" data-lia-user-login="liveincolorado" class="lia-mention lia-mention-user"&gt;liveincolorado&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've created the sample .pbix file for you with DAX for all the three columns.&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;Active Accounts = 
VAR StartDate = MIN('Date'[Date])
VAR EndDate = MAX('Date'[Date])
RETURN
CALCULATE(
    DISTINCTCOUNT(Accounts[ACCT_ID]),
    FILTER(
        Accounts,
        
        -- CLI condition
        Accounts[CLI_START_DT] &amp;lt;= EndDate &amp;amp;&amp;amp;
        COALESCE(Accounts[CLI_END_DT], DATE(9999,12,31)) &amp;gt;= StartDate &amp;amp;&amp;amp;

        -- SA condition
        Accounts[SA_START_DT] &amp;lt;= EndDate &amp;amp;&amp;amp;
        COALESCE(Accounts[SA_END_DT], DATE(9999,12,31)) &amp;gt;= StartDate
    )
)&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;Total Balance = 
VAR EndDate = MAX('Date'[Date])
RETURN
SUMX(
    VALUES(Accounts[ACCT_ID]),
    
    VAR LatestRow =
        CALCULATE(
            MAX(Accounts[CLI_START_DT]),
            FILTER(
                Accounts,
                Accounts[ACCT_ID] = EARLIER(Accounts[ACCT_ID]) &amp;amp;&amp;amp;
                Accounts[CLI_START_DT] &amp;lt;= EndDate
            )
        )

    VAR Balance =
        CALCULATE(
            MAX(Accounts[TOTAL_BALANCE]),
            Accounts[CLI_START_DT] = LatestRow
        )

    VAR IsActive =
        CALCULATE(
            COUNTROWS(Accounts),
            FILTER(
                Accounts,
                Accounts[ACCT_ID] = EARLIER(Accounts[ACCT_ID]) &amp;amp;&amp;amp;
                Accounts[CLI_START_DT] &amp;lt;= EndDate &amp;amp;&amp;amp;
                COALESCE(Accounts[CLI_END_DT], DATE(9999,12,31)) &amp;gt;= EndDate &amp;amp;&amp;amp;
                Accounts[SA_START_DT] &amp;lt;= EndDate &amp;amp;&amp;amp;
                COALESCE(Accounts[SA_END_DT], DATE(9999,12,31)) &amp;gt;= EndDate
            )
        )

    RETURN IF(IsActive &amp;gt; 0, Balance)
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;Avg Payoff Balance = 
DIVIDE(
    [Total Balance],
    [Active Accounts]
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please see attached file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":glowing_star:"&gt;🌟&lt;/span&gt; I hope this solution helps you unlock your Power BI potential! If you found it helpful, click '&lt;STRONG&gt;Mark as Solution&lt;/STRONG&gt;' to guide others toward the answers they need.&lt;BR /&gt;&lt;span class="lia-unicode-emoji" title=":light_bulb:"&gt;💡&lt;/span&gt; Love the effort? Drop the kudos! Your appreciation fuels community spirit and innovation.&lt;BR /&gt;&lt;span class="lia-unicode-emoji" title=":military_medal:"&gt;🎖&lt;/span&gt; As a proud &lt;STRONG&gt;SuperUser&lt;/STRONG&gt; and &lt;STRONG&gt;Microsoft Partner&lt;/STRONG&gt;, we’re here to empower your data journey and the Power BI Community at large.&lt;BR /&gt;&lt;span class="lia-unicode-emoji" title=":link:"&gt;🔗&lt;/span&gt; Curious to explore more? [&lt;A href="https://www.grazitti.com/services/data-science/solutions/data-visualization/?utm_source=community&amp;amp;utm_medium=powerbi-community&amp;amp;utm_campaign=Community-Outreach-By-Analytics" target="_self"&gt;Discover here&lt;/A&gt;].&lt;BR /&gt;&lt;STRONG&gt;Let’s keep building smarter solutions together!&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Apr 2026 05:00:12 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5150669#M187754</guid>
      <dc:creator>grazitti_sapna</dc:creator>
      <dc:date>2026-04-16T05:00:12Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5151866#M187762</link>
      <description>&lt;P&gt;Thank you!&amp;nbsp; I'll let you know how this works.&amp;nbsp; I've been playing with this:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;let // Replace this with your actual source table step Source = YourSourceTableHere, // Ensure types TypeFixed = Table.TransformColumnTypes(Source, {{"acct_id", type text}, {"cli_start_dt", type date}, {"cli_end_dt", type nullable date}, {"sa_start_dt", type date}, {"sa_end_dt", type nullable date}, {"total_balance", type nullable number}, {"current_balance", type nullable number}}),&lt;/P&gt;&lt;P&gt;// Window parameters: set first month and number of months StartMonth = #date(2016, 4, 1), // set to desired first month (first day) Months = 123,&lt;/P&gt;&lt;P&gt;// Build global month list for the window MonthList = List.Transform({0..(Months-1)}, each Date.AddMonths(StartMonth, _)), MonthTable = Table.FromList(MonthList, Splitter.SplitByNothing(), {"MonthStart"}), MonthTable2 = Table.AddColumn(MonthTable, "YearMonth", each Date.ToText([MonthStart],"yyyy-MM")),&lt;/P&gt;&lt;P&gt;// Normalize null ends to a far future so open-ended accounts are treated as active if in window NormEnds = Table.TransformColumns(TypeFixed, {{"cli_end_dt", each if _ = null then #date(9999,12,31) else _, type date}, {"sa_end_dt", each if _ = null then #date(9999,12,31) else _, type date}}),&lt;/P&gt;&lt;P&gt;// Cross join accounts with month table =&amp;gt; account x month (full window) AddKeysrc=Table.AddColumn(NormEnds, "Key", each 1), AddKeyMonths = Table.AddColumn(MonthTable2, "Key", each 1), Join = Table.NestedJoin(AddKeySrc, "Key", AddKeyMonths, "Key", "M", JoinKind.Inner), ExpandMonths = Table.ExpandTableColumn(Join, "M", {"MonthStart","YearMonth"}, {"MonthStart","YearMonth"}),&lt;/P&gt;&lt;P&gt;// Compute month end for comparisons AddMonthEnd = Table.AddColumn(ExpandMonths, "MonthEnd", each Date.EndOfMonth([MonthStart]), type date),&lt;/P&gt;&lt;P&gt;// Flags per month AddCLIFlag = Table.AddColumn(AddMonthEnd, "CLI_In_Month", each ([cli_start_dt] &amp;lt;= [MonthEnd] and [cli_end_dt] &amp;gt;= [MonthStart]), type logical), AddSAFlag = Table.AddColumn(AddCLIFlag, "SA_In_Month", each ([sa_start_dt] &amp;lt;= [MonthEnd] and [sa_end_dt] &amp;gt;= [MonthStart]), type logical), AddActive = Table.AddColumn(AddSAFlag, "IsActive", each ([CLI_In_Month] and [SA_In_Month]), type logical),&lt;/P&gt;&lt;P&gt;// Sort and carry-forward balances per acct across months (fill down) Sorted = Table.Sort(AddActive, {{"acct_id", Order.Ascending}, {"MonthStart", Order.Ascending}}), KeepCols = Table.SelectColumns(Sorted, {"acct_id","MonthStart","YearMonth","MonthEnd","CLI_In_Month","SA_In_Month","IsActive","total_balance","current_balance"}), Grouped = Table.Group(KeepCols, {"acct_id"}, {{"Rows", each Table.FillDown(Table.TransformColumnTypes(_, {{"total_balance", type nullable number}, {"current_balance", type nullable number}}), {"total_balance","current_balance"})}}), Expanded = Table.ExpandTableColumn(Grouped, "Rows", {"MonthStart","YearMonth","MonthEnd","CLI_In_Month","SA_In_Month","IsActive","total_balance","current_balance"}),&lt;/P&gt;&lt;P&gt;// Replace remaining null balances (leading nulls) with 0 ReplaceNulls = Table.ReplaceValue(Expanded, null, 0, Replacer.ReplaceValue, {"total_balance","current_balance"}),&lt;/P&gt;&lt;P&gt;// Pivot each measure into month-columns. We'll create three pivoted tables and join them back. SelectBase = Table.SelectColumns(ReplaceNulls, {"acct_id","YearMonth","CLI_In_Month","SA_In_Month","IsActive","total_balance","current_balance"}),&lt;/P&gt;&lt;P&gt;// Pivot CLI CLI = Table.SelectColumns(SelectBase, {"acct_id","YearMonth","CLI_In_Month"}), CLI_Pivot = Table.Pivot(Table.TransformColumnTypes(CLI, {{"YearMonth", type text}}), List.Distinct(CLI[YearMonth]), "YearMonth", "CLI_In_Month", List.Max),&lt;/P&gt;&lt;P&gt;// Pivot SA SA = Table.SelectColumns(SelectBase, {"acct_id","YearMonth","SA_In_Month"}), SA_Pivot = Table.Pivot(Table.TransformColumnTypes(SA, {{"YearMonth", type text}}), List.Distinct(SA[YearMonth]), "YearMonth", "SA_In_Month", List.Max),&lt;/P&gt;&lt;P&gt;// Pivot IsActive ACT = Table.SelectColumns(SelectBase, {"acct_id","YearMonth","IsActive"}), ACT_Pivot = Table.Pivot(Table.TransformColumnTypes(ACT, {{"YearMonth", type text}}), List.Distinct(ACT[YearMonth]), "YearMonth", "IsActive", List.Max),&lt;/P&gt;&lt;P&gt;// Pivot total_balance TB = Table.SelectColumns(SelectBase, {"acct_id","YearMonth","total_balance"}), TB_Pivot = Table.Pivot(Table.TransformColumnTypes(TB, {{"YearMonth", type text}}), List.Distinct(TB[YearMonth]), "YearMonth", "total_balance", List.Max),&lt;/P&gt;&lt;P&gt;// Pivot current_balance CB = Table.SelectColumns(SelectBase, {"acct_id","YearMonth","current_balance"}), CB_Pivot = Table.Pivot(Table.TransformColumnTypes(CB, {{"YearMonth", type text}}), List.Distinct(CB[YearMonth]), "YearMonth", "current_balance", List.Max),&lt;/P&gt;&lt;P&gt;// Merge all pivot tables on acct_id Merge1 = Table.NestedJoin(CLI_Pivot, "acct_id", SA_Pivot, "acct_id", "SA", JoinKind.LeftOuter), Merge2 = Table.ExpandTableColumn(Merge1, "SA", Table.ColumnNames(SA_Pivot)), Merge3 = Table.NestedJoin(Merge2, "acct_id", ACT_Pivot, "acct_id", "ACT", JoinKind.LeftOuter), Merge4 = Table.ExpandTableColumn(Merge3, "ACT", Table.ColumnNames(ACT_Pivot)), Merge5 = Table.NestedJoin(Merge4, "acct_id", TB_Pivot, "acct_id", "TB", JoinKind.LeftOuter), Merge6 = Table.ExpandTableColumn(Merge5, "TB", Table.ColumnNames(TB_Pivot)), Merge7 = Table.NestedJoin(Merge6, "acct_id", CB_Pivot, "acct_id", "CB", JoinKind.LeftOuter), Final = Table.ExpandTableColumn(Merge7, "CB", Table.ColumnNames(CB_Pivot)) in Final&lt;/P&gt;</description>
      <pubDate>Fri, 17 Apr 2026 01:22:59 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5151866#M187762</guid>
      <dc:creator>liveincolorado</dc:creator>
      <dc:date>2026-04-17T01:22:59Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5154043#M187781</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1580750" data-lia-user-login="liveincolorado" class="lia-mention lia-mention-user"&gt;liveincolorado&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for sharing your Power Query solution, it's a thorough approach, and you've clearly considered the monthly expansion and carry-forward logic. However, I recommend caution, as creating a full account × month cross join and multiple transformations can result in a large dataset and may affect performance as your data grows. This could also increase model complexity.&lt;/P&gt;
&lt;P&gt;In Power BI, it's typically more efficient to handle this logic in DAX measures rather than in Power Query. The DAX method dynamically evaluates active accounts by date context, manages open-ended dates with COALESCE, and retrieves the latest balance without generating all month combinations.&lt;/P&gt;
&lt;P&gt;Your Power Query method is valid if you require a precomputed snapshot table, but it's best to limit the date range and avoid heavy pivoting to keep the model manageable. I suggest testing both approaches with your dataset to compare performance, refresh time, and usability before making a final decision.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Mon, 20 Apr 2026 04:57:55 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5154043#M187781</guid>
      <dc:creator>v-sgandrathi</dc:creator>
      <dc:date>2026-04-20T04:57:55Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5155961#M187818</link>
      <description>&lt;P&gt;Unfortunately, this produces the same error as my earlier attempts.&amp;nbsp; It is not counting the total active accounts in a month.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 22 Apr 2026 13:12:49 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5155961#M187818</guid>
      <dc:creator>liveincolorado</dc:creator>
      <dc:date>2026-04-22T13:12:49Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5156187#M187823</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1580750" data-lia-user-login="liveincolorado" class="lia-mention lia-mention-user"&gt;liveincolorado&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for the update.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Total Balance =&lt;BR /&gt;VAR MonthStart = MIN('Date'[Date])&lt;BR /&gt;VAR MonthEnd = MAX('Date'[Date])&lt;/P&gt;
&lt;P&gt;RETURN&lt;BR /&gt;SUMX(&lt;BR /&gt;VALUES(Accounts[ACCT_ID]),&lt;/P&gt;
&lt;P&gt;VAR LatestDate =&lt;BR /&gt;CALCULATE(&lt;BR /&gt;MAX(Accounts[CLI_START_DT]),&lt;BR /&gt;FILTER(&lt;BR /&gt;Accounts,&lt;BR /&gt;Accounts[ACCT_ID] = EARLIER(Accounts[ACCT_ID]) &amp;amp;&amp;amp;&lt;BR /&gt;Accounts[CLI_START_DT] &amp;lt;= MonthEnd&lt;BR /&gt;)&lt;BR /&gt;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;VAR Balance =&lt;BR /&gt;CALCULATE(&lt;BR /&gt;MAX(Accounts[TOTAL_BALANCE]),&lt;BR /&gt;Accounts[CLI_START_DT] = LatestDate&lt;BR /&gt;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;VAR IsActive =&lt;BR /&gt;CALCULATE(&lt;BR /&gt;COUNTROWS(Accounts),&lt;BR /&gt;FILTER(&lt;BR /&gt;Accounts,&lt;BR /&gt;Accounts[ACCT_ID] = EARLIER(Accounts[ACCT_ID]) &amp;amp;&amp;amp;&lt;BR /&gt;Accounts[CLI_START_DT] &amp;lt;= MonthEnd &amp;amp;&amp;amp;&lt;BR /&gt;COALESCE(Accounts[CLI_END_DT], DATE(9999,12,31)) &amp;gt;= MonthStart &amp;amp;&amp;amp;&lt;BR /&gt;Accounts[SA_START_DT] &amp;lt;= MonthEnd &amp;amp;&amp;amp;&lt;BR /&gt;COALESCE(Accounts[SA_END_DT], DATE(9999,12,31)) &amp;gt;= MonthStart&lt;BR /&gt;)&lt;BR /&gt;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;RETURN&lt;BR /&gt;IF(IsActive &amp;gt; 0, Balance)&lt;BR /&gt;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thankyou.&lt;/P&gt;</description>
      <pubDate>Fri, 08 May 2026 13:06:44 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5156187#M187823</guid>
      <dc:creator>v-sgandrathi</dc:creator>
      <dc:date>2026-05-08T13:06:44Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5156191#M187824</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1580750" data-lia-user-login="liveincolorado" class="lia-mention lia-mention-user"&gt;liveincolorado&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Did you try this solution? if it works kindly mark as accepted soltution, if not let me know the challange you are facing&lt;/P&gt;</description>
      <pubDate>Thu, 23 Apr 2026 04:32:09 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5156191#M187824</guid>
      <dc:creator>grazitti_sapna</dc:creator>
      <dc:date>2026-04-23T04:32:09Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5159099#M187863</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1580750" data-lia-user-login="liveincolorado" class="lia-mention lia-mention-user"&gt;liveincolorado&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-teams="true"&gt;We haven’t heard from you on the last response and was just checking back to see if your query was answered.&lt;BR /&gt;Otherwise, will respond back with the more details and we will try to help.&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Apr 2026 09:59:38 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5159099#M187863</guid>
      <dc:creator>v-sgandrathi</dc:creator>
      <dc:date>2026-04-27T09:59:38Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5161820#M187882</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1580750" data-lia-user-login="liveincolorado" class="lia-mention lia-mention-user"&gt;liveincolorado&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-teams="true"&gt;I wanted to follow up on our previous suggestions regarding the issue. We would love to hear back from you to ensure we can assist you further.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-teams="true"&gt;Thank you.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 30 Apr 2026 05:24:15 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5161820#M187882</guid>
      <dc:creator>v-sgandrathi</dc:creator>
      <dc:date>2026-04-30T05:24:15Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5176413#M187901</link>
      <description>&lt;P&gt;Thank you.&amp;nbsp; It is too heavy a lift for the report, so we are going back to sql statements.&amp;nbsp; There is one for the accounts (with start and end dates) and then one for balances that aggregates "total this month" as&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;SUM(month_total_balance) OVER (&lt;/P&gt;&lt;P&gt;PARTITION BY acct_id&lt;BR /&gt;ORDER BY monthly_balance&lt;/P&gt;&lt;P&gt;) as monthly total&lt;BR /&gt;&lt;BR /&gt;I can work with this in PBI.&lt;/P&gt;</description>
      <pubDate>Thu, 30 Apr 2026 17:38:32 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5176413#M187901</guid>
      <dc:creator>liveincolorado</dc:creator>
      <dc:date>2026-04-30T17:38:32Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5177164#M187926</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1580750" data-lia-user-login="liveincolorado" class="lia-mention lia-mention-user"&gt;liveincolorado&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for the update.&lt;/P&gt;
&lt;P&gt;It's great that you found a more efficient way by managing part of the logic in SQL, as that should help with performance.&lt;/P&gt;
&lt;P&gt;If you need any more help with the data in Power BI, please let me know.&lt;/P&gt;
&lt;P&gt;Thanks again.&lt;/P&gt;</description>
      <pubDate>Mon, 04 May 2026 04:35:49 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5177164#M187926</guid>
      <dc:creator>v-sgandrathi</dc:creator>
      <dc:date>2026-05-04T04:35:49Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5177441#M187932</link>
      <description>&lt;P&gt;Hi &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1580750" data-lia-user-login="liveincolorado" class="lia-mention lia-mention-user"&gt;liveincolorado&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for the update. Moving the logic to SQL is a good idea when Power BI transformations get complex, especially with account and month expansions.&lt;/P&gt;
&lt;P&gt;Using window functions for monthly totals per account is a solid approach. You could also create a monthly snapshot in SQL with active account flags and balances, so Power BI can use the dataset directly.&lt;/P&gt;
&lt;P&gt;With the data shaped at the source, Power BI can handle slicing, aggregation, and visualization more efficiently. If you have any issues modeling this, let me know, I’m happy to help.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 04 May 2026 11:56:37 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5177441#M187932</guid>
      <dc:creator>v-sgandrathi</dc:creator>
      <dc:date>2026-05-04T11:56:37Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5178139#M187963</link>
      <description>&lt;P&gt;Need to rethink the goal of the report.&amp;nbsp; The focus is aggregated yearly stats with no need (at least for now) for any drill-through.&amp;nbsp; The SQL will be time-bound (never ideal), because the full dataset is 5gb.&amp;nbsp; Since the focus is on more recent data (after 2023), but access to more historical data (before 2023), then data refreshes for data before 2023 can be quarterly and data refreshes for 2023 -2025 can be monthly, and data for 2026 can be daily.&amp;nbsp; The following example is being tested for each year going back 10 years:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;--ACCOUNTS&lt;BR /&gt;WITH ACTIVE AS (&lt;BR /&gt;SELECT DISTINCT&lt;/P&gt;&lt;P&gt;a.acct_id,&lt;/P&gt;&lt;P&gt;a.a_start,&lt;/P&gt;&lt;P&gt;a.a_end,&lt;/P&gt;&lt;P&gt;b.b_start,&lt;/P&gt;&lt;P&gt;b.b_end,&lt;/P&gt;&lt;P&gt;FROM accounts a&lt;/P&gt;&lt;P&gt;LEFT JOIN status b&lt;/P&gt;&lt;P&gt;ON a.acct_id = b.acct_id&lt;/P&gt;&lt;P&gt;WHERE a.type = 'current'&lt;/P&gt;&lt;P&gt;AND a.a_start &amp;lt;= DATE '2025-12-31'&lt;/P&gt;&lt;P&gt;AND (a.a_end &amp;gt;= DATE '2025-01-31'&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SELECT * FROM (&lt;/P&gt;&lt;P&gt;SELECT&lt;/P&gt;&lt;P&gt;active.acct_id,&lt;/P&gt;&lt;P&gt;active.a_start,&lt;/P&gt;&lt;P&gt;active.a_end,&lt;/P&gt;&lt;P&gt;active.b_start,&lt;/P&gt;&lt;P&gt;active b_end,&lt;/P&gt;&lt;P&gt;/* FLAG 1 */&lt;BR /&gt;CASE WHEN EXISTS (&lt;/P&gt;&lt;P&gt;SELECT 1 FROM accounts a&lt;/P&gt;&lt;P&gt;WHERE a.type = 'current'&lt;/P&gt;&lt;P&gt;AND a.acct_id = active.acct_id&lt;/P&gt;&lt;P&gt;AND a.a_start &amp;lt;= DATE '2025-01-31'&lt;/P&gt;&lt;P&gt;AND (a.a_end &amp;gt;= DATE '2025-01-01 OR a.a_end IS NULL)&lt;BR /&gt;) THEN 'Yes' ELSE 'No' END AS active1_jan_2025&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/ * REPEAT FOR EACH MONTH REMAINING: FEB - DEC */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* FLAG 2 */&lt;/P&gt;&lt;P&gt;CASE WHEN EXISTS (&lt;/P&gt;&lt;P&gt;SELECT 1 FROM accounts a&lt;/P&gt;&lt;P&gt;WHERE a.type = 'current'&lt;/P&gt;&lt;P&gt;AND a.acct_id = active.acct_id&lt;/P&gt;&lt;P&gt;AND b.b_start &amp;lt;= DATE '2025-01-31'&lt;/P&gt;&lt;P&gt;AND b.b_end &amp;gt;= DATE '2025-01-01 OR b.b_end IS NULL)&lt;BR /&gt;) THEN 'Yes' ELSE 'No' END AS active2_jan_2025&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/ * REPEAT FOR EACH MONTH REMAINING: FEB - DEC */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;FROM ACTIVE&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;--BALANCES:&lt;/P&gt;&lt;P&gt;WITH ACCOUNTS AS (&lt;BR /&gt;SELECT DISTINCT a.acct_id&lt;BR /&gt;FROM accounts.account a&lt;BR /&gt;WHERE a.type = 'current'&lt;BR /&gt;AND a.start &amp;lt;= '2025-12-31'&lt;BR /&gt;AND (a.end &amp;gt;= '2025-01-01 OR a.end IS NULL)&lt;BR /&gt;),&lt;BR /&gt;JANBAL AS (&lt;BR /&gt;SELECT&lt;BR /&gt;b.acct_id,&lt;BR /&gt;SUM(total) AS total_jan_2025,&lt;BR /&gt;SUM(current) AS current_jan_2025&lt;BR /&gt;FROM amounts b&lt;BR /&gt;JOIN transactions c ON b.id = c.id&lt;BR /&gt;WHERE TRYN(c.create) &amp;lt;= DATE '2025-01-31'&lt;BR /&gt;GROUP BY b.acct_id&lt;/P&gt;&lt;P&gt;/* REPEAT FOR EACH MONTH REMAINING: FEB - DEC */&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;SELECT&lt;BR /&gt;acct_id,&lt;BR /&gt;janbal.tot_jan_2025,&lt;BR /&gt;janbal.cur_jan_2025,&lt;BR /&gt;/* REPEAT FOR EACH MONTH REMAINING: FEB - DEC */&lt;/P&gt;&lt;P&gt;FROM ACCOUNTS&lt;BR /&gt;LEFT JOIN JANBAL USING (ACCT_ID)&lt;BR /&gt;/* REPEAT FOR EACH MONTH REMAINING: FEB - DEC */&lt;/P&gt;&lt;P&gt;ORDER BY acct_id&lt;BR /&gt;;&lt;/P&gt;</description>
      <pubDate>Tue, 05 May 2026 14:19:57 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5178139#M187963</guid>
      <dc:creator>liveincolorado</dc:creator>
      <dc:date>2026-05-05T14:19:57Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5178447#M187966</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1580750" data-lia-user-login="liveincolorado" class="lia-mention lia-mention-user"&gt;liveincolorado&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You’re on the right track by simplifying the goal to aggregated yearly stats and using tiered refresh logic, which is a solid way to handle a 5GB dataset.&lt;/P&gt;
&lt;P&gt;However, the current SQL approach, creating monthly flags like active1_jan_2025 and repeating logic for each month and year will be hard to maintain and scale, especially over more than 10 years.&lt;/P&gt;
&lt;P&gt;Instead of creating separate columns for each month, consider restructuring the output to return data at a month grain (row-based), such as acct_id, year, month, is_active, and total_balance. This method avoids repeating SQL for every month and keeps the dataset flexible.&lt;/P&gt;
&lt;P&gt;For your refresh strategy, your idea of quarterly/monthly/daily splits fits well with incremental refresh or partitioning. You can still use time-bound SQL, but it’s better to parameterize it by year or date range rather than hardcoding each month.&lt;/P&gt;
&lt;P&gt;Your use of window functions for balances is effective. You can expand this to create a monthly snapshot table (one row per account per month), which Power BI can easily aggregate to the yearly level.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Wed, 06 May 2026 04:52:00 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5178447#M187966</guid>
      <dc:creator>v-sgandrathi</dc:creator>
      <dc:date>2026-05-06T04:52:00Z</dc:date>
    </item>
    <item>
      <title>Re: Inferring Missing Columns and Imputing Missing Data</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5185848#M188099</link>
      <description>&lt;P&gt;This thread morphed into something that was difficult to follow.&amp;nbsp; The noted solution in this post is not correct for me; it did not work.&amp;nbsp; The solution is ~950 line SQL statement that aggregates a series of linear steps and formulas in Excel, into one SQL statement.&amp;nbsp; The final output for a single year is a stand-alone dataset of 12 rows with the following columns:&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&lt;BR /&gt;Month&lt;BR /&gt;No of Active Accounts&lt;BR /&gt;Total Balance&lt;BR /&gt;Avg Monthly Balance of Accounts&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;The reason for this approach was processing load and row limits in Tabular Editor along with two different grains that the stakeholder's final Excel workbook manually created.&amp;nbsp; Historical years up to 2025 are not refreshed; 2026 is refreshed daily.&amp;nbsp; Each year the report will need maintenance.&amp;nbsp; (Until we have more compute and higher allowable rowcounts, this is the solution that works.)&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;From this one-SQL solution, only 3 measures are needed for other visuals on the report page:&lt;BR /&gt;&lt;BR /&gt;Anonymized DAX is:&amp;nbsp;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;xxxx Avg Account Count =&lt;BR /&gt;AVERAGE(‘PROJECT_BALANCES'[# Active Accounts])&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;xxxx Avg of Avg Payoff Balance per Account =&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;AVERAGE(‘PROJECT_BALANCES'[Average Payoff Balance per Account])&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;xxxx Avg Total Payoff Balance =&lt;BR /&gt;AVERAGE(‘PROJECT_BALANCES'[Total Payoff Balance])&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I appreciate the feedback.&amp;nbsp; If you want the SQL, dm me.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 20 May 2026 03:08:16 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Inferring-Missing-Columns-and-Imputing-Missing-Data/m-p/5185848#M188099</guid>
      <dc:creator>liveincolorado</dc:creator>
      <dc:date>2026-05-20T03:08:16Z</dc:date>
    </item>
  </channel>
</rss>

