Function Problems

How to Use an Excel Array Formula to Return Active Projects by End Date

John WilsonJohn Wilson Oct 28, 2026 870 views

Question details

The user needs a dynamic Excel formula to extract and create a continuous list of projects with valid end dates that fall on today's date or later.

Excel Array Formula to Return Active Projects by End Date
Product
Excel
Device & OS
not provided
Scenario
Filtering and tracking active projects dynamically based on the current date, ensuring the result list updates automatically as time passes and projects change.
Observed behavior
The user wants the formula to generate a clean, continuous list of active projects by skipping rows with FALSE values or dates that have already passed.
Before you start

Ensure your project data is organized neatly in columns without merged cells, and verify that the 'End Date' column contains actual date values rather than text strings.

Solution 1Recommended

Use an INDEX-MATCH Array Formula with SMALL and IF Functions

This comprehensive array formula filters out past dates and skips rows that don't match the criteria, creating a continuous list of active projects.

In older versions of Excel (like Office 2019) that do not support the dynamic FILTER function, you must use a traditional array formula. The combination of INDEX, SMALL, IF, and ROW evaluates the date logic for the entire range and returns the project names one by one as you drag the formula down.

1
Select the target cell

Click the first cell where you want the filtered list of active projects to appear (for example, cell G3).

2
Input the array formula

Enter the following formula, adjusting the ranges $B$3:$B$17 for your project names and $D$3:$D$17 for your end dates: =IFERROR(INDEX($B$3:$B$17,SMALL(IF(ISNUMBER($D$3:$D$17)*($D$3:$D$17>=TODAY()),ROW($B$3:$B$17)-MIN(ROW($B$3:$B$17))+1),ROWS($F$3:$F3))),"")

3
Confirm as an array formula

Instead of pressing Enter, press Ctrl + Shift + Enter simultaneously. Excel will automatically add curly brackets {} around the formula to indicate it is evaluating an array.

4
Fill the formula down

Click and hold the small square fill handle at the bottom-right corner of the cell, and drag it down to fill the formula into the remaining rows until empty cells appear.

Use an INDEX-MATCH Array Formula with SMALL and IF Functions
Dynamic Updates: Because the formula utilizes the TODAY() function, the list of active projects will automatically refresh and update every day you open the workbook.
Powerful Excel Alternative

Easily Manage Project Data and Array Formulas in WPS Spreadsheet

WPS Office provides a fully-featured spreadsheet application that perfectly handles advanced array formulas, dynamic functions, and complex project tracking. It is a lightweight, highly compatible alternative to Microsoft Office.

  1. 1. Install WPS Office: Download and install the free version of WPS Office on your computer.
  2. 2. Open your workbook: Launch WPS Spreadsheet and open your existing project tracking workbook.
  3. 3. Enter the array formula: Select the target cell, type or paste your array formula, and press Ctrl+Shift+Enter.
  4. 4. Auto-fill the column: Drag the fill handle downwards to populate your dynamic list of active projects.
Seamlessly compatible with Microsoft Excel (.xlsx) formatsPerfect execution of complex array formulas and INDEX/MATCH combinationsBuilt-in project management templates to save you timeLightweight application that runs smoothly on any PC
microsoft office alternative - wps office

Frequently Asked Questions

Why does my array formula show an error or the wrong result?

Traditional array formulas utilizing INDEX and SMALL must be confirmed by pressing Ctrl+Shift+Enter. If you simply press Enter, the formula will not evaluate the logical arrays properly and will result in a #VALUE! error or incorrect data.

Is there a simpler way to return a list without blank rows in newer Excel versions?

Yes. If you have Microsoft 365 or a newer version of Excel that supports dynamic arrays, you can use the FILTER function instead. The formula would simply be =FILTER(B3:B17, D3:D17>=TODAY(), ""), which automatically spills the correct results without needing Ctrl+Shift+Enter.

How can I adjust this formula if my data starts on a different row?

You need to update the absolute references (like $B$3:$B$17 and $D$3:$D$17) to match your actual data range. The MIN(ROW(...))+1 portion of the formula is designed to automatically calculate the correct row offset, so you do not need to manually change the indexing logic.