Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
yazoubi
Frequent Visitor

Calculate

Hi Dears, 

Can someone help me please to do a calculation for total staying in accommodation based on movement type (check-in/check-out) and consider the other filter like per user number  and per requester of movement type

 

- The logic will be:

         Total_Stay = (date and time for check out) - (date and time for check in) per User and per requester 

 

below is an example of the data:

 

date and time Date User Accommodation Movement type Requester
9/23/2021 16:12 9/23/2021 User 1  ACC1 Check-In Requester 1
9/25/2021 16:53 9/25/2021 User 1  ACC1 Check-Out Requester 1
9/23/2021 16:12 9/23/2021 User 2 ACC1 Check-In Requester 3
9/25/2021 16:53 9/25/2021 User 2 ACC1 Check-Out Requester 3

 

Thanks and looking forward for your support. 

 

 

4 REPLIES 4
Anonymous
Not applicable

Hi @yazoubi,

You can add a calculated column with the below formula to get the difference time of two different movement types:

Stay Times =
VAR lastIN =
    CALCULATE (
        MAX ( 'Table'[date and time] ),
        FILTER (
            'Table',
            [User] = EARLIER ( 'Table'[User] )
                && [Requester] = EARLIER ( 'Table'[Requester] )
                && [Movement type] <> EARLIER ( 'Table'[Movement type] )
        )
    )
RETURN
    IF (
        'Table'[Movement type] = "Check-Out",
        DATEDIFF ( lastIN, 'Table'[date and time], MINUTE )
    )

Regards,

Xiaoxin Sheng

HI @Anonymous 

 

I try your suggested solution but there was an error as below:

 

Code:

 

Stay Times =
VAR lastIN =
CALCULATE (
MAX ( 'Accommodation Transaction'[Created date and time]),
FILTER (
'Accommodation Transaction',
[Personnel number] = EARLIER ( 'Accommodation Transaction'[Personnel number])
&& [Requester] = EARLIER ( 'Accommodation Transaction'[Requester])
&& [Movement type] <> EARLIER ( 'Accommodation Transaction'[Movement type])
)
)
RETURN
IF (
'Accommodation Transaction'[Movement type] = "Check-Out",
DATEDIFF ( lastIN, 'Accommodation Transaction'[Created date and time]), MINUTE )
)

 

 

Error: 

The syntax for ')' is incorrect. (DAX(VAR lastIN = CALCULATE ( MAX ( 'Accommodation Transaction'[Created date and time]), FILTER ( 'Accommodation Transaction', [Personnel number] = EARLIER ( 'Accommodation Transaction'[Personnel number]) && [Requester] = EARLIER ( 'Accommodation Transaction'[Requester]) && [Movement type] <> EARLIER ( 'Accommodation Transaction'[Movement type]) ) )RETURN IF ( 'Accommodation Transaction'[Movement type] = "Check-Out", DATEDIFF ( lastIN, 'Accommodation Transaction'[Created date and time]), MINUTE ) ))).

 

Snapshot

 

yazoubi_0-1632991485238.png

 

Please advise

Anonymous
Not applicable

HI @yazoubi,

My formula should be a calculated column expression, did you used it in the measures?
Regards,

Xiaoxin Sheng

Greg_Deckler
Community Champion
Community Champion

@yazoubi I think you should post this in the forums, not the Quick Measures Gallery.



Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
DAX For Humans

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors