Forum Discussion
Count changes in a value/column
- 4 years ago
This turned out to be context issue that was solved by using ALLSELECTED versus ALL:
Changed Column = VAR __DateTime = [DateTime] VAR __PreviousDateTime = MAXX(FILTER(ALLSELECTED('Table'),[DateTime]<__DateTime),[DateTime]) VAR __PreviousPart = MAXX(FILTER(ALLSELECTED('Table'),[DateTime]=__PreviousDateTime),[Part]) RETURN IF([Part]=__PreviousPart,0,1)
Locco So would this be correct for part changes, I assume it needs to account for both changes in parts and quantity?
Parts Changes =
COUNTROWS(
DISTINCT(
SELECTCOLUMNS('TableA',"Part",[Part],"Quantity",[Quantity])
)
) - 1
I'm not grasphing how to get the changes for TD and ST numbers you presented given your sample data, can you explain?
- Locco4 years agoHelper III
Thanks Greg_Deckler,
That did not work, it only returns a distinct count and not how many times parts actually changed. If a part repeats later then that part isn't counted.
It's possible for a part to repeat multiple times in a column, in this case it would still count as a "1" since the part didn't actually change until a new part was loaded. If that part repeats later in the day, then it would count towards the change total.
For the TD and ST counts, I have merged the queries so this may no longer be an issue and if I get something to correctly count the part changes then that should also work for TD and ST changes.
Very similar issue here, but the solution there I could not get to work for me:
https://community.powerbi.com/t5/Desktop/Count-number-of-changes-of-the-value/m-p/487205
- Greg_Deckler4 years agoCommunity Champion
Locco OK, try the MTBF approach. See my article on Mean Time Between Failure (MTBF) which uses EARLIER: http://community.powerbi.com/t5/Community-Blog/Mean-Time-Between-Failure-MTBF-and-Power-BI/ba-p/339586.
The basic pattern is:
Column =
VAR __Current = [Value]
VAR __PreviousDate = MAXX(FILTER('Table','Table'[Date] < EARLIER('Table'[Date])),[Date])
VAR __Previous = MAXX(FILTER('Table',[Date]=__PreviousDate),[Value])
RETURN
__Current - __PreviousIn your case:
Changed Column = VAR __DateTime = [DateTime] VAR __PreviousDateTime = MAXX(FILTER('Table',[DateTime]<__DateTime),[DateTime]) VAR __PreviousPart = MAXX(FILTER('Table',[DateTime]=__PreviousDateTime),[Part]) RETURN IF([Part]=__PreviousPart,0,1)- Locco4 years agoHelper III
Thanks Greg_Deckler ,
That still is not returning the desired result.
I've copied a small sample of my data, utilizing the formula:
UPDATE_DATE PART TD Changed Column Count of Changed Column Changed Column 08/16/2021 0:12 11164 TD27414 1 1 1 08/16/2021 0:51 14054 TD27955 1 1 1 08/16/2021 1:13 14470 TD28112 1 1 1 08/16/2021 1:46 14490 TD28312 1 1 1 08/16/2021 2:20 14093 TD28412 1 1 1 08/16/2021 2:45 14075 TD28412 1 1 1 08/16/2021 3:10 4344 TD21038 1 1 1 08/16/2021 3:55 2165 TD10454 1 1 1 08/16/2021 4:30 2008 TD10291 1 1 1 08/16/2021 5:09 2006 TD10449 1 1 1 08/16/2021 5:24 11438 TD34994 1 1 1 08/16/2021 5:43 11436 TD34994 1 1 1 08/16/2021 6:08 14168 TD34112 1 1 1 08/16/2021 6:29 11444 TD35234 1 1 1 08/16/2021 6:55 12255 TD27456 1 1 1 08/16/2021 7:12 12254 TD27456 1 1 1 08/16/2021 8:28 14324 TD34142 1 1 1 08/16/2021 8:52 11380 TD10294 1 1 1 08/16/2021 9:50 2920 TD10329 1 1 1 08/16/2021 10:29 2918 TD10296 1 1 1 08/16/2021 10:54 11299 TD10242 1 1 1 08/16/2021 11:42 14290 TD31375 1 1 1 08/16/2021 12:13 4294 TD16872 1 1 1 08/16/2021 13:07 4283 TD17754 1 1 1 08/16/2021 13:28 4293 TD16973 1 1 1 08/16/2021 13:57 14251 TD36196 1 1 1 08/16/2021 14:35 14054 TD27955 1 1 1 08/16/2021 14:48 14056 TD28013 1 1 1 08/16/2021 15:10 14327 TD35036 1 1 1 08/16/2021 16:10 14326 TD35036 1 1 1 08/16/2021 16:38 11649 TD34116 1 1 1 08/16/2021 16:58 11436 TD34994 1 1 1 08/16/2021 17:23 11438 TD34994 1 1 1 08/16/2021 17:45 14168 TD34112 1 1 1 08/16/2021 18:37 2987 TD13073 1 1 1 08/16/2021 18:53 2987 TD13073 1 1 1 08/16/2021 19:37 2165 TD10454 1 1 1 08/16/2021 21:57 4282 TD16692 1 1 1 08/16/2021 22:42 14182 TD16893 1 1 1 08/16/2021 23:24 4343 TD21038 1 1 1 08/16/2021 23:45 14289 TD21038 0 1 0 There's a sum row that doesn't show up here. The first instance of "Changed Column" is with "No Summarization", second is with "Count", last is with "Sum" which returns the same value as "No Summarization."
It is not returning the correct # as a total, when it should give a 0 it is giving a 1. In a few instances the TD # repeats and I believe a 0 should populate.
(I've changed the formula parameters to "TD" instead of "Part" for this test')