SOLVED

#SPILL! Error when doing VLOOKUP?

Microsoft

I just updated my Office 365 (Mac) with the latest Excel updates yesterday and for some reason can no longer do a standard vlookup formula. The results in the cell where I"m trying to do lookup, return with "#SPILL!" I've tried doing the lookup several times and no luck. Does anyone know what this response means? 

26 Replies

Hi Jannifer,

 

It looks like you happy to have most modern Excel with Dynamic arrays. There are few reason for the SPILL error, more is here https://support.office.com/en-us/article/-spill-errors-in-excel-ffe0f555-b479-4a17-a6e2-ef9cc9ad4023 and about dynamic array first the search returned me is https://www.excelcampus.com/functions/dynamic-array-formulas-spill-ranges/

I am having the same issue but on a PC, recent update. I was not able to use the below recommendation, as it did not provide any useful guidance. Help, I use VLook-up all the time and this is creating work stoppage!! Please let me know if you have learned of any other suggestions to fix the Spill error.
Thank you!

@Ljohnson329 

Experiencing the same issue. And not able to find the reason behind that and also not able to get the solution anywhere.

@utkarsh0103 

Please post a workbook that demonstrates the problem. If the problem is reproduced at my end (I have multiple versions of Mac and Windows Excel), I can either suggest a workaround & explanation, or else report it to Microsoft developers as a bug.

@Brad_Yundt , I am getting the same error. Would appreciate some help but cannot find an option to upload the workbook here.

@saurajyoti 

What I see in the Message box is shown below. The Browse... button at the bottom left is what I use to attach files.

 

If you don't have that button, then my email address is first initial last name at my ISP alum dot mit dot edu.

 

Brad Yundt

 

image.png

best response confirmed by JoeMcDaid (Microsoft)
Solution

Hi @Jennifer Corcoran ,

 

This is likely because your VLOOKUP is looking up multiple values in the first argument (the red text below).

 

=VLOOKUP(A:A,B:B,1,FALSE)

 

By looking up A:A you are asking Excel to lookup a million cells. In the past this worked because Excel didn't know how to lookup multiple values, so it threw all but one away. This behaviour was called "implicit intersection". With the introduction of Dynamic Arrays, Excel now supports looking up multiple values and no longer does implicit intersection silently. If there isn't enough space to return the values you will see the #SPILL error. 

 

To modify your formula to return just a single value, you can use one of the following techniques:

 

1. Modify you formula to use the new implicit intersection operator @ to select one lookup value. =VLOOKUP(@A:A,B:B,1,FALSE)

2. Simply reference a single cell and copy down. =VLOOKUP(A2,B:B,1,FALSE) 

 

Both work but my preferred option is 2 as it is the simplest. 

 

Regards, Joe [Excel Team]

 

@JoeMcDaid I signed up to this website just to thank you for offering the solution, you are officially the saviour of many lives.

@JoeMcDaid thank you so much! Wish Excel had given us the heads up, been scratching my head for days!!

This still doesn't work for me. I have the various years of birth for over 16k data which I have put in a year e.g. 1958 -1964 and so on. I am using the ranges as my table array. My challenge is I select only one cell, it returns a wrong range and for the others it gives me #N/A. I select all the data in my table array, it returns as #SPILL.
What am I doing wrong?

@Kwase 

Post a file and show the type of results you want. That way, an appropriate formula can be suggested.

Brad Yundt

@JoeMcDaid 

@Brad Yundt 

Hi Joe and Brad.

 I am getting a spill error with the function

=VLOOKUP ([Color Number], colors, 4,FALSE)

Where should I put the @ (implicit intersection operator) to stop the #SPILL ERROR

 

I am looking up an item's color number in the colors table to get the year that color was retired if applicable, in the 4th column of the table.  the function returns 0 if the retired cell in the lookup table is blank

 

I really wish that you had posted a workbook.

 

I tried to imagine what your layout looked like, and decided you might have a four column named range called colors and a table named Table1 with a column header label of Color Number. I then created a formula on the same row as data in the table, but not part of the table. That's where I got a #SPILL error value.

 

The fix was to use this formula:

=VLOOKUP(Table1[@[Color Number]], colors, 4,FALSE)

ColorNumber screenshot.PNG 

@Brad Yundt 

Hi Brad,

thank you very much, I will ask my tutee in excel to try this. see 2 workbooks from me and her, she got the error, I did not.

@JTalc 

I moved the formula inside my Table1 like this, and it worked like shown below.

=VLOOKUP([@[Color Number]], colors, 4,FALSE)

 When I changed the table to have only a single row, your original formula worked. But as soon as I added a second row to that table, both formulas returned #SPILL error value. The fix is shown above.

 

Brad

HI Brad@Brad Yundt 

Thank you so much!  I will reply as soon as I can contact my tutee to make this correction

@Brad Yundt 

my tutee made the changes and it shows #REF!  Do you have any other suggestions?  Thank you for your time.  Stay Safe.

@JTalc,

Do I have any other suggestions?

 

I most certainly do. Post a file that replicates the problem. Two rows of data are sufficient.

 

Screenshots are not sufficient. It must be an actual file that replicates the problem.

 

Brad

Hi Brad@Brad Yundt 

Enclosed is the workbook with the spill error in the year retired column.  Thank you for looking at this.

Jane

1 best response

Accepted Solutions
best response confirmed by JoeMcDaid (Microsoft)
Solution

Hi @Jennifer Corcoran ,

 

This is likely because your VLOOKUP is looking up multiple values in the first argument (the red text below).

 

=VLOOKUP(A:A,B:B,1,FALSE)

 

By looking up A:A you are asking Excel to lookup a million cells. In the past this worked because Excel didn't know how to lookup multiple values, so it threw all but one away. This behaviour was called "implicit intersection". With the introduction of Dynamic Arrays, Excel now supports looking up multiple values and no longer does implicit intersection silently. If there isn't enough space to return the values you will see the #SPILL error. 

 

To modify your formula to return just a single value, you can use one of the following techniques:

 

1. Modify you formula to use the new implicit intersection operator @ to select one lookup value. =VLOOKUP(@A:A,B:B,1,FALSE)

2. Simply reference a single cell and copy down. =VLOOKUP(A2,B:B,1,FALSE) 

 

Both work but my preferred option is 2 as it is the simplest. 

 

Regards, Joe [Excel Team]

 

View solution in original post