您嘗試輸入的溢出陣列公式將延伸到工作表的範圍之外。 使用較小的範圍或陣列再試一次。
在下列範例中,將公式移至儲存格 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 格線的結尾。
有3個簡單的方法可以解決此問題:
# |
手段 |
公式 |
---|---|---|
1 |
只參照您感興趣的查閱值。 這個公式樣式會傳回 動態陣列, 但 無法 搭配 Excel 表格使用。
|
= VLOOKUP (A2: A7、A:C、2、FALSE) |
2 |
只參照同一列的值,然後將公式向下複製。 這個傳統公式樣式會在 資料表中運作,但 不會 傳回 動態陣列。
|
= VLOOKUP (A2、A:C、2、FALSE) |
3 |
要求 Excel 使用 @ 運算子來執行隱含交集,然後將公式往下複製。 這個公式樣式可在 資料表中運作,但 不會 傳回 動態陣列。
|
= VLOOKUP (@A: A、A:C、2、FALSE) |
需要更多協助嗎?
您可以隨時詢問 Excel 技術社群中的專家、在 Answers 社群取得支援,或是在 Excel User Voice 上建議新功能或增強功能。