L'operatore di intersezione implicita è stato introdotto nell'ambito di un sostanziale aggiornamento al linguaggio delle formule di Excel che si proponeva di supportare le matrici dinamiche. Le matrici dinamiche introducono nuove significative capacità e funzionalità di calcolo in Excel.
Linguaggio delle formule aggiornato
Il linguaggio delle formule aggiornato di Excel è quasi identico al precedente, con la differenza che sfrutta l'operatore @ per indicare dove potrebbe verificarsi l'intersezione implicita, mentre il linguaggio precedente lo faceva in modo invisibile. Di conseguenza, si noterà la presenza di @ in alcune formule, quando vengono aperte in una versione di Excel con la matrice dinamica. È importante tenere presente che le formule continueranno a calcolare con lo stesso metodo.
Che cos'è l'intersezione implicita?
La logica di intersezione implicita riduce molti valori a un singolo valore. In questo modo, Excel ha forzato una formula a restituire un singolo valore, poiché una cella potrebbe contenere solo un unico valore. Se la formula restituiva un singolo valore, l'intersezione implicita non portava ad alcun risultato, anche se tecnicamente era stata eseguita in background. La logica opera come segue:
-
Se il valore è un singolo elemento, restituisce l'elemento.
-
Se il valore è un intervallo, restituisce il valore dalla cella nella stessa riga o colonna della formula.
-
Se il valore è una matrice, si seleziona il valore in alto a sinistra.
Con l'arrivo delle matrici dinamiche, Excel non si limita più a restituire singoli valori dalle formule, quindi non è più necessaria un'intersezione implicita invisibile. Quando una formula precedente potrebbe invisibilmente attivare un'intersezione implicita, con l'abilitazione della matrice dinamica, Excel mostra dove questa si sarebbe verificata con @.
Perché il simbolo @?
Il simbolo @ è già usato nei riferimenti di tabella per indicare un'intersezione implicita. Si consideri la formula seguente in una tabella =[@Column1]. Qui @ indica che la formula deve sfruttare un'intersezione implicita per recuperare il valore nella medesima riga da [Column1].
È possibile rimuovere il simbolo @?
Spesso è possibile. Dipende dalla parte della formula a destra dei risultati di @:
-
Se restituisce un singolo valore (il caso più comune), non avverrà alcuna modifica dopo la rimozione di @.
-
Se restituisce un intervallo o una matrice, rimuovendo @ si causerà un'espansione alle celle adiacenti.
Se si rimuove un @ aggiunto automaticamente e in seguito si apre la cartella di lavoro in una versione precedente di Excel, verrà visualizzata come formula di matrice legacy (racchiusa tra parentesi graffe {}): questa operazione viene eseguita per assicurarsi che la versione precedente non attiverà un'intersezione implicita.
Quando si aggiunge il carattere @ alle formule precedenti?
In generale, le funzioni che restituiscono intervalli o matrici a celle multiple sono precedute da @ se sono state scritte in una versione precedente di Excel. È importante notare che non è presente alcuna modifica al comportamento della formula, solo che adesso si può vedere l'intersezione implicita, che in precedenza era invisibile. Le funzioni comuni che potrebbero restituire intervalli a celle multiple includono INDICE, OFFSET e Funzioni definite dall'utente (UDF). Un'eccezione comune è il fatto che il ritorno a capo viene eseguito in una funzione che accetta una matrice o un intervallo, ad esempio SOMMA() o MEDIA().
Per informazioni dettagliate, vedere le funzioni di Excel che restituiscono intervalli o matrici.
Esempi
Formula originale |
Come visto in Excel con matrice dinamica |
Spiegazione |
---|---|---|
=SOMMA(A1:A10) |
=SOMMA(A1:A10) |
Nessuna modifica: non è possibile verificare nessuna intersezione implicita, poiché la funzione SOMMA prevede intervalli o matrici. |
=A1+A2 |
=A1+A2 |
Nessuna modifica: non è possibile nessuna intersezione implicita. |
=A1:A10 |
=@A1:A10 |
Si verificherà un'intersezione implicita ed Excel restituirà il valore associato alla riga in cui si trova la formula. |
=INDICE(A1:A10;B1) |
=@INDICE(A1:A10;B1) |
Potrebbe verificarsi un'intersezione implicita. La funzione INDICE può restituire una matrice o un intervallo quando il secondo o il terzo argomento è 0. |
=OFFSET(A1:A2,1,1) |
=@OFFSET(A1:A2;1;1) |
Potrebbe verificarsi un'intersezione implicita. La funzione SCARTO restituisce un intervallo a celle multiple. In questo caso, viene attivata un'intersezione implicita. |
=MYUDF() |
=@MYUDF() |
Potrebbe verificarsi un'intersezione implicita. Le Funzioni definite dall'utente possono restituire matrici. In questo caso, la formula originale avrebbe attivato un'intersezione implicita. |
Uso dell'operatore @ nelle nuove formule
Se si crea o si modifica una formula in un Excel con matrice dinamica che contiene l'operatore @, potrebbe sembrare _xlfn.SINGLE() in una versione di Excel precedente alla matrice dinamica.
Questo problema si verifica quando si esegue il commit di una formula mista. Una formula mista è una formula che si basa sul calcolo della matrice e sull'intersezione implicita, non supportata dalla versione di Excel precedente alla matrice dinamica. Le matrici dinamiche della versione precedente di Excel supportano solo le formule che eseguivano i) un'intersezione implicita o ii) il calcolo della matrice.
Quando la versione di Excel precedente con le matrici dinamiche abilitate rileva la creazione di una formula mista, suggerisce una variante della formula che esegue l'intersezione implicita. Ad esempio, se si immette =A1:A10+@A1:A10, verrà visualizzata la finestra di dialogo seguente:
Se si sceglie di rifiutare la formula proposta dalla finestra di dialogo, sarà eseguito il commit della formula mista =A1:A10+@A1:A10. Se in seguito si apre questa formula nella versione di Excel che precede la matrice dinamica, verrà visualizzata come =A1:A10+_xlfn.SINGLE(A1:A10) con @ nella formula mista visualizzata come _xlfn.SINGLE(). Quando questa formula viene valutata dalla versione di Excel che precede la matrice dinamica, restituirà #NAME! .
Servono altre informazioni?
È sempre possibile rivolgersi a un esperto della Tech Community di Excel o ottenere supporto nelle Community.