Function Problems

Fix Excel MAP Function Returning Blank Values with INDIRECT and OFFSET

Natalie TaylorNatalie Taylor Nov 10, 2026 869 views

Question details

The user is attempting to compare items in a spilled array with previous periods using MAP, LAMBDA, and reference functions, but the formula outputs blank values.

How to Fix Excel MAP Function Returning Blank Values with INDIRECT and OFFSET
Product
Excel / WPS Spreadsheet
Device & OS
not provided
Scenario
Comparing each item in a dynamic spilled array with the preceding period's data using advanced array formulas.
Observed behavior
The formula returns blank values because the MAP function passes raw values to the LAMBDA function instead of expected worksheet cell references.
Before you start

Ensure your spreadsheet software is updated to a version that fully supports dynamic array functions such as MAP, LAMBDA, and DROP.

Solution 1Recommended

Use the DROP Function to Build Neighboring Arrays

Replace volatile reference functions like INDIRECT and OFFSET with the DROP function to properly align and compare neighboring cells.

The MAP function is designed to pass actual values to the LAMBDA function, not standard worksheet references. Because of this, functions that rely on spatial references, such as ROW, COLUMN, INDIRECT, ADDRESS, and OFFSET, cannot accurately identify neighboring cells inside a spilled array, resulting in blank outputs.

To resolve this issue, you need to construct the shifted arrays beforehand. By utilizing functions like DROP or TAKE, you can shift the data logically. You then pass both the original and the shifted arrays simultaneously into the MAP function for direct comparison.

1
Create the primary array

Define your main spilled array or dataset that contains the current period values you wish to evaluate.

2
Build the shifted array using DROP

Use the DROP function to offset your data by one row. For example, use DROP(data, -1) or DROP(data, 1) to create a secondary array representing the previous period's data.

3
Structure the MAP formula

Pass both the current array and the newly shifted array into the MAP function: =MAP(current_array, shifted_array, LAMBDA(curr, prev, [calculation])).

4
Compare values directly in LAMBDA

Inside your LAMBDA function, compare the 'curr' and 'prev' variables directly (e.g., curr - prev) without relying on OFFSET or INDIRECT to find the difference.

Performance Improvement: Replacing OFFSET and INDIRECT with DROP not only fixes the blank value issue but also significantly improves your spreadsheet's calculation speed by removing volatile functions.
Advanced Spreadsheets with WPS Office

Master Dynamic Arrays with WPS Spreadsheet

WPS Office Spreadsheet fully supports advanced dynamic array functions, including MAP, LAMBDA, and DROP. You can seamlessly build and troubleshoot complex data comparison models just as you would in Microsoft Excel.

  1. 1. Download and Install: Visit the official WPS Office website to download the free suite and install it on your device.
  2. 2. Open Your Workbook: Launch WPS Spreadsheet and open your existing .xlsx file containing the dynamic array formulas.
  3. 3. Apply the DROP and MAP Logic: Input your updated =MAP(array1, array2, LAMBDA(...)) formula into the target cell. WPS Spreadsheet will automatically calculate and spill the accurate results.
Full compatibility with Microsoft Excel dynamic array formulas and .xlsx formats.Native support for MAP, LAMBDA, DROP, and other advanced logical functions.Lightweight software architecture ensuring fast calculation for large spilled arrays.Free to use with a familiar, highly intuitive tabbed interface.
microsoft office alternative - wps office

Frequently Asked Questions

Why does OFFSET return errors or blanks inside a MAP function?

The MAP function processes arrays by passing individual evaluated values to the LAMBDA function, rather than passing the cell range references. Since OFFSET strictly requires a valid cell reference as its starting point, receiving a raw value causes it to fail or return blanks.

What is the best alternative to using INDIRECT for previous row calculations in dynamic arrays?

The best alternative is to use functions like DROP or TAKE to shift the entire array up or down in memory. You can then feed both the original array and the newly shifted array into a MAP function to compare the row values directly.

Are advanced functions like MAP and LAMBDA supported in WPS Office?

Yes, the latest versions of WPS Office Spreadsheet support advanced dynamic array functions, including MAP, LAMBDA, and DROP, ensuring deep compatibility with complex formulas built in Microsoft Excel.