Fix Excel MAP Function Returning Blank Values with INDIRECT and OFFSET
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.

- 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.
Ensure your spreadsheet software is updated to a version that fully supports dynamic array functions such as MAP, LAMBDA, and DROP.
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.
Define your main spilled array or dataset that contains the current period values you wish to evaluate.
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.
Pass both the current array and the newly shifted array into the MAP function: =MAP(current_array, shifted_array, LAMBDA(curr, prev, [calculation])).
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.
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. Download and Install: Visit the official WPS Office website to download the free suite and install it on your device.
- 2. Open Your Workbook: Launch WPS Spreadsheet and open your existing .xlsx file containing the dynamic array formulas.
- 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.

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.




