Intersect()

Il metodo di navigazione Intersect() viene utilizzato quando si desidera fare riferimento ai nodi che sono il risultato dell'intersezione di due o più metodi di navigazione dei nodi.

Di seguito è disponibile un esempio.



L'immagine illustra l'intersezione dei metodi di navigazione AllPrevious() e Parent() con Q3 come nodo corrente. I nodi trovati da entrambi i metodi sono Q1-Q3, 2019.

Indipendentemente dal trimestre del nodo corrente, l'intersezione avrà come risultato un periodo che inizia con Q1 e termina con il trimestre rappresentato dal nodo corrente. Questo significa che un caso d'uso tipico per il metodo Intersect() è un calcolo da inizio anno (vedere l'esempio seguente).

Esempi

Nota: Nelle espressioni degli esempi si suppone che vengano utilizzati dati interni alla memoria.

Esempio di calcolo da inizio anno

Il grafico a barre mostra la somma delle vendite trimestrali durante il periodo 2016-2018.



Si supponga di essere interessati alle somme cumulative di ogni anno. Se si utilizza il metodo di navigazione AllPrevious(), si sommeranno tutti i mesi precedenti. Ma in Q1 2017 si desidera iniziare la somma daccapo e ignorare la somma dei trimestri dell'anno precedente, ovvero il 2016.



Ad esempio, la somma cumulativa Q3 2017 dovrebbe essere 976 (317+307+352). Per fare riferimento solo a queste tre barre risulta utile il metodo Intersect(). Il metodo AllPrevious() includerebbe Q1-Q4 2016 e Q1-Q3 2017 nella somma, mentre il metodo Parent() includerebbe tutti e quattro i trimestri del 2017. L'intersezione di queste due modalità di navigazione invece restituisce esattamente le barre in questione.

Applicare l'espressione seguente in cui Intersect() combina i due metodi e visualizza il risultato relativo ad esempio a Q3 2017:



Esempio d'uso di Intersect() quando i dati sono suddivisi in più assi

Ogni volta che si effettua una suddivisione dei dati utilizzando vari assi, i dati vengono separati in parti sempre più piccole, rappresentate da una quantità di marcatori sempre maggiore. Quando si applica un'espressione, questa opererà sulla parte più piccola dei dati. Nell'esempio precedente i dati vengono suddivisi unicamente in base all'asse delle categorie. Ma cosa accade se ad esempio si effettua la suddivisione anche in base all'asse dei colori? L'esempio seguente mostra il risultato dell'operazione.

Il grafico a barre seguente visualizza le statistiche di sopravvivenza della tragedia del Titanic. I dati sono suddivisi unicamente in base all'asse delle categorie.



L'espressione nell'immagine successiva consente di visualizzare queste informazioni in percentuale anziché in numeri assoluti. Vedere anche l'argomento All().

Si supponga di voler distinguere le barre che rappresentano quelli che sono sopravvissuti impostando l'asse dei colori su "survived", come illustrato di seguito.



È tuttavia importante notare che, a seguito di questa operazione, le percentuali cambiano. Le barre rossa e blu, rispettivamente, totalizzano il 100%, anziché tutte e quattro le barre. Questo accade perché l'espressione non tiene conto del fatto che i dati sono suddivisi in parti ancora più piccole dall'asse dei colori. La parte ...OVER (All([Axis.X]))... ignora la suddivisione sull'asse delle categorie, ma non la suddivisione sull'asse dei colori.

È tuttavia possibile mantenere i colori e totalizzare il 100% con tutte le barre utilizzando il metodo Intersect() come illustrato sotto.



Le parti All([Axis.X]) e All([Axis.Color]) dell'espressione indicano che la suddivisione su ognuno di questi assi deve essere ignorata. Il metodo Intersect() combina quindi queste due parti. Di conseguenza, il valore di ogni barra viene diviso per la somma di tutte le barre.