Forum Discussion

arimoldi's avatar
arimoldi
Resolver II
2 years ago
Solved

Power Query Table.SelectRows with multiple/nested criteria

Hi,

 

I want to keep rows in my dataset that match the following conditions:

 

field_num <> 1 

(field_num <> 0 and field_alfa <> "A")

field_num <> 3

 

How can I translate this code in one Power Query step using Table.SelectRows?

 

Thanks,

Andrea

 

  • Let's restructure your condition:

     

    - You want to keep rows where `field_num <> 1`.

    - You want to exclude rows where `field_num = 0` and `field_alfa = "A"` at the same time. This is equivalent to saying you want to keep rows where NOT (`field_num = 0` and `field_alfa = "A"`), which can be rewritten as `(field_num <> 0 or field_alfa <> "A")`.

    - You want to keep rows where `field_num <> 3`.

     

    So, combining these conditions, you get:

     

    Table.SelectRows(yourTableName, each [field_num] <> 1 and ([field_num] <> 0 or [field_alfa] <> "A") and [field_num] <> 3)

     

3 Replies

  • amustafa's avatar
    amustafa
    Solution Sage

    Table.SelectRows(yourTableName, each [field_num] <> 1 and ([field_num] <> 0 and [field_alfa] <> "A") and [field_num] <> 3)

    • arimoldi's avatar
      arimoldi
      Resolver II

      Thanks for the reply.

       

      I tried in this way, but it seems it is not working because it is filtering all the rows where [field_num] <> 0 instead of the one where [field_num] <> 0 and [field_alfa] <> "A", so where both the conditions are respected.

       

      Any suggestion?

       

      • amustafa's avatar
        amustafa
        Solution Sage

        Let's restructure your condition:

         

        - You want to keep rows where `field_num <> 1`.

        - You want to exclude rows where `field_num = 0` and `field_alfa = "A"` at the same time. This is equivalent to saying you want to keep rows where NOT (`field_num = 0` and `field_alfa = "A"`), which can be rewritten as `(field_num <> 0 or field_alfa <> "A")`.

        - You want to keep rows where `field_num <> 3`.

         

        So, combining these conditions, you get:

         

        Table.SelectRows(yourTableName, each [field_num] <> 1 and ([field_num] <> 0 or [field_alfa] <> "A") and [field_num] <> 3)