donderdag 4 januari 2024

How to make a period (Monthly) total for a distinct count in Power BI / Power Pivot using two measures.


Make 2 measures to calculate in two steps the sum (of a number of months) of distinctcounted IDNRs


A. Fist make a measure based on a discountcount formula.

Measure1: =DISTINCTCOUNT([IDNR])

B. Create a secound measure to calculate the total IDNR per month and a correct Endtotal based on Measure1

Measure2:SUMX(VALUES(TableName[month]);[Measure1])

Measure1 does not give the total of all months together, if gives the total unique IDNR in a year (1.163)

Measure2 gives the year total of the unique quantity of IDNR per month (6.266)

Tip: if you want a total per [location] or [year], simply change Measure2 VALUES into TableName[location] or [year]




dinsdag 28 februari 2023

 How to combine multiple rows in one row using Powerquery function : Group- by

Suppose you want to Group Names in one Cell and make a Sum the Count of multiple rows into one cell of below table using powerquery or PowerBI.


Select the table add into PowerQuery and use the function Group-by ( Dutch groeperen op)

Choose advanced doing the following: 

I changed the new Columnname into Names

After OK, one error appears for the column of Names.


You need to change the formula on the top :

- change in the formula List.Sum([Name]) into :Text.Combine([Name],", ")

The extra ", " gives you a usefull separarator.


It will work!



zaterdag 14 maart 2020




Next date of Previous date info met hulp van de DAX functie EARLIER()

Als je de beschikking hebt over een tabel met onregelmatige periodieke veranderingen van waardes, dan is het lastig om deze informatie te koppelen aan een andere tabel.

Bijvoorbeeld: een tabel met kostprijsmutaties van producten die op willekeurige data wijzigen.
Deze info wil je gebruiken om bijvoorbeeld een andere tabel met de dagelijkse productie aantallen te voorzien van de juiste kostprijs. Ik heb de beschikking over de tabel Price en een tabel Quantity  

         
                 
Ik wil de pricelist nu koppelen aan de kwantiteit om de waarde van de productie aantallen te berekenen. Helaas is er geen unieke sleutel te maken en dus moet het berekend worden.
Alvorens je dat kunt berekenen dient iedere rij een begin- en einddatum te hebben.
De begindatum is al bekend, de kolom einddatum is als volgt te berekenen:

NextDate=(CALCULATE(MIN(Price[date]);FILTER(Price;Price[date]>EARLIER(Price[date])&&Price[Category]=EARLIER([Category]))))

Als je de formule ontleed dan staat er eigenlijk:
Zoek de kleinste datum die groter is dan de huidige datum (de eerstvolgende datum dus), waarbij de Category overeenstemt.  De tabel ziet nu als volgt uit:

                          

De lege datumvelden zijn in de rijen met de hoogste Date per Category.
Om ook deze velden te vullen kun je hier eenvoudig een extra berekend kolom met de datum van vandaag invullen als volgt.

NextDateAll =if(Price[NextDate]<>0;Price[NextDate]-1;now())


Je hebt nu een begin- en einddatum RANGE gecreëerd waarmee je in de tabel Quantity de kostprijs kunt berekenen.

Eerst creëren we in de tabel Quantity een extra kolom om bij iedere productie regel de juiste Price in de datum RANGE op te vinden als volgt:

Price = CALCULATE(VALUES(Price[Price]);FILTER(Price;Price[Category]=Quantity[Category] && Quantity[Date]>=Price[Date] && Quantity[Date]<=Price[NextDateAll]))

En daarna eenvoudig :   Costprice =[Price]*[Quantity]

That's all!


Extra: PreviousDateAll
Mocht je op zoek zijn naar de datum van de vorige rij, previous row, dan is deze als volgt te vinden:

PreviousDate=CALCULATE(MAX(Price[date]);FILTER(Price;Price[date]<EARLIER(Price[date];1)&&Price[Category]=EARLIER([Category])))

En vervolgens als er geen eerdere datum is, is de begindatum gelijk aan de einddatum:
PreviousDateAll = if(Price[PreviousDate]<>0;Price[PreviousDate];Price[Date])