How to Return a Dynamic Array Block for a Depreciation Base in Excel
Question details
The user needs to dynamically calculate the depreciation base for accumulated purchases over their useful lives, replacing manual row-by-row calculations with a dynamic array block.

- Product
- Excel
- Device & OS
- not provided
- Scenario
- Accumulating purchase amounts over their useful lives and ensuring older purchases are automatically removed from the calculation block once they expire.
- Observed behavior
- Currently relying on manual, row-by-row formulas which are inefficient, and seeking to transition to an automated dynamic array formula.
Ensure your dataset is organized cleanly with purchase dates in one column and purchase amounts in another. If you plan to use modern array formulas like LET or BYROW, verify that your spreadsheet software supports dynamic arrays.
Use SUMIFS and EDATE for Conditional Accumulation
A highly reliable method that calculates the expiration date first, then conditionally sums valid, unexpired purchases using SUMIFS.
Place your purchase dates in column A and the corresponding purchase amounts in column B, starting from row 2.
In column D (or any helper column), calculate the expiration date of each item. For a three-year useful life (36 months), enter the formula =EDATE(A2, 36).
In the depreciation base column, use the formula =SUMIFS($B$2:$B$100, $A$2:$A$100, "<="&A2, $D$2:$D$100, ">"&A2) to sum all purchases made on or before the current row's date that have not yet expired.
Drag the helper column and the SUMIFS formula down alongside your dataset to calculate the dynamic depreciation base for each period.

Use Advanced Dynamic Array Functions (LET, BYROW, SEQUENCE)
Replaces row-by-row formulas entirely with a single spill-array formula that dynamically expands as data grows.
Calculate Depreciation Bases Easily in WPS Spreadsheet
WPS Spreadsheet fully supports advanced financial calculations, logic functions like SUMIFS and EDATE, and powerful array formulas. You can seamlessly build comprehensive, dynamic depreciation models without switching platforms.
- 1. Open your data: Launch WPS Spreadsheet and open your financial dataset containing purchase histories.
- 2. Input the logic: Use the =EDATE() function to establish expiration dates and =SUMIFS() to dynamically accumulate active purchases.
- 3. Save securely: Save your completed depreciation model in the universally compatible .xlsx format to share with colleagues.

Frequently Asked Questions
Why is my dynamic array formula returning a #SPILL! error?
A #SPILL! error occurs when the dynamic array formula needs to output results into multiple cells, but one or more of the destination cells are not empty. Clear the blocking cells (which might contain spaces or old formulas) to allow the block to expand correctly.
Can I use the EDATE function for useful lives calculated in days instead of months?
No, the EDATE function specifically calculates future or past dates by adding or subtracting whole months. If you need to calculate expiration in days, simply add the number of days directly to the date cell (for example, use =A2 + 1095 for exactly 3 years in days).
Will the SUMIFS and EDATE method work on older spreadsheet software?
Yes, SUMIFS and EDATE are legacy functions supported in almost all traditional spreadsheet versions. This makes the helper-column method much more backward-compatible than using modern dynamic array spill functions like BYROW or SEQUENCE.




