Forum Discussion

chotu27's avatar
chotu27
Post Patron
6 years ago
Solved

Filtere the date based on the values

Hi All,

 

I need to hide the data to be filtered with dates for two categories. See below picture

 

I wanted to filter the table by Sale date before 01/23/2020 for only India and USA. other cuntries data should be show as it is with no filters. 

 

CountrySalesSale date
India2222601/2/2020
USA6262601/2/2020 
Russia2567801/5/2020 
UK3457601/6/2020 
India6542301/30/2020 
USA8754001/30/2020 
Russia3427901/31/2020 
UK2528001/31/2020 
   
   
   
  • Hi chotu27 ,

     

    We can try to use the following M code to requirement:

     

    Table.SelectRows(#"Changed Type", each (([Country] = "India" or [Country]="USA") and [Sale date] < #date(2020,1,23)) or ([Country] <> "India" and [Country]<>"USA"))

     

     

    All the queries are here:

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8sxLyUxU0lEyAgIzIG1gqG+kb2RgZKAUqxOtFBrsCBQzMzJDlVMASwaVFhdD9JqamVtA5E2R5EO9gWLGJqbmUL1mSHIwa81MTYyMIdLGBsh6wRZbmJuaGGCRhdtsbGJkbglVYIhutZGpkYUBumQsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Country = _t, Sales = _t, #"Sale date" = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Country", type text}, {"Sales", Int64.Type}, {"Sale date", type date}}),
        #"Filtered Rows" = Table.SelectRows(#"Changed Type", each (([Country] = "India" or [Country]="USA") and [Sale date] < #date(2020,1,23)) or ([Country] <> "India" and [Country]<>"USA"))
    in
        #"Filtered Rows"

     


    Best regards,

     

11 Replies

  • VasTg's avatar
    VasTg
    Memorable Member

    chotu27 

     

    Do you want to do that in a visual or filter the actual data itself in the table?

      • VasTg's avatar
        VasTg
        Memorable Member

        chotu27 

         

        In Power Query Editor, click on the dropdrop on Country column and choose filter->does not equal to. Choose Advanced and do the following.

         

        Repeat the same step now for USA.

         

        If it helps, mark it as a solution

        Kudos are nice too

  • In edit Query mode create a custom column

    = table[country]= "India" and table[Sale date] < Date.FromText(23-feb-2020)

     

    This will true and false , you can remove rows based on values.

     

    Appreciate your Kudos. In case, this is the solution you are looking for, mark it as the Solution.
    In case it does not help, please provide additional information and mark me with @

    Thanks. My Recent Blogs -Decoding Direct Query - Time Intelligence, Winner Coloring on MAP, HR Analytics, Power BI Working with Non-Standard TimeAnd Comparing Data Across Date Ranges
    Connect on Linkedin

  • v-lid-msft's avatar
    v-lid-msft
    Community Support

    Hi chotu27 ,

     

    We can try to use the following M code to requirement:

     

    Table.SelectRows(#"Changed Type", each (([Country] = "India" or [Country]="USA") and [Sale date] < #date(2020,1,23)) or ([Country] <> "India" and [Country]<>"USA"))

     

     

    All the queries are here:

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8sxLyUxU0lEyAgIzIG1gqG+kb2RgZKAUqxOtFBrsCBQzMzJDlVMASwaVFhdD9JqamVtA5E2R5EO9gWLGJqbmUL1mSHIwa81MTYyMIdLGBsh6wRZbmJuaGGCRhdtsbGJkbglVYIhutZGpkYUBumQsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Country = _t, Sales = _t, #"Sale date" = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Country", type text}, {"Sales", Int64.Type}, {"Sale date", type date}}),
        #"Filtered Rows" = Table.SelectRows(#"Changed Type", each (([Country] = "India" or [Country]="USA") and [Sale date] < #date(2020,1,23)) or ([Country] <> "India" and [Country]<>"USA"))
    in
        #"Filtered Rows"

     


    Best regards,

     

      • tarunsingla's avatar
        tarunsingla
        Solution Sage

        Hi chotu27 ,

         

        Try adding a calculated column using the following DAX:

        Filter = IF('Table'[Sale date] < DATE(2020, 1, 23), 1, IF(('Table'[Country] <> "India" && 'Table'[Country] <> "USA"), 1, 0))
         
        And then use this calculated column in a filter to get the desired results.