How to Create a Weekly Power Automate Email Alert from Excel
Question details
The user wants to configure a scheduled Power Automate workflow that checks an Excel spreadsheet on a weekly basis, compares two specific data values, and sends an email to the address located in the matching rows.
- Product
- Microsoft Excel / Power Automate
- Device & OS
- not provided
- Scenario
- Automating recurring weekly email notifications based on specific data condition checks within an Excel dataset.
- Observed behavior
- Setting up a scheduled cloud flow that correctly connects to an Excel table, processes rows through a condition loop, and accurately triggers an email action for positive matches.
Ensure your Excel data is formatted as an official Table (Insert > Table) and is saved in a cloud storage service like OneDrive or SharePoint, as Power Automate requires cloud-accessible tables to read row data.
Create a Scheduled Cloud Flow in Power Automate
Use a scheduled flow combined with a condition loop to automatically evaluate Excel data and dispatch weekly emails to designated recipients.
This method requires mapping the correct columns from your Excel table into Power Automate. Ensure that the columns being compared have matching data types (e.g., both are numbers, or both are text).
Log into Power Automate, click on 'Create' from the left menu, select 'Scheduled cloud flow', name your flow, and set the repetition frequency to '1 Week'.
Add a new step and search for 'Excel Online (Business)'. Select the 'List rows present in a table' action. Choose your Location, Document Library, File, and the specific Table containing your data.
Add a new step and choose the 'Apply to each' control. Click inside the output field and select 'value' from the dynamic content list generated by the Excel step.
Inside the 'Apply to each' loop, add a 'Condition' action. Select the first Excel column from the dynamic content, choose an operator (like 'is greater than'), and select the second column to compare it against.
In the 'If yes' branch of your condition, add the 'Send an email (V2)' action. In the 'To' field, select the email address column from your dynamic content. Customize the Subject and Body of the email as needed.
If your Excel table has hundreds of rows, click the three dots (...) on the 'List rows present in a table' action, go to 'Settings', turn on 'Pagination', and set the threshold (up to 100,000).
Efficiently Manage Spreadsheet Data for Automation with WPS Office
While Power Automate handles the cloud scheduling and email dispatch, maintaining accurate source data is critical. WPS Office provides a robust, highly compatible alternative to Microsoft Excel, allowing you to perfectly format tables, validate data types, and export as standard .xlsx files for flawless integration with your automation workflows.

Frequently Asked Questions
Why is my Power Automate flow unable to find my Excel file?
Power Automate requires your Excel file to be stored in a supported cloud environment such as OneDrive for Business, SharePoint, or Google Drive. Local files saved strictly to your computer's hard drive cannot be accessed by cloud flows.
Why aren't my spreadsheet rows appearing in the 'List rows' action?
Power Automate can only read data formatted as an official Excel Table. Open your spreadsheet, highlight your data range, press Ctrl+T (or go to Insert > Table), give the table a name, and save the file. The table name will then populate in Power Automate.
How do I fix pagination errors when analyzing large Excel tables?
By default, the 'List rows present in a table' action retrieves a limited number of rows (typically 256). To process larger datasets, click the ellipsis (...) on the action, select 'Settings', toggle 'Pagination' to On, and set the threshold to a higher number (maximum 100,000).
Can I send one summary email instead of individual emails for every matched row?
Yes. Instead of placing the email action inside the 'Apply to each' loop, initialize an array or string variable at the start of your flow. Inside the loop, append matching data to that variable. Finally, place the 'Send an email' action outside and after the loop, using the populated variable in the email body.




