Forum Discussion
Quarterly Report- Select First Entry
- 2 years ago
Hi slhangen
You can add a calculated column, which will rank the entries by date.Count_times = RANKX(FILTER('Table', 'Table'[Id]= EARLIER('Table'[Id])),'Table'[date],,ASC,DENSE)and then use a simple dax for measure with filtering first entry only
First entries = CALCULATE(DISTINCTCOUNT('Table'[Id]),'Table'[Count_times]=1)pbix is attached
If this post helps, then please consider Accepting it as the solution to help the other members find it more quickly.
Hi slhangen
You can add a calculated column, which will rank the entries by date.
and then use a simple dax for measure with filtering first entry only
pbix is attached
If this post helps, then please consider Accepting it as the solution to help the other members find it more quickly.
- slhangen2 years agoHelper II
This was amazing! Works perfectly. Can I ask you to briefly walk me through what it does (1-2 sentences) as I am trying to expand my knowledge. Especially the DENSE function, never seen that one.
Thx again!!!
- Ritaf19832 years agoSuper User
Hi slhangen
The
RANKXfunction operates by assigning ranks to rows within a group based on a specified expression. In this instance, the expression utilized is thedatecolumn, ensuring that rows within eachIdgroup are ranked according to their corresponding dates.To effectively group rows based on their
Idvalues, theFILTERfunction is employed. This function creates a temporary table that exclusively contains the rows corresponding to the currentIdvalue. By leveraging theEARLIERfunction, theIdvalue from the preceding row is retrieved, ensuring that the ranking process is confined within eachIdgroup.The
ASCparameter plays a crucial role in determining the ranking order. It specifies that the ranking should be performed in ascending order, implying that earlier dates will receive lower ranks.To address situations where duplicate values exist, the
DENSEparameter is utilized. It ensures that ranks are assigned sequentially, without any gaps, even when duplicate values are encountered. For instance, if three rows share the same date, they will be assigned ranks of 1, 2, and 3, rather than 1, 1, and 4.More information about Rankx is here :
https://learn.microsoft.com/en-us/dax/rankx-function-daxOher way to give a kind of index to every row inside the id is to work with PQ , take a look at the linked tutorial :
https://radacad.com/create-row-number-for-each-group-in-power-bi-using-power-query
If this post helps, then please consider Accepting it as the solution to help the other members find it more quickly.
- slhangen2 years agoHelper II
Thank you so much, that explanation was extremely helpful.