隱含交集運算子:@

隱式交集運算子是作為大量的 Excel 公式語言升級所引入, 以支援動態陣列。 動態陣列為 Excel 帶來了大量的新計算能力和功能。

已升級的公式語言

Excel 升級後的公式語言與舊語言幾乎完全相同, 不同的是它使用 @ 運算子來指出可能發生隱含交集的位置, 而舊版語言則會自行進行。 因此, 當您在動態陣列 Excel 中開啟 @ 時, 您可能會注意到 @ 出現在一些公式中。 請務必注意, 您的公式將會繼續以與其總是相同的方式來計算。  

什麼是隱含交集?

隱含的交集邏輯會將許多值減少為單一值。 Excel 會執行此動作來強制公式傳回單一值, 因為儲存格只能包含單一值。 如果您的公式傳回單一值, 則隱式交集沒有作用 (即使是從技術上來說, 它是在背景中完成)。 此邏輯的運作方式如下:

  • 如果該值是單一專案, 則傳回該專案。

  • 如果該值是一個範圍, 則會傳回來自同一列或第一欄的儲存格的值作為公式。

  • 如果該值為數組, 則挑選左上角的值。

隨著動態陣列的出現, Excel 不再僅限於從公式傳回單一值, 所以不再需要靜態的隱式交集。 如果舊的公式可以悄悄地觸發隱式交集, 則啟用動態陣列的 Excel 就會顯示它發生在 @ 中的位置。  

為什麼 @ 符號? 

@ 符號已在資料表參照中使用, 以指示隱含交集。 請考慮在資料表中使用下列公式 = [@Column1]。 在這裡, @ 表示公式應該使用隱含交集, 從 [欄 1] 中的同一列取得值。  

您可以移除 @ 嗎? 

您通常都可以。 這取決於 @ 傳回右側的公式部分: 

  • 如果它傳回單一值 (最常見的情況), 移除 @ 就不會有任何變更。

  • 如果它傳回範圍或陣列, 移除 @ 會使其溢出至連續的儲存格。

如果您移除自動新增的 @ 之後又在舊版 Excel 中開啟活頁簿, 該活頁簿會顯示為舊版陣列公式(以大括弧 {} 括住), 這是為了確保較舊的版本不會觸發隱式交集。

我們何時將 @ 移至舊公式? 

一般來說, 傳回多儲存格範圍或陣列的函數會以 @ 為首碼 (如果它們是在舊版 Excel 中撰寫的話)。 請務必注意, 公式的行為方式不會有任何變更, 只要您現在就可以看到先前不可見的隱含交集了。 可能傳回多重儲存格範圍的常見函數包括 [索引]、[位移], 以及使用者定義函數 (Udf)。  常見例外狀況是封裝在接受陣列或範圍的函數中 (例如 SUM () 或 AVERAGE ())。 

如需更多詳細資料, 請參閱返回範圍或陣列的 Excel 函數

範例

原始公式

如動態陣列 Excel 所示 

說明

= SUM (A1: A10) 

= SUM (A1: A10) 

無變更-如果 SUM 函數預期範圍或陣列, 則不會發生隱含交集。 

= A1 + A2 

= A1 + A2 

無變更-可能不會發生隱含交叉。 

= A1: A10 

= @A1: A10 

將會發生隱含交集, 且 Excel 會傳回與公式所在列相關聯的值。

= INDEX (A1: A10, B1) 

= @INDEX (A1: A10, B1) 

可能會發生隱含交叉。 INDEX 函數可以傳回第二個或第三個引數為0的陣列或範圍。  

= OFFSET (A1: A2, 1, 1) 

= @OFFSET (A1: A2, 1, 1) 

可能會發生隱含交叉。 OFFSET 函數可以傳回多重儲存格範圍。 在此情況下, 會觸發隱式交集。 

= MYUDF () 

= @MYUDF () 

可能會發生隱含交叉。 使用者定義的函數可以傳回陣列。 如此一來, 原始公式就會觸發隱式交集。 

需要更多協助嗎?

您可以隨時詢問 Excel 技術社群中的專家、在 Answers 社群取得支援,或是在 Excel User Voice 上建議新功能或增強功能。

另請參閱

FILTER 函數

RANDARRAY 函數

SEQUENCE 函數

SORT 函數

SORTBY 函數

UNIQUE 函數

Excel 中的 #SPILL! 錯誤

動態陣列與溢出陣列行為

附註:  本頁面是經由自動翻譯而成,因此文中可能有文法錯誤或不準確之處。 讓這些內容對您有所幫助是我們的目的。 告訴我們這項資訊是否有幫助? 這裡是供您參考的英文文章

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×