您嘗試輸入的溢出陣列公式將延伸到工作表的範圍之外。 使用較小的範圍或陣列再試一次。

在下列範例中,將公式移至儲存格 F1 將會解決錯誤,且公式會正確溢出。

Excel 中的 #SPILL! 錯誤: = 排序儲存格 F2 中 (D:D) 將延伸至活頁簿邊緣以外。 將它移至儲存格 F1,即可正常運作。

常見原因:完整欄參照

透過指定lookup_value引數,通常會有一個可透過誤解的方法來建立VLOOKUP公式。 在 動態支援陣列的 excel 之前,Excel 只會考慮與公式相同列的值,而忽略任何其他資料行,而 VLOOKUP 預期只有單一值。 隨著動態陣列的引入,Excel 會將提供的所有值視為 lookup_value。 這表示如果整個資料行都是以 lookup_value 引數形式提供,Excel 將會嘗試查閱欄中的所有1048576值。 完成後,它會嘗試將它們溢出至格線,且很可能會在格線的結尾處命中,進而產生 #SPILL! 錯誤。  

例如,當您在下列範例中放在儲存格 E2 中時,公式 = VLOOKUP (A:A、A:C、2、FALSE) 先前只能查閱儲存格 A2 中的 ID。 不過,在動態陣列 Excel 中,公式會造成 #SPILL! 錯誤,因為 Excel 會查閱整個欄、傳回1048576結果,並命中 Excel 格線的結尾。

Excel 中的 #SPILL! 在儲存格 E2 中由於 = VLOOKUP (A:A、A:D、2、FALSE) 所造成的錯誤,因為結果會溢出至工作表的邊緣以外。 將公式移至儲存格 E1,即可正常運作。

有3個簡單的方法可以解決此問題:

#

手段

公式

1

只參照您感興趣的查閱值。 這個公式樣式會傳回 動態陣列,無法 搭配 Excel 表格使用。 

使用 = VLOOKUP (A2: A7、A:C、2、FALSE) 傳回不會產生 #SPILL 的動態陣列! 錯誤。

= VLOOKUP (A2: A7、A:C、2、FALSE)

2

只參照同一列的值,然後將公式向下複製。 這個傳統公式樣式會在 資料表中運作,但 不會 傳回 動態陣列

使用傳統的 VLOOKUP 與單一 lookup_value 參照: = VLOOKUP (A2、A:C、32、FALSE) 。 此公式不會傳回動態陣列,但可與 Excel 表格搭配使用。

= VLOOKUP (A2、A:C、2、FALSE)

3

要求 Excel 使用 @ 運算子來執行隱含交集,然後將公式往下複製。 這個公式樣式可在 資料表中運作,但 不會 傳回 動態陣列

使用 @ 運算子,然後複製: = VLOOKUP ( @A: A、A:C、2、FALSE) 。 這個參照樣式將在表格中運作,但不會傳回動態陣列。

= VLOOKUP (@A: A、A:C、2、FALSE)

需要更多協助嗎?

您可以隨時詢問 Excel 技術社群中的專家、在 Answers 社群取得支援,或是在 Excel User Voice 上建議新功能或增強功能。

另請參閱

FILTER 函數

RANDARRAY 函數

SEQUENCE 函數

SORT 函數

SORTBY 函數

UNIQUE 函數

Excel 中的 #SPILL! 錯誤

動態陣列與溢出陣列行為

隱含交集運算子:@

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Office Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×