Get Dynamic Date Difference in Power BI - date

I am trying to get the difference between dates based on selected date values from a slicer.
From my image, the minimum date selected on the slicer is 5/10/2022 and the period to is all within 2022 therefore I was expecting a difference of less than 365. But it's subtracting 1/1/2008 which is the minimum date for my dates table.
I created the DateX_col to see the minimum value being used; my intention is to have that column show the minimum value selected on the slicer. How can I achieve this?
I'm using MIN(CALENDAR[DATES]) to get the minimum value dynamically, and I'd also like the same for MAX values.
Also, DATEDIFF(MIN(CALENDAR[DATES]), PERIOD_TO,DAYS) is not picking from the slicer, rather it's picking from the minimum value of the table. So my column: DateX_col = MIN(CALENDAR[DATES]) is showing 1/1/2008 and my measure: date x = MIN(CALENDAR[DATES]) is showing 5/10/2022.

It is not possible to get a dynamic MIN column in Power BI.
We can get dynamic data differences by creating a measure([Periodto - Datex]) using the measure ([date x).
Periodto - Datex = DATEDIFF([date x], MIN(Table1[PERIOD_TO]), DAY)

Related

Power BI - Timeseries compare two different start dates

I want to compare how different campaigns are progressing based on number of days into the campaign rather than by date (see day1, day2, etc... on the x-axis below).
Here is my DAX code, but I can't get it to work. Any help would be much appreciated...
**Normalised Campaign Metrics =
VAR DateReached = CALCULATE(MIN(Days[Day]),db[PAYMENT_DATE]<> BLANK(), KEEPFILTERS(db[PRODUCT_CODE SWITCH]))
VAR MaxDate = CALCULATE(MAX(db[PAYMENT_DATE]),KEEPFILTERS(db[PRODUCT_CODE SWITCH]))
VAR DayNo = SELECTEDVALUE(Days[Day])
RETURN CALCULATE(count(db[PAYMENT_DATE]),
FILTER(ALL(db[PAYMENT_DATE]),
DateReached+DayNo && DateReached+DayNo<=MaxDate))**
Many thanks!
enter image description here
I would recommend solving this through manipulating your actual data rather than a complex DAX measure. If you are familiar with star schema modelling, I would solve this problem by adding a new column to your fact table that calculates how many days from the start date the payment occurred and then connect this column to a new "Days Passed" dimension that is simply a list of numbers from 1 to however many days you need. Then, you can use this new dimension as the source data for your x axis and use a standard payment amount measure for your y axis.
I recommend to create a dimension table as the relative basis to comparison with inactive relationship. Here is a video about it:
https://youtu.be/knXFVf2ipro

How to calculate average for the calendar year

My input file consists of column Actual Exp and Actual Min.
Now I want to create a measure for calculating the average for the current calendar year having the latest month of data for Actual Exp and Actual Min.
I want to calculate the average from Jan'21 to Mar'21, and later if data gets added for Apr or May I would like to calculate the average from Jan'21 to May'21 or Apr'21.
Similarly, I want to have from Jan '21 to Dec'21 in Dec'21 and an average from Jan'22 to Feb'22 in Feb'22. I also have a date filter I don't want my date filter to affect the average.
I tried using TOTALYTD and MAX(Date), but it's not working.
Thanks.
I've not fully understood your question, but hopefully this helps:
AVERAGEX ( ALL(TABLENAME), TABLENAME[COLUMNNAME])
This should give you an average of COLUMNNAME no matter what filters/slicing you have in place.
If you wanted to futher restrict this, you can try creating a 2nd measure such as
CALCULATE(AVERAGEX ( ALL(TABLENAME), TABLENAME[COLUMNNAME]), datetable[monthcolumn] IN {"Jan", "Feb", "Mar"})

How can i create a mongodb query that calculates the difference of a value along other timestamps using a unique id

I have collected various data via the Twitch API and would now like to prepare and display it in a mondodb chart.
What I want to display are the viewer counts along the measurement points (timestamps). The IDs per timestamp should be compared with the viewer count. If the viewer count is equal to the previous timestamp, nothing should happen, if the value has changed, the difference to the current value should be entered e.g. in a new field. At the end I want to see on the x axis the timestamps and on the y axis the viewer count for the timestamps
here is a axample of the Object. Eevery minute I get one such object per active livestream (mostly 20 objects per request/timestamp)
_id:604672c85f68ef1c71546c71
id:40931788941
user_id:493094533
game_name:"Science & Technology"
title:"Arduino Lasershow aus dem 3D-Drucker. #arduino #3D-Druck #CNC #Program..."
viewer_count:151
started_at:"2021-03-08T14:50:25Z"
language:"de"
time:2021-03-08T18:54:00.911+00:00
__v:0
most important attributes:
id:40931788941
time:2021-03-08T18:54:00.911+00:00
viewer_count:151
My problem is that I don't know exactly how to calculate the difference to the previous object with native mongo. If you have another solution, bring it to me ;-)
EDIT:
You can see in the following screenshot the x axis the dates and on the y the viewer_count for this date. But the viewer_count is not meaningful because its a sum of all viewer_count values of all objects for the specific date.
I only want to get the cumulative value of the viewer_count attribute for the specific date.
Other aggregations for this attribute do not help much here either.

Percentage of total changes on applying filter

I have a data table with three dimensions and one measure. For each row, I am trying to calculate the percentage of total (calculated by taking the sum of rows) using a calculated field.
As seen in the screenshot attached, For the column titles 'Dec-19' I want the values to be a percentage of current value / grand total (calculated at the bottom as 122,187)
Screenshot of DataTable:
So e.g. for the Column B value of 2000, the Dec-19 column should be (97/122,187) * 100 = 0.079.
I have achieved this by creating a calculated field with the formula: SUM (sales) / MAX ({EXCLUDE (Column B): Sum (sales}), where sales is the measure used in the datatable.
However, upon application of filter on column B, the percentage value changes. e.g. if I select the value 2000 in my filter for column B, I get the percentage as 100%. It seems as if the percentage is being calculated based on only the rows in the filter.
Since you haven't included any sample data, I created some sample data like this, hope this resemble yours.
Thereafter, I built a cross-tab view in tableau, somewhat like yours
If that is the scenario, use a calculated field, say CF like this, instead of yours
([Sales])/
{FIXED [Col1], DATETRUNC('month', [Col3]) : sum([Sales])}
Dragging it in the view
and thus, filtering won't affect your calculation

highcharts x axis date variable range

I have difficulty to make date range in x-axis for highcharts.
It based on user input that can have various date range, can be a month, 14 days, 2 months, etc.
Is it possible to give minimum and maximum date, and let the highcharts arrange the scaling between min and max date?
And how will be the correct syntax?
appreciate for the help.
You can set min/max values for xAxis, but dynamic version can be achived by using variables defiend by user.
http://api.highcharts.com/highcharts#xAxis.min
http://api.highcharts.com/highcharts#xAxis.max