Forum Discussion

StefanM's avatar
StefanM
Icon for Helper II rankHelper II
5 years ago
Solved

Help! Relative Time Filter - Between Hours

Hi guys, I have a table with a column of Date-Time.

 

I need to use that column to filter charts between recent hours. For example: Past 5 hours, 5-24 hours, 24-72 hours, etc
I can't see any way to filter between hours, only "include everything from X hours ago"

 

This is what I've been able to create: 


Using variations of:

I've attached a PBX file to show it all in action: https://drive.google.com/file/d/1vsF-tN9O1FYRInWWDqCxPC3dNt5Yv3eL/view 

Anyone have any ideas how to do this?

  • Anonymous's avatar
    Anonymous
    5 years ago

    Hi  StefanM  ,

    Here are the steps you can follow:

    1. Create calculated column.

    Hour =
    DATEDIFF(MAX('Table'[date]),NOW(),HOUR)
    Hour_Column =
    var _1=DATEDIFF('Table'[date],NOW(),HOUR)
    return
    SWITCH(
        TRUE(),
        _1>0&&_1<=5,"0-5",
        _1>5&&_1<=24,"5-24",
        "24-72")

    2. Create measure

    count of resopnse =
    CALCULATE(COUNT('Table'[Legend]),FILTER('Table','Table'[Legend]=MAX('Table'[Legend])))

    3. Place Hour_Column in Axis, Legend in Legend, and count of resopnse in Values

    4. Result.

     

    You can downloaded PBIX file from here.

     

    Best Regards,

    Liu Yang

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

     

2 Replies

  • You can add a calculated column

     

    Interval = SWITCH(TRUE(),now()-'Table'[regDate]<5/24,"Last 5 hrs",now()-'Table'[regDate]<1,"5-24 hrs Ago",now()-'Table'[regDate]<3,"24-72 hrs Ago","72+ hrs Ago")

     

    BUT! There are lots of buts here. This would require you to have a Direct Query data connection or a very frequent dataset refresh. It also works against local time which comes with its own big bag of hurt.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi  StefanM  ,

    Here are the steps you can follow:

    1. Create calculated column.

    Hour =
    DATEDIFF(MAX('Table'[date]),NOW(),HOUR)
    Hour_Column =
    var _1=DATEDIFF('Table'[date],NOW(),HOUR)
    return
    SWITCH(
        TRUE(),
        _1>0&&_1<=5,"0-5",
        _1>5&&_1<=24,"5-24",
        "24-72")

    2. Create measure

    count of resopnse =
    CALCULATE(COUNT('Table'[Legend]),FILTER('Table','Table'[Legend]=MAX('Table'[Legend])))

    3. Place Hour_Column in Axis, Legend in Legend, and count of resopnse in Values

    4. Result.

     

    You can downloaded PBIX file from here.

     

    Best Regards,

    Liu Yang

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.