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

套用到
Microsoft 365 Excel Mac 版 Microsoft 365 Excel iPad 版 Excel Excel Web 應用程式 iPhone 版 Excel Android 版 Excel 平板電腦 Android 版 Excel 手機

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

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

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

隱含交集運算子:@