Applies ToMicrosoft 365 Excel Mac 版 Microsoft 365 Excel Excel 網頁版 iPad 版 Excel Excel Web 應用程式 iPhone 版 Excel Android 版 Excel 平板電腦 Android 版 Excel 手機

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

在下列範例中,將公式移至儲存格 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! 錯誤

動態陣列與溢出陣列行為

隱含交集運算子:@

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。