隱含交集運算子:@

隱式交集運算子是作為大量的 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 中撰寫或編輯公式,可能會顯示為 _xlfn。在前期動態陣列 Excel 中是單一()。

當您確認混合式公式時,就會發生這種情況。 混合式公式是依賴陣列計算與隱含交集的公式,不受前動態陣列 Excel 支援。 在整個陣列中,只支援以動態i交集或ii計算的公式。

當啟用動態陣列的 Excel 偵測到 [混合式公式] 的建立時,它會在整個中建議隱式交集的公式變化。 例如,如果您輸入= A1: a10 + @A1: a10,您會看到下列對話方塊:

詢問您是否希望 fromula = @A1: A10 + @A1: A10 的對話方塊。

如果您選擇拒絕對話方塊所建議的公式,混合公式= A1: a10 + @A1: a10 將會被提交。 如果您稍後在前期動態陣列 Excel 中開啟這個公式,該公式就會顯示為= A1: A10 + _xlfn。單(A1: A10) ,混合式公式中的 @ 是顯示為_xlfn。SINGLE ()。 當預先動態陣列 Excel 評估這個公式時,它會傳回 #NAME! 的錯誤值。 

需要更多協助嗎?

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

另請參閱

FILTER 函數

RANDARRAY 函數

SEQUENCE 函數

SORT 函數

SORTBY 函數

UNIQUE 函數

Excel 中的 #SPILL! 錯誤

動態陣列與溢出陣列行為

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

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×