Search notes:

Excel: intersection operator

Implicit intersection

Implicit intersection evaluates a set of many values to a single value.
In the «old» formula language, Excel used implicit intersection in a cell's formula to reduce the potentially many values that the formula returned to one value, because a cell could only contain a single value.
If the formula returned one value only, implicit intersection was practically not necessary (but behind the scenes, Excel did it anyway).
So, implicit intersection was evaluated as follows
With the introduction of dynamic arrays, Excel is not required to display one value only in a formula, rather, the values returned by the formula are spilled to neighboring cells.

Implicit intersection operator @

As part of Excel's formula-language upgrade to support dynamic arrays, Excel introduced the implicit intersection operator @.
When using the upgraded formula language, this operator indicates that implicit intersection should be applied. In the old language, Excel always did this, so there was no need for an implicit intersection operator.
Formulas that contain the @ in the new language behave the same as corresponding formulas in the old language without the @.
In versions of Excel that use the newer formula language, Excel sometimes automatically inserts the @ to ensure consistent behaviour. If the user removes such an @ and then opens the Workbook in an earlier version of Excel, the formula will be wrapped within the legacy annotation {…} to ensure that the older excel does not evaluate the formula in implicit intersection context.
The @ symbol was already used in table references (before dynamic arrays were introduced) where they also indicated implicit intersection (for example like =[@col_A]).

Simple examples where @ makes a difference

=a1:a10 vs =@a1:a10
=index() vs =@index(…)

VBA: Adding formula to a range without the intersection operator

Sometimes (always?), Excel automatically adds the intersection operator when assigning a formula with range.formula.
In order to prevent that, range.formula2 (or range.formula2R1C1 etc.) must be used.

Misc

Some functions that return multi-cell ranges or array include index(…), offset(…) and user defined (VBA) functions.

Index