Forum Discussion

Sam7's avatar
Sam7
Advocate II
4 years ago
Solved

Switch between two date options based on Filter

I have read many different versions of this question, this one here nearly gets what I want: https://community.powerbi.com/t5/Desktop/Filter-records-between-two-date-columns-with-one-slicer/m-p/825111

 

I want to create a filter based on two options shipped date and order date

If the user selects shipped date, I want all the results based on sshipped date, if the user selects order date then I want the results based on this date. How do I do this? 

 

I have read a lot, but can't find this?  Please help

  • Anonymous's avatar
    Anonymous
    4 years ago

    Hi Sam7 ,

    I updated my sample pbix file(see attachment), please check whether that is what you want.

    1. Create a date type dimension table by Enter data method

    2. Create a date dimension table and apply the date field on the slicer

    Date = CALENDAR(DATE(2022,1,1),DATE(2022,12,31))

    3. Update the formula of measure [qty] and [ssales]

    Best Regards

7 Replies

  • Sam7 , You can create an active inactive relationship and create two measure and switch those using measure slicer

     

    example

    Order =calculate( SUM(Sales[Sales Amount]),USERELATIONSHIP ('Sales'[order date], 'Date'[Date])

     

    Ship = calculate( SUM(Sales[Sales Amount]),USERELATIONSHIP ('Sales'[shipped Date], 'Date'[Date])

     

    For measure slicer use field parameters

    https://medium.com/@amitchandak/power-bi-field-parameters-a-quick-way-for-dynamic-visuals-fc4095ae9afd

  • Sam7's avatar
    Sam7
    Advocate II

    I'll give this a go, thanks for your help.

  • Sam7's avatar
    Sam7
    Advocate II

     This didn't work as I want the fields to have a slicer, and then the actual date to be the next filter selected. How do I this?

     

    Thanks

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Sam7 ,

    I created a sample pbix file(see attachment) for you, please check whether that is what you want.

    1. Create two date dimension table base on the fact table

    Note: Do not create any relationship between these two date dimension tables and fact table

    2. Apply the date field in above tables on the slicers

    3. Create the measures to get the values during the selected date periods

    qty = 
    CALCULATE (
        SUM ( 'Table'[quantity] ),
        FILTER (
            'Table',
            IF (
                ISFILTERED ( 'Shipped date'[date] ),
                'Table'[shipped date] >= MIN ( 'Shipped date'[Date] )
                    && 'Table'[shipped date] <= MAX ( 'Shipped date'[Date] ),
                1 = 1
            )
                && IF (
                    ISFILTERED ( 'Order date'[Date] ),
                    'Table'[order date] >= MIN ( 'Order date'[Date] )
                        && 'Table'[order date] <= MAX ( 'Order date'[Date] ),
                    1 = 1
                )
        )
    )

    If the above one can't help you get the desired result, please provide some sample data in your tables (exclude sensitive data) with Text format and your expected result with backend logic and special examples. It is better if you can share a simplified pbix file. You can refer the following link to upload the file to the community. Thank you.

    How to upload PBI in Community

    Best Regards

    • Sam7's avatar
      Sam7
      Advocate II

      Thanks

       

      How do I build this with an option to choose the date tyoe and only one date slicer?

       

       

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hi Sam7 ,

        I updated my sample pbix file(see attachment), please check whether that is what you want.

        1. Create a date type dimension table by Enter data method

        2. Create a date dimension table and apply the date field on the slicer

        Date = CALENDAR(DATE(2022,1,1),DATE(2022,12,31))

        3. Update the formula of measure [qty] and [ssales]

        Best Regards