Stop Using Email Alerts — Excel Can Send Notifications in 2 Steps

Most Excel tutorials tell you that 'Excel can send notifications'—and then hand you a broken VBA script that crashes Outlook or requires admin rights. They’re wrong. Native Excel cannot send notifications. Ever. Not via formulas. Not via conditional formatting. Not even with ‘Alert’ in the name. What can do it is Power Automate—and it takes two steps, not 17.

The Setup

We worked with a logistics team at SwiftFreight Logistics that tracks delivery exceptions. Their Excel file (DeliveryTracker.xlsx) lives on SharePoint and updates daily from their TMS. They needed alerts when any shipment missed its promised delivery date and had high-priority status.

ABCDE
Shipment IDCustomerPromised DateActual DatePriority
SF-8821Nexus MedTech2024-03-152024-03-18High
SF-8822Veridian Labs2024-03-122024-03-13Medium
SF-8823Acme Corp2024-03-102024-03-10High
SF-8824Lumina Systems2024-03-142024-03-17High
SF-8825TerraLink Inc2024-03-112024-03-12Low
SF-8826Orion Health2024-03-092024-03-16High
SF-8827Stellar Dynamics2024-03-132024-03-14Medium
SF-8828Zenith Group2024-03-082024-03-15High

The Challenge

You might think: just use conditional formatting to highlight late shipments. But that’s not a notification—it’s silent visual noise. The team needed *actionable* alerts: an email to the regional manager and a Teams message to the dispatch lead. And they needed it triggered by changes—not scheduled scans. That means Excel alone won’t cut it. The catch? Most people try to build this in Excel first, then get stuck writing VBA that only works on their machine. We flipped it: start where Excel *can* talk—its data—and let Power Automate listen.

Here’s the counterintuitive part: Excel doesn’t need to 'send' anything. It just needs to *flag* something has changed. A single cell—say, F1—becomes our signal tower. When F1 = "ALERT", Power Automate wakes up and fires off messages. No macros. No Outlook dependencies. Just one cell. (Trust me, I learned this the hard way after three failed VBA deployments.)

Walking Through It

We added column F: Status Flag. In F2, we entered:

=IF(AND(C2<TODAY(),E2="High"),"ALERT","OK")

Then copied down to F10. Now every row tells us whether it qualifies. But that’s not enough—we need *one* cell to summarize all rows. So in F1, we used:

=IF(COUNTIF(F2:F10,"ALERT")>0,"ALERT","OK")

That’s our trigger cell. Any time it changes to "ALERT", Power Automate reacts.

StepActionResultShortcut
1Add Status Flag column (F) with formula checking overdue + High priorityF2:F10 shows "ALERT" or "OK" per rowCtrl+C / Ctrl+V
2In F1, enter =IF(COUNTIF(F2:F10,"ALERT")>0,"ALERT","OK")F1 becomes a live summary: "ALERT" if any row qualifiesAlt+= (AutoSum) → edit formula manually
3In Power Automate, create new flow: 'When a file is modified' (SharePoint)Flow triggers on save—no polling, no delayAlt+N, F (new flow)
4Add 'Get rows' action, then filter for F1 = "ALERT" using Excel Online connectorOnly runs actions if alert condition is met
5Add 'Send an email (V2)' and 'Post message in a chat or channel' actionsEmail goes to manager@swiftfreight.com; Teams msg tags @dispatch-lead

The Result

After saving the file, here’s what appears in the tracker—and what happens behind the scenes:

ABCDEF
Shipment IDCustomerPromised DateActual DatePriorityStatus Flag
SF-8821Nexus MedTech2024-03-152024-03-18HighALERT
SF-8822Veridian Labs2024-03-122024-03-13MediumOK
SF-8823Acme Corp2024-03-102024-03-10HighOK
SF-8824Lumina Systems2024-03-142024-03-17HighALERT
SF-8825TerraLink Inc2024-03-112024-03-12LowOK
SF-8826Orion Health2024-03-092024-03-16HighALERT
SF-8827Stellar Dynamics2024-03-132024-03-14MediumOK
SF-8828Zenith Group2024-03-082024-03-15HighALERT
F1 (Trigger Cell)ALERT

Within 90 seconds of saving, the regional manager receives an email titled “Urgent: 4 High-Priority Late Shipments”. The dispatch lead gets a Teams message with a direct link to the file and highlighted rows.

What Could Go Wrong

Three mistakes we saw in early tests—each caused real delays:

  • Using TODAY() inside Power Automate instead of Excel: People tried putting TODAY() in the flow’s condition. Big mistake. Power Automate reads static values—it doesn’t recalculate. Excel does. Keep date logic in Excel cells, not the flow.
  • Forgetting to set permissions on the SharePoint folder: The Excel Online connector needs 'Edit' access—not just 'View'. If the flow fails silently, check folder permissions first. (We lost 2 hours debugging this once.)
  • Hardcoding the sheet name in Power Automate: If someone renames 'Sheet1' to 'Q3-Deliveries', the flow breaks. Use the actual sheet name in the 'Get rows' action—or better yet, add a named range like AlertRange covering A1:F10 and reference that.

Final tip: You don’t need Power Automate Premium. The free plan handles up to 750 flows/month—enough for most teams. And if your file stays local (not on SharePoint/OneDrive), use Windows Task Scheduler + PowerShell to monitor file change events and trigger alerts. But that’s another story.

Ready to try it? Here’s your next move:

TaskWhereTime Estimate
Add Status Flag column (F) with overdue+priority logicExcel worksheet (F2:F10)2 minutes
Set up trigger cell F1 with COUNTIF summaryCell F145 seconds
Create Power Automate flow using 'When a file is modified'flow.microsoft.com6–8 minutes
Test with one manual edit to F1 (type "ALERT", save)Your SharePoint file1 minute
David Park

David Park

David brings deep expertise in office supply evaluation and procurement. He has tested hundreds of products to help teams make informed purchasing decisions.