Excel Implicit Intersection and at Operator
Excel Implicit Intersection and at Operator
Implicit intersection has been around in Excel for years, but very few people cared about it. Now that it is no longer the default
behavior in Excel 365, so many questions arise. This tutorial aims to provide the answers.
You have the feeling you know everything about your workbooks, and then a @ character appears from nowhere in the
beginning of your formulas. What does this @ mean? And how does it work precisely? In a nutshell, it is an implicit
intersection operator that disables the new default array behavior of a formula and tells Excel to return a single value.
For more detail, please continue reading.
If the formula produces a single value, return that value (in fact, implicit intersection does nothing in this case).
In case of a range, use a value from the cell on the same row or column as the formula.
For example, when multiplying two columns of numbers, Excel picks just one number from each column in the same
row where the formula is and outputs the result only in one cell (D2 in our case):
=B2:B5*C2:C5
To multiply the numbers in other cells, you need to copy the formula down.
https://www.ablebits.com/office-addins-blog/2021/03/31/excel-implicit-intersection/#operator 1/8
06/03/2022, 17:33 Excel implicit intersection and @ operator
To disable implicit intersection, you must enter an array formula with Ctrl + Shift + Enter (which is why traditional
array formulas are sometimes called CSE formulas). This clearly tells Excel to process multiple values input as ranges or
arrays.
In our case, select cells D2:D5, type the above formula and confirm it by pressing the Ctrl + Shift + Enter keys together.
Once you do this, the formula gets surrounded in {curly braces}, indicating it's an array formula. As the result, the
numbers in each row get multiplied at once:
Here, the entire ranges are multiplied with a regular formula that is only entered in the topmost cell (D2):
=B2:B5*C2:C5
If you want a formula to return just one value, you need to explicitly enable implicit interception. For this, they
introduced a special operator, and in the next section you will find full details about it.
https://www.ablebits.com/office-addins-blog/2021/03/31/excel-implicit-intersection/#operator 2/8
06/03/2022, 17:33 Excel implicit intersection and @ operator
For example:
=@B2:B5*@C2:C5
Note. The implicit intersection operator is only supported in Microsoft 365 subscriptions. If you try to add the @ sign
in older versions, it will be silently removed upon completing the formula.
Typically, the intersection operator is inserted before the function that could return multi-cell arrays or ranges such as
OFFSET, INDEX, or user-defined functions.
=INDEX(B2:C5,,F1)
=@INDEX(B2:C5,,F1)
The reason is that without the @ operator, the formula will return all the values from C2:C5 because the row_num
argument of the INDEX function is omitted. To ensure the consistent behavior in all versions, the previously
unnoticeable implicit intersection becomes evident. Please compare the results:
https://www.ablebits.com/office-addins-blog/2021/03/31/excel-implicit-intersection/#operator 3/8
06/03/2022, 17:33 Excel implicit intersection and @ operator
In case a function with a potential multi-cell output is nested in another one that can handle arrays and output a single
result (such as SUM, COUNT, AVERAGE, etc.), then there is no reason to trigger implicit intersection, and the formula is
transferred to dynamic Excel as-is without adding the @ sign. For example:
=AVERAGE(INDEX(B2:C5,,F1))
What are the consequences of deleting the implicit intersection operator? Depending on what the part of the formula
following the @ sign returns, there are three possible outcomes:
If an array is returned but there are not enough empty cells to display all the values, a #SPILL error will occur.
In dynamic Excel, it will result in a #SPILL error because there isn't enough space to display nearly 1.05 million results.
https://www.ablebits.com/office-addins-blog/2021/03/31/excel-implicit-intersection/#operator 4/8
06/03/2022, 17:33 Excel implicit intersection and @ operator
When Excel foresees that the formula may spill beyond the edges of the worksheet, it will suggest a correction, and you
would be wise to accept it:
Suppose you have written this dynamic array formula in Excel 365:
=B2:B5*C2:C5
{=B2:B5*C2:C5}
If you wish to output just one result, add @ before each expression, and then copy the formula to as many cells as
needed (to keep the ranges unchanged, remember to lock them with absolute cells references):
https://www.ablebits.com/office-addins-blog/2021/03/31/excel-implicit-intersection/#operator 5/8
06/03/2022, 17:33 Excel implicit intersection and @ operator
=@$B$2:$B$5*@$C$2:$C$5
In older Excel, the @ symbol will be automatically removed, and the formula will take a normal look:
=$B$2:$B$5*$C$2:$C$5
What you should not do is mix implicit intersection and array calculations within one formula! For example, if you
try to enter something like this in Excel 365:
=@B2:B5*C2:C5
You will be notified that such a formula is not supported in older versions:
If you reject the proposed variation, the mixed formula will be committed and will deliver some results (though, it may
not be the results you expected). But when you open that formula in pre-dynamic Excel, the _xlfn.SINGLE function will
appear instead of the implicit intersection operator:
=_xlfn.SINGLE(B2:B5)*C2:C5
When this formula is evaluated by older Excel, a #NAME! error will be returned.
In Excel 2019 and earlier, you can refer to a whole column, and the formula will resolve to a single cell in the current
row.
For example, this formula successfully multiplies the numbers in the Price and Qty. columns:
=[Price]*[Qty.]
Even though it refers to the entire columns, pre-dynamic Excel still operates on single values at a row level.
https://www.ablebits.com/office-addins-blog/2021/03/31/excel-implicit-intersection/#operator 6/8
06/03/2022, 17:33 Excel implicit intersection and @ operator
In Excel 365, this approach won't work because implicit intersection is off by default. Because the formula returns
multiple values and Excel is unable to fit them all into a table, it will suggest prefixing the column names with the @
symbol:
If you have experience with table references, this syntax should be familiar to you - the @ symbol indicates that the
formula will process the values from columns Price and Qty. on the same row.
=[@Price]*[@[Qty.]]
Tip. If you intend to use a dynamic array function to calculate a table's data, be sure to place your formula outside
the table, because inside tables dynamic arrays are not supported.
That's how implicit intersection works in Excel. I thank you for reading and hope to see you on our blog next week!
https://www.ablebits.com/office-addins-blog/2021/03/31/excel-implicit-intersection/#operator 7/8
06/03/2022, 17:33 Excel implicit intersection and @ operator
Copyright © 2003 - 2022 Office Data Apps sp. z o.o. All rights reserved. Privacy policy Terms of use Contact us
Microsoft and the Office logos are trademarks or registered trademarks of Microsoft Corporation. Google Chrome is a trademark of Google LLC.
https://www.ablebits.com/office-addins-blog/2021/03/31/excel-implicit-intersection/#operator 8/8