Beide tabellen hadden periodieke data en ik besloot om van de gerealiseerde periodes de actuals te combineren met de budgetcijfers van de niet gerealiseerde periodes. Dat deed ik met behulp van de measure outlook met de functie: IF actual = 0; budget; actual.
Een prima werkte measure totdat ik de tabel liet totaliseren. Wat Powerpivot doet is simpelweg bij de totaaltelling de totalen van de actual en budget vergelijken en (aangezien de som van de actuals niet 0 is) het saldo van actuals als totaal opgeven voor de tabel outlook.
Hoe kon ik nou de juiste outlook berekenen?
Hieronder in een voorbeeld de problemen en oplossing uitgewerkt:
figuur 1a: 3 eenvoudige tabellen , actuals, budget & periode
figuur 1b: als volgt gelinkt in Powerpivot
Je ziet hier dat periodiek juist wordt gekozen tussen actuals en budget, maar dat het eindtotaal van €70.000 niet klopt.Dat had € 255.000 moeten zijn.
Ik heb op internet gezocht naar oplossingen, maar vond niet direct een vergelijkbaar probleem, wel een aantal aanwijzingen dat de oplossing ergens lag in een combinatie van SUMX en IF.
Na enige tijd kwam ik op de volgende measure voor een outlook:
Outlook beter = SUMX(VALUES(per[per]);IF(sum(Actual[actual])=BLANK();sum(Budget[budget]);sum(Actual[actual])))
Ik had ergens gelezen dat een SUMX icm IF, mits je de periodiek totaliseert, juist zou optellen.
Helaas klopte de totaaltelling van € 840.000 (12 x het totaal van de actuals a € 70.000) niet met de uitkomst die ik zocht.
figuur 4
Ik besloot om twee extra measures te maken TotalActual en TotalBudget
TotalActual = sum(Actual[actual]) & TotalBudget =sum(Budget[budget]) en daarna verving ik in de outlook measure sum(Actual[actual]) voor TotalActual & sum(Budget[budget]) voor TotalBudget het werkt!
Kennelijk moet je eerst een totaal berekenen en de uitkomst daarvan in een tweede meting te stoppen.
De measure voor de outlook wordt dan :
Outlook goed=SUMX(VALUES(per[per]);IF([TotalActual]=BLANK();[TotalBudget];[TotalActual]))
Figuur5 de oplossing met juiste outlook.