Intersect()
Sie verwenden die Navigationsmethode Intersect(), wenn Sie auf die Knoten verweisen wollen, die das Ergebnis der Schnittmenge von zwei oder mehr Knotennavigationsmethoden sind.
Dies ist unten in einem Beispiel dargestellt.

Das Bild veranschaulicht mit Q3 als aktuellem Knoten die Schnittmenge der Navigationsmethoden AllPrevious() und Parent(). Die Knoten, die von beiden Methoden gefunden werden, sind Q1-Q3, 2019.
Unabhängig davon, welches Quartal der aktuelle Knoten ist, führt die Schnittmenge zu einem Zeitraum, der mit Q1 beginnt und mit dem Quartal endet, das der aktuelle Knoten ist. Das bedeutet, dass ein typischer Anwendungsfall für die Intersect()-Methode eine Berechnung seit Jahresbeginn ist (siehe das folgende Beispiel).
Beispiele
Beispiel für die Berechnung seit Jahresbeginn (YTD)
Das Balkendiagramm zeigt die vierteljährlichen Verkäufe im Zeitraum 2016-2018.

Angenommen, Sie interessieren sich für die kumulierten Summen der einzelnen Jahre. Wenn Sie die Navigationsmethode AllPrevious() verwenden, werden alle vorhergehenden Monate summiert. Im ersten Quartal 2017 möchten Sie jedoch mit der Summierung von vorne beginnen und die Summierung der Quartale des Vorjahres, also 2016, außer Acht lassen.

Zum Beispiel sollte die kumulative Summe für Q3 2017 976 (317+307+352) betragen. Um nur diese drei Balken zu referenzieren, ist die Methode Intersect() praktisch. Die Methode AllPrevious() würde Q1-Q4 2016 und Q1-Q3 2017 in die Summierung einbeziehen, und die Methode Parent() würde alle vier Quartale des Jahres 2017 berücksichtigen. Die Schnittmenge dieser beiden Navigationsmodi würde genau die fraglichen Balken ergeben.
Wenden Sie den nachstehenden Ausdruck an, bei dem Intersect() die beiden Methoden kombiniert, und sehen Sie sich das Ergebnis z. B. für Q3 2017 an:

Beispiel für die Verwendung von Intersect(), wenn Daten durch mehr als eine Achse geteilt sind
Jedes Mal, wenn Sie die Daten mithilfe verschiedener Achsen aufteilen, werden die Daten in immer kleinere Abschnitte aufgeteilt, die durch immer mehr Datenpunkte dargestellt werden. Wenn Sie einen Ausdruck anwenden, wird er auf die kleinste Datenmenge angewendet. Im obigen Beispiel sind die Daten ausschließlich nach der Kategorieachse aufgeteilt. Was passiert aber, wenn z.B. auch nach der Farbachse aufgeteilt wird? Hier ein Beispiel.
Das folgende Balkendiagramm zeigt die Überlebensstatistiken der Titanic-Katastrophe. Die Daten werden ausschließlich nach der Kategorieachse aufgeteilt.

Mit dem Ausdruck im nächsten Bild können Sie diese Informationen in Prozent statt in absoluten Zahlen anzeigen. Weitere Informationen finden Sie im Thema All().
Angenommen, Sie möchten die Balken, die die Überlebenden repräsentieren, unterscheiden, indem Sie die Farbachse wie unten gezeigt auf „Überlebende“ festlegen.

Beachten Sie jedoch, dass sich dabei die Prozentsätze ändern! Die roten bzw. blauen Balken ergeben zusammen 100 % anstelle aller vier Balken. Dies liegt daran, dass der Ausdruck nicht berücksichtigt, dass die Daten durch die Farbachse in noch kleinere Abschnitte unterteilt werden. Der Teil ...OVER (All([Axis.X]))... ignoriert die Unterteilung auf der Kategorieachse, aber nicht die Unterteilung auf der Achse „Einfärben nach“.
Sie können jedoch die Farben beibehalten und alle Balken auf 100 % erhöhen, indem Sie die Methode Intersect() wie unten dargestellt verwenden.

Die Teile All([Axis.X]) und All([Axis.Color]) des Ausdrucks bedeuten, dass die Unterteilung auf jeder dieser Achsen ignoriert werden soll. Die Methode Intersect() kombiniert dann diese beiden Teile. Folglich wird der Wert jedes Balkens durch die Summe aller Balken geteilt.