Excel 中的 #溢出! error - 超出工作表邊緣

Applies To
Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel for iPad Excel Web App Excel for iPhone Excel for Android tablets Excel for Android phones

您嘗試輸入的溢出陣列公式超出工作表的範圍。 請使用較小的範圍或陣列再試一次。

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

顯示 #SPILL!錯誤,其中 F2 儲存格中的 =SORT (D:D) 超出活頁簿邊緣。將它移至儲存格 F1,它就會正常運作。

常見原因:完整欄參照

建立 VLOOKUP 公式時,過度指定 lookup_value 引數,這是一個常見的誤解。 在 支援動態陣列 的 Excel 之前,Excel 只會考慮與公式在同一列中的值,而忽略任何其他值,因為 VLOOKUP 只需要一個值。 引入動態陣列後,Excel 會考慮提供給lookup_value的所有值。 這項變更表示如果您將一整欄指定為lookup_value引數,Excel 會嘗試查閱欄中的所有 1,048,576 個值。 完成後,它試圖將它們溢出到網格上,並且很可能到達網格的盡頭,導致 #SPILL! 錯誤。  

例如,當如下列範例所示在儲存格 E2 中放置公式 =VLOOKUP (A:A,A:C,2,FALSE 時,) 先前只會在儲存格 A2 中查閱識別碼。 不過,在動態陣列 Excel 中,公式會導致 #SPILL! 錯誤,因為 Excel 會查閱整欄、傳回 1,048,576 個結果,並到達 Excel 方格結尾。

顯示 #SPILL!儲存格 E2 中的 =VLOOKUP (A:A,A:D,2,FALSE) 發生錯誤,因為結果會溢出超過工作表邊緣。將公式移至儲存格 E1,它就能正常運作。

請使用下列其中一種方法來解決此問題:

# 方法 公式
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 技術社群 中的專家,或在 社群中取得支援。

另請參閱

FILTER 函數

RANDARRAY 函數

SEQUENCE 函數

SORT 函數

SORTBY 函數

UNIQUE 函數

如何修正 #SPILL! 錯誤

動態陣列公式與溢出陣列行為

隱含交集運算子:@