cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
geneZebra
Resolver II
Resolver II

examples of how to enter a filter query for excel list row in a table

I am not able to find any info on how to enter an odata expression or what that is. I am looking to create a flow to send out a reminder email when the TravelDate in a record is within a certain number of days of today. Attached is a pic of the List rows present in a table action in the excel connector but I can't seem to figure out how to check for "TravelDate" being within a certain number of days from today. My issue is more of understanding the syntax of how to enter this. I cannot find a reference doc that simply explains how expressions showld be entered. 

 

Any advice appreciate.ListRowsflowQuery.png

1 ACCEPTED SOLUTION

Accepted Solutions
v-bacao-msft
Community Support
Community Support

Hi @geneZebra ,

 

You could refer to the link below for more information on the use of Filter Query.

https://veenstra.me.uk/2018/11/12/microsoft-flow-filter-queries-in-sharepoint-get-items/

If the type of TravelDate is text and the time format is "yyyy-MM-dd", you could refer to the following method to configure Filter Query.

"-5" means a certain number of days, please check the following image and see if it helps:

40.PNG

 

Best Regards,

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

View solution in original post

10 REPLIES 10
v-bacao-msft
Community Support
Community Support

Hi @geneZebra ,

 

You could refer to the link below for more information on the use of Filter Query.

https://veenstra.me.uk/2018/11/12/microsoft-flow-filter-queries-in-sharepoint-get-items/

If the type of TravelDate is text and the time format is "yyyy-MM-dd", you could refer to the following method to configure Filter Query.

"-5" means a certain number of days, please check the following image and see if it helps:

40.PNG

 

Best Regards,

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

Thanks Barry I will give this a try. I think it is what I need. My step is to send out an email based on each record in the table but I think I can figure that out. One of my challengs is that I want to CC people in a CC list but that list is a cell of text containing  "display name, email" spearated by a semicolon (e.g. "FirstName1, LastName1, email1@xx.com;FirstName2, LastName2, email2@xx.com;" and so on. I guess I would need to used to use a split call (documented in Powerapps) a couple of times to get the email address. 

Any advice on how to figure out that syntax would help. 

If preferred, I can close out this topic and create it as a new but I'd figured I'd ask while I got someone's attention.

 

Thanks,

 

 

geneZebra
Resolver II
Resolver II

After some playing around, and reviewing the article reference by @v-bacao-msft in this thread,  I was able to get a simple filter going. Unfortunately, I need to filter by TravelDate < (targetDate - X days). The Excel connector doc is clear that only a few operations are allowed so I am most likely going to use a conditional statement action followed by filter array in my actual flow.

Below is an example of how I was testing with  filter array and a listRows module filter. In practice, I will need to elminate the listRows advanced fitler due to the comparison limitation. I just could not find a way to compare the date to a value that can be compared via a < or > so I am stuck with the filterarray module.

 

Also note, the advanced listRows filter runs in a fraction of the time of the conditional block. I wanted to share this example in case it helps.

 

Also another lesson I learned is had to use the hover over txt of known expressions to figure out how to reference values that are not appearing in dynamic content. I don't have this all figured out yet but not knowing to use the item() function is what was blocking me for several days on how to properly reference a value. this is different than the ODATA syntax used by the advanced List Rows module but at least I worked through. I just wish flows was easier to work on getting started on manual entry. The dynamic expresson box does not alway show what can be accessed.

 

Anyway how this helps 

 

FlowtoFilterArray.png

Anonymous
Not applicable

How to access the data which is inside "filter array"

Anonymous
Not applicable

How do we add OR , AND statements while doing the filter query on excel rows ?

Hello msnc & others,


There are at least 2 ways to achieve multiple filter conditions for Excel since it doesn’t really support multiple filter conditions in a single action.
The second method I list is also 100x faster & more efficient for larger datasets.

 

First, you could pull all the data from the entire table and then use the output in a Filter Array.

To get the data from Filter Array, either use a Parse JSON action afterwards to get the data in dynamic content, or put the action in an Apply to Each with the Filter Array body as the loop value and use expressions like item()?[‘ColumnName’] to get that column/field value.



Second, besides using Filter Array after pulling all the data in the table, you could use a different Excel List rows for each filter condition and combine them after like:

 

Get rows 1 - Filter Status eq ‘Complete’

Get rows 2 - Filter Status eq ‘In-Progress’

Compose (To simulate an OR statement) - Expression Union(Get rows 1, Get rows 2)

 

Get rows 1 - Filter Status eq ‘Complete’

Get rows 2 - Filter Department eq ‘Sales’

Compose (To simulate an AND statement) - Expression Intersection(Get rows 1, Get rows 2)

 

I used 1/3 the API actions and had a 100x speed improvement using this second method looking for a few records in a couple hundred thousand rows. The 1st method would take forever to load a couple hundred thousand rows and then you’d have to still filter every 100k batch & combine them.

Hi there, i manage to get rows of excel but i cannot seem to do the intersection. Its output is a blank which means the two rows are different, but looking at the output of the excel rows it is exactly the same. I also removed the oodata and the other through the the select in data operation. 

Is it possible if i see your flow?

Are you using Body or Values?

You should use values as that will return the array values & not a JSON object containing the values in a field.

 

If it’s not that, then I can put together an example flow.

But you can't pull all data from a table if there are more than 5000 rows. Pagination limit is 5000.

I have a table with over 52,000 rows and I need to filter it as it pulls the data, using the OData filter.... 
I have tried contains(email2,'EmailVar') and it recognises the input email address of the person completing the form

e.g. it looks for the right email address in the column 'email2' in the spreadsheet and sees if it matches the variable holding the responders email address. The idea being it should filter out only the rows from the responder.

contains(email2,'FirstnameSurname@XYZ.com')

But when I run it, I see the list rows filter trying to filter on the email address, but I get no value back from the list.

 

@JoelMills 

 

You must have a lower level license. You’ll either need to buy a license or create an ID index column & use something like what is shown in this video to pull different sets of 5000 records in several actions, then use a Union to combine the results, then a Filter array on that combined output.

https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Batch-Update-SharePoint-List-With-Extern...

Helpful resources

Announcements
Microsoft 365 Conference – December 6-8, 2022

Microsoft 365 Conference – December 6-8, 2022

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Difinity Conference 2022

Difinity Conference 2022

Register today for two amazing days of learning, featuring intensive learning sessions across multiple tracks, led by engaging and dynamic experts.

European SharePoint Conference

European SharePoint Conference

The European SharePoint Conference returns live and in-person November 28-December 1 with 4 Microsoft Keynotes, 9 Tutorials, and 120 Sessions.

Users online (1,708)