
How to Auto-Send Emails from Excel and Update a Status Column Using Power Automate
The Problem
You have an Excel sheet where Column F tracks email status using a dropdown (Data Validation) with two values: Email and Sent Email. You want a system that:
- Detects rows where Column F says
Email - Automatically sends the email for that row
- Updates Column F to
Sent Emailso the row is marked complete
Doing this manually is tedious and error-prone. Power Automate makes it fully automatic.
Prerequisites
Before building the flow, make sure:
- Your Excel file is stored on OneDrive or SharePoint (not your local PC — Power Automate cannot access local files)
- Your data is formatted as an Excel Table (select your data → press
Ctrl+T) - Column F has Data Validation set up with
EmailandSent Emailas the allowed dropdown values - You have a unique ID column (e.g., Column A) — Power Automate needs this to know exactly which row to update
Your Excel Table Setup
| Column | Purpose |
|---|---|
| A | Unique Row ID (required for updating) |
| B | Recipient email address |
| C | Recipient name |
| D | Subject |
| E | Email body / notes |
| F | Status — "Email" or "Sent Email" (Data Validation dropdown) |
The Complete Power Automate Flow — Step by Step
Step 1 — Trigger: Recurrence (Recommended)
Action: Recurrence
Interval: Every 15 or 30 minutes
⚠️ Use a Recurrence trigger rather than "When a row is modified." The row-modified trigger is unreliable for Excel and can miss updates or fire multiple times. A scheduled trigger is far more dependable.
Step 2 — List All Rows from the Excel Table
Action: Excel Online (Business) → List rows present in a table
| Field | Value |
|---|---|
| Location | OneDrive for Business / SharePoint |
| Document Library | Your library |
| File | Your Excel file |
| Table | Your table name |
This reads every row in your table so the flow can check each one.
Step 3 — Apply to Each Row
Action: Control → Apply to each
Input: value — the output from Step 2
This loops through every row in your Excel table one by one.
Step 4 — Condition: Check if Column F = "Email"
Action: Control → Condition
Rule: Column F is equal to Email
This splits the flow into two branches — Yes and No.
Step 5 (YES Branch) — Send the Email
Action: Outlook → Send an email (V2)
| Field | Value |
|---|---|
| To | Dynamic value from your email column (e.g., Column B) |
| Subject | Dynamic value from Column D, or a fixed subject |
| Body | Dynamic value from Column E, or your custom message |
Step 6 (YES Branch) — Update Column F to "Sent Email"
Action: Excel Online (Business) → Update a row
| Field | Value |
|---|---|
| Location | Same as Step 2 |
| File | Same as Step 2 |
| Table | Same table |
| Key Column | Column A (your unique ID column) |
| Key Value | Dynamic value — the ID from the current row |
| Column F | Sent Email ← this is the critical update |
This writes Sent Email back into Column F for that specific row, marking it as done.
Step 7 (NO Branch) — Do Nothing
Leave the No branch empty. The flow simply skips any row where Column F already says Sent Email, preventing duplicate emails.
Visual Flow Diagram
Every 15 minutes (Recurrence Trigger)
↓
List rows from Excel Table
↓
Apply to Each Row
↓
┌─── Is Column F = "Email"? ───┐
│ │
YES NO
│ │
Send Email Skip Row ✓
│
Update Column F
→ "Sent Email" ✅
Important Settings to Get Right
| Setting | What to Do |
|---|---|
| Table format | Data MUST be formatted as an Excel Table (Ctrl+T) — plain ranges won't work |
| Key Column | Use a unique ID column so Power Automate updates the exact right row |
| Trigger type | Use Recurrence (every 15–30 min) — more reliable than row-modified trigger |
| File location | File must be on OneDrive or SharePoint, not a local drive |
| Data Validation values | Must match exactly — Email and Sent Email are case-sensitive |
How the Three Automation Options Compare
If you're deciding between approaches, here's a quick comparison:
| Method | Setup Complexity | Auto-Updates Excel? | Best For |
|---|---|---|---|
| Manual (dropdown only) | None | ❌ You do it | Very small lists |
| VBA Macro | Medium | ✅ Yes | Desktop Excel users |
| Power Automate | Medium | ✅ Yes | Cloud/team files |
Power Automate is the best choice when your file is on OneDrive or SharePoint and you want the automation to run without opening Excel at all.
Common Errors and Fixes
| Error | Cause | Fix |
|---|---|---|
| "Update a row" fails | No unique key column | Add an ID column with unique values |
| Flow doesn't find the file | File is on local PC | Move file to OneDrive or SharePoint |
| Emails send multiple times | Using row-modified trigger | Switch to Recurrence trigger |
| Column F doesn't update | Table not formatted correctly | Select data → Ctrl+T to create a Table |
| "Email" not matched | Case mismatch or extra space | Check the exact string in your dropdown |
Key Takeaways
- Your Excel file must be on OneDrive or SharePoint — Power Automate cannot read local files
- Your data must be an Excel Table (Ctrl+T), not just a range
- Use a Recurrence trigger every 15–30 minutes for reliability
- The Update a row action needs a unique Key Column to target the right row
- The No branch should be left empty — this prevents re-sending to already-processed rows
- Column F values must match exactly what's in your Data Validation dropdown
Related Topics
- How to send emails automatically from Excel using Power Automate
- Excel Online (Business) connector — complete guide
- Power Automate recurrence trigger vs row-modified trigger
- Using Data Validation dropdowns in Excel tables
- Updating Excel rows dynamically with Power Automate
Hit a step that's not working as expected? Drop a comment below with the error message and I'll help you troubleshoot it.