cancel
Showing results for
Did you mean:
Super User

## Need help with the dax

Hello everyone!

Recently I have created a report based on an excel which has few calculations. The calculations in the excel are as below:

 Sales Rep Expected Return Date Act Return Date Act Return Date with Today's date Days Correct Return Late Return % of late return Ja 29-09-2022 00:00 20-10-2022 21 0 1 Ja 29-09-2022 00:00 27-09-2022 00:00 27-09-2022 -2 1 0 Ja 01-10-2022 00:00 20-10-2022 19 0 1 Ja 02-10-2022 00:00 20-10-2022 18 0 1 Ja 02-10-2022 00:00 26-09-2022 00:00 26-09-2022 -6 1 0 Ja 03-10-2022 00:00 20-10-2022 17 0 1 Ja 05-10-2022 00:00 20-10-2022 15 0 1 Ja 05-10-2022 00:00 26-09-2022 00:00 26-09-2022 -9 1 0 Ja 07-10-2022 00:00 20-10-2022 13 0 1 86 3 6 67%

Expected return date and Act return date are data's already available. In Act return date if it is blank it should take Today's date, difference of Expected Return Date and Act Return Date with Today's date is Days.

If Days is less than 0 then Correct Return is 1 else its 0, vice versa is for Late return where if Days is more than 0 then it is 1 else its 0.

% of late return calculation = Late Return/(Correct Return+Late Return), in above case that would be 6/(3+6)=0.667 and its percentage will be 67%.

Similarly I tried in power bi and these are the calculated columns created:

1. Act Return Date with Today's date = IF('Case Order Fact'[Returned Date]= BLANK(),TODAY(), 'Case Order Fact'[Returned Date])
2. Days = DATEDIFF ('Case Order Fact'[Return Date],'Case Order Fact'[Late Return Date],DAY
3. Late Return = IF( 'Case Order Fact'[Late Return Days]<=0,0,1)
4. Correct Return = IF('Case Order Fact'[Late Return Days] <= 0, 1, 0 )
5. % of Late Return = 'Case Order Fact'[Late Return Fl]/('Case Order Fact'[Late Return Fl]+'Case Order Fact'[Correct Return Fl])

In power bi it comes this way

It does not sum up the totals and if i try to sum up the total it doubles and shows as below:

c

It seems something very simple that i moght be missing, is there a way to see these values in power bi report simila

1 ACCEPTED SOLUTION
Super User

Add the Request ID field to the visual and you will see why the values are "different "

In doing so, you are also helping me. Thank you!

Proud to be a Super User!

15 REPLIES 15
Super User

Try with the following measures:

``````CORRECT Return Temp =
VAR _ReturnDate =
IF (
ISBLANK ( MAX ( fTable[Act Return Date] ) ),
TODAY (),
MAX ( fTable[Act Return Date] )
)
VAR _Diff =
DATEDIFF ( MAX ( fTable[Expected Return Date] ), _ReturnDate, DAY )
RETURN
SWITCH (
TRUE (),
ISBLANK ( MAX ( fTable[Expected Return Date] ) ), BLANK (),
_Diff < 0, 1,
0
)
``````
``````Correct return =
SUMX(fTable, [CORRECT Return Temp])``````
``````LATE Return Temp =
VAR _ReturnDate =
IF (
ISBLANK ( MAX ( fTable[Act Return Date] ) ),
TODAY (),
MAX ( fTable[Act Return Date] )
)
VAR _Diff =
DATEDIFF ( MAX ( fTable[Expected Return Date] ), _ReturnDate, DAY )
RETURN
SWITCH (
TRUE (),
ISBLANK ( MAX ( fTable[Expected Return Date] ) ), BLANK (),
_Diff > 0, 1,
0
)
``````
``````Late return =
SUMX(fTable, [LATE Return Temp])``````
``````% Late returns =
IF (
ISINSCOPE ( fTable[Sales Rep] ),
BLANK (),
DIVIDE ( [Late return], [Correct return] + [Late return] )
)
``````

In doing so, you are also helping me. Thank you!

Proud to be a Super User!

Super User

@PaulDBrown, it works only in few cases and doesn't work in most of the cases, one example is below

I

It should ne showing 60% but it shows 35.71%, can you suggest something else because i am unable to understand what is the error.

Super User

What is the code for the % Late returns measure?

In doing so, you are also helping me. Thank you!

Proud to be a Super User!

Super User

@PaulDBrown Its same what you had shared

% Late Returns =
IF(
ISINSCOPE('Case Order Fact'[CREATED_NAME]),
BLANK(),
DIVIDE([Late return],[Correct return]+[Late return])
)

Super User

Can you change the last two measures in the image to the SUMX measures and post the screenshot?
Also, which table is the Sales Rep field in the visual coming from and which field are you using in the SUMX measures?

In doing so, you are also helping me. Thank you!

Proud to be a Super User!

Super User

All the measures will be as below:

Correct Return Temp =
VAR _ReturnDate=
IF(
ISBLANK(MAX('Case Order Fact'[Act Return Date])),
TODAY(),
MAX('Case Order Fact'[Act Return Date])
)
VAR _Diff=
DATEDIFF(MAX('Case Order Fact'[Expected Return Date]),_ReturnDate,DAY)
RETURN
SWITCH(
TRUE(),
ISBLANK(MAX('Case Order Fact'[Expected Return Date])),BLANK(),
_Diff<0,1,
0)

Correct return = SUMX('Case Order Fact',[Correct Return Temp])

Late Return Temp =
VAR _ReturnDate=
IF(
ISBLANK(MAX('Case Order Fact'[Act Return Date])),
TODAY(),
MAX('Case Order Fact'[Act Return Date])
)
VAR _Diff=
DATEDIFF(MAX('Case Order Fact'[Expected Return Date]),_ReturnDate,DAY)
RETURN
SWITCH(
TRUE(),
ISBLANK(MAX('Case Order Fact'[Expected Return Date])),BLANK(),
_Diff>0,1,
0
)
Late return =
SUMX('Case Detail Fact',[Late Return Temp])

% Late Returns =
IF(
ISINSCOPE('Case Order Fact'[CREATED_NAME]),
BLANK(),
DIVIDE([Late return],[Correct return]+[Late return])
)
Super User

@PaulDBrown, i didn't follow, where are you asking me to use sumx.Are they for these measures:-

Late Return Temp =
VAR _ReturnDate=
IF(
ISBLANK(MAX('Case Order Fact'[Act Return Date])),
TODAY(),
MAX('Case Order Fact'[Act Return Date])
)
VAR _Diff=
DATEDIFF(MAX('Case Order Fact'[Expected Return Date]),_ReturnDate,DAY)
RETURN
SWITCH(
TRUE(),
ISBLANK(MAX('Case Order Fact'[Expected Return Date])),BLANK(),
_Diff>0,1,
0
)

Correct Return Temp =
VAR _ReturnDate=
IF(
ISBLANK(MAX('Case Order Fact'[Act Return Date])),
TODAY(),
MAX('Case Order Fact'[Act Return Date])
)
VAR _Diff=
DATEDIFF(MAX('Case Order Fact'[Expected Return Date]),_ReturnDate,DAY)

RETURN
SWITCH(
TRUE(),
ISBLANK(MAX('Case Order Fact'[Expected Return Date])),BLANK(),
_Diff<0,1,
0
)

Also all the columns that I am using are from the same table, earlier i had used sales rep alone from another sales hierarchy dim but now i brought in the same fact from where returnand returned dates are used.
Super User

The measures you have posted are to then calculate the correct totals using SUMX:

``````Correct return =
SUMX(fTable, [CORRECT Return Temp])``````
``````Late return =
SUMX(fTable, [LATE Return Temp])``````

and finally

``````% Late returns =
IF (
ISINSCOPE ( fTable[Sales Rep] ),
BLANK (),
DIVIDE ( [Late return], [Correct return] + [Late return] )
)``````

If you have a Sales Rep Dimension table, you should be using it in the visual (it's more efficient). If so, you need to reference this dimension table in the SUMX measures.

In doing so, you are also helping me. Thank you!

Proud to be a Super User!

Super User

@PaulDBrown, this is exactly how we did, sales rep is the created name from the same table Case Order Fact, all the columns in measure are from same table. So am I missing something?

Why is it then not giving the right value?

Super User

Can you post a depiction of the visual with the Correct Return and Late return measures?
It would really help if you could provide a link to a sample PBIX file (you can change any confidential information). It's hard to see the problem otherwise. (since in my test it works...)

In doing so, you are also helping me. Thank you!

Proud to be a Super User!

Super User

@PaulDBrown, if i pull only those 2 columns and create the measures it seems to work fine but if i pulll all the columns in that view in a table and try the measure it doen't seem to work. I will share the test report from another account.

Super User

@PaulDBrown , this is the test report and here those measures does not seem to work. I am unable to undertand why it is so? Can you please help?

Super User

They do work. In your example, if you look at the detail of the rows in the dataset for the filtered sample, you will see why the SUMX returns a higher value.

The temp measure only looks at the dates in the filter context; the SUMX computes the date calculation row by row and then adds up the result of each row. There are two rows for each Expected Return Date and the Request ID field makes each of the rows unique. So there are 4 rows over which the SUMX calculation is carried out:

In doing so, you are also helping me. Thank you!

Proud to be a Super User!

Super User

@PaulDBrown,I do not follow exactly what you are trying to say.

Certain places it shows me the correct value and certain places it shows differences in the values.

There are 2 issues to be seen here, firstly late return shows a different value from late return temp and on calculation this should be around 71%.

Firstly the late return is probably summing up the late return and secondly the late % value is also not showing the right value

Super User

Add the Request ID field to the visual and you will see why the values are "different "

In doing so, you are also helping me. Thank you!

Proud to be a Super User!

Announcements

#### 2023 Release Wave 1 Plans

Power BI release plans for 2023 release wave 1 describes all new features releasing from April 2023 through September 2023.

#### Ted's Dev Camp - January 26, 2023

This session will provide guidance and teach campers the skills required to build Power BI reports that support multiple languages.

#### Global Power BI Training

Make sure you register today for the Power BI Summit 2023. Don't miss all of the great sessions and speakers!

#### 2022 Monthly Feature Releases

We had a great 2022 with a ton of feature releases to help you drive a data culture.

Top Solution Authors
Top Kudoed Authors