OK, Excel 365 will automatically put the @ sign in for you "when it feels it needs it". Hence, you can put this into cell D2 and it will SPILL down as far as the end of the data:
This, though, uses full column references, without the @ sign:
And the problem with that is that it SPILLS down the entire column ... hence IT MUST GO in row 1. That's why you get the SPILL error. Simply because you, not unreasonably, put the formula in row 2 and it doesn't have enough cells. However, the other problem with that is that you will get #N/A for the rest of the column after the data area. You could solve that with IFERROR but you don't really want a column full of a formula that it doesn't need.
Yes, AutoFill, as I described is the Double Click on the Cross-Hairs at the bottom right of the cell with the formula. And yes, if you hit a blank cell, it will stop. The sample data in this example does not appear to have blank cells, so it may not be an issue.
There are, of course, workarounds. You could, for example, put the "simple" formula in row 2, copy it, Shift and select the cell in the last row of data, and paste the formula.
Anyway, we understand the problem. We know how and why it happens. We/you have alternatives.
And I have learned some things
.
1) A formula that matches a full column of data against another column of data produces an array of results (automatically).
2) Excel 365 handles that scenario differently
3) How and why you get SPILL errors
4) Alternative ways to get the same result.
Lastly, 5) for all that, I would probably still go with the "simple" formula as I suspect it has the least performance hit and least backward/forward compatibility issues.
Bookmarks