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

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

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

在以下範例中,將公式移至格子 F1 即可解決錯誤,公式也會正確溢出。

#SPILL!錯誤,其中 =SORT (D:D) 位於 F2 格子,將延伸至工作簿的邊緣之外。移到 F1 儲存格,它就會正常運作。

常見原因:完整欄位參考資料

有一種常被誤解的方法,就是過度指定 lookup_value 參數來建立 VLOOKUP 公式。 在動態 陣列 支援 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!當 =VLOOKUP (在 E2 儲存格 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 技術社群 的專家詢問,或在 社群中獲得支援。

另請參閱

FILTER 函數

RANDARRAY 函數

SEQUENCE 函數

SORT 函數

SORTBY 函數

UNIQUE 函數

Excel 中的 #溢出! 錯誤

動態陣列與溢出陣列行為

隱含交集運算子:@