使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

當公式傳回多個結果,且 Excel 無法將結果傳回方格時,會傳回 #SPILL 錯誤。 如需這些錯誤類型的詳細資訊,請參閱下列說明主題:

當溢出陣列公式的溢出範圍不是空白時,會發生此錯誤。

#SPILL! 錯誤 - 溢出範圍不是空白

選取公式時,虛線框線會指出預期的溢出範圍。

您可以選取錯誤浮動工具列,然後選擇 [選取阻礙的儲存格] 選項,立即前往阻礙的儲存格。 之後,您可以刪除或移動阻礙儲存格的輸入來清除錯誤。 清除阻礙後,陣列公式就會如預期溢出。

Excel 無法判斷溢出陣列的大小,因為它是可變更的,並且會在計算行程之間調整大小。 例如,下列公式會觸發此 #SPILL! 錯誤:

=SEQUENCE(RANDBETWEEN(1,1000))

動態陣列調整大小可能會觸發其他計算行程,以確保試算表已計算完全。 如果陣列大小在這些額外行程期間持續變更,且不穩定,Excel 會將動態陣列解析為 #SPILL!。

此錯誤值通常與 RANDRANDARRAYRANDBETWEEN 函數的使用有關。 其他可變更的函數,例如 OFFSETINDIRECTTODAY 不會在每個計算行程傳回不同值。 

例如,當如下列範例所示在儲存格 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,它就會正常運作。

有 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 表格不支援溢出的陣列公式。 請嘗試將公式從表格移出,或將表格轉換成範圍 (按一下 [表格設計] > [工具] > [轉換為範圍])。

#SPILL! 錯誤 - 表格公式

您嘗試輸入的溢出陣列公式造成 Excel 記憶體不足。 請嘗試參照較小的陣列或範圍。

溢出的陣列公式無法溢出到合併的儲存格中。 請取消合併有問題的儲存格,或將公式移至未與合併儲存格交集的另一個範圍。

#SPILL! 錯誤 - 溢出到合併儲存格

選取公式時,虛線框線會指出預期的溢出範圍。

您可以選取錯誤浮動工具列,然後選擇 [選取阻礙的儲存格] 選項,立即前往阻礙的儲存格。 清除合併儲存格後,陣列公式就會如預期溢出。

Excel 無法識別或無法調解此錯誤的原因。 請確定您的公式包含您案例的所有所需引數。

需要更多協助嗎?

另請參閱

您可以隨時詢問 Excel 技術社群中的專家,或在社群中取得支援。

FILTER 函數

RANDARRAY 函數

SEQUENCE 函數

SORT 函數

SORTBY 函數

UNIQUE 函數

動態陣列與溢出陣列行為

隱含交集運算子:@

需要更多協助嗎?

想要其他選項嗎?

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

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

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×