隱含交集運算子是在大幅升級 Excel 公式語言以支援 動態陣列時引入的。 動態陣列為Excel帶來顯著的新計算能力和功能。
已升級的公式語言
Excel 的升級公式語言幾乎與舊的語言相同,但它會使用 @ 運算符來指出隱含交集可能發生的位置,而舊語言則是以無訊息的方式執行此動作。 因此,您可能會注意到在動態陣列Excel中開啟時,某些公式中出現 @。 請務必注意, 您的公式會繼續以一如往常的相同方式計算。
什麼是隱含交集?
隱含交集邏輯會將許多值縮減為單一值。 Excel 這麼做會強制公式傳回單一值,因為單元格只能包含單一值。 如果您的公式傳回單一值,那麼隱含交集 (沒有執行任何動作,即使技術上是在背景) 完成。 邏輯的運作方式如下:
-
如果值是單一專案,則傳回專案。
-
如果值是範圍,則傳回與公式同一列或同一欄的單元格值。
-
如果值是陣列,請挑選左上角的值。
隨著動態數位的出現,Excel 不再局限於從公式傳回單一值,因此不再需要無訊息的隱含交集。 當舊公式可能明顯觸發隱含交集時,啟用動態數位的 Excel 會顯示使用 @发生的位置。
為什麼是 @ 符號?
@ 符號已用於表格參照以表示隱含交集。 請在數據表 =[@Column1] 中考慮下列公式。 在此,@ 表示公式應使用隱含交集從 [欄1] 擷取同一列的值。
您可以移除 @吗?
您通常可以。 這取決於 @ 右邊公式的哪個部分傳回:
-
如果傳回 (最常見案例) 單一值,則移除 @将不会有任何变更。
-
如果傳回範圍或陣列,移除 @ 會造成其 溢出至相鄰的儲存格。
如果您在舊版 Excel 中移除自動新增的 @ 後再開啟活頁簿,活頁簿會顯示為舊版陣列公式 , (用括弧 {}) 括住,這麼做可確保舊版不會觸發隱含交集。
何時要將 @ 新增至舊公式?
一般而言,如果傳回多單元格範圍或陣列的函數是在舊版 Excel 中撰寫,則會使用 @ 預先設定。 請務必注意,公式的行為方式並不會改變,您現在只能看到先前隱藏的隱含交集。 可傳回多儲存格範圍的一般函數包括 INDEX、OFFSET 和使用者定義函數 (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 前動態陣列中的SINGLE () 。
當您認可混合公式時,就會發生這種情況。 混合公式是依靠數位計算和隱含交集的公式,前動態陣列 Excel 不支援此公式。 前動態數位僅支援 i) 隱含交集或 ii) 陣列計算的公式。
啟用動態數位時,Excel 會偵測到「混合公式」的建立,它會建議整個公式隱含交集的公式變化。 例如,如果您輸入 =A1:A10+@A1:A10,您會看到下列對話框:
如果您選擇拒絕對話框建議的公式,則會確認混合公式 =A1:A10+@A1:A10 。 如果您稍後在前動態陣列Excel中開啟此公式,公式會顯示為 =A1:A10+_xlfn。SINGLE (A1:A10) ,混合公式中的 @'s 會顯示為_xlfn。SINGLE () 。 當此公式由前動態陣列Excel評估時,會傳回 #NAME! 的錯誤值。
需要更多協助嗎?
您可以隨時詢問 Excel 技術社群中的專家,或在社群中取得支援。