Intersect()
Você usa o método de navegação Intersect() quando deseja fazer referência aos nós resultantes da interseção de dois ou mais métodos de navegação de nó.
Isso é exemplificado abaixo.
A imagem ilustra, com T3 como o nó atual, a interseção dos métodos de navegação AllPrevious() e Parent(). Os nós encontrados por ambos os métodos são T1-T3, 2019.
Independentemente de qual trimestre é o nó atual, a interseção resultará em um período que começa com T1 e termina com o trimestre que é o nó atual. Isso significa que um caso de uso típico para o método Intersect() é um cálculo de valor acumulado no ano (veja o exemplo abaixo).
Exemplo de cálculo do valor acumulado do ano (acumulado no ano)
O gráfico de barras mostra a soma trimestral das vendas durante 2016-2018.
Suponha que você esteja interessado nas somas acumuladas de cada um dos anos. Se você usar o método de navegação AllPrevious(), somará todos os meses anteriores. Mas, em T1 2017, você deseja reiniciar a soma e desconsiderar a soma dos trimestres do ano anterior de 2016.
Por exemplo, a soma acumulada no T3 de 2017 deve ser (317+307+352). Para referenciar apenas essas três barras, o método Intersect() é útil. O método AllPrevious() incluiria T1-T4 2016 e T1-T3 2017 na soma, e o método Parent() incluiria todos os quatro trimestres de 2017. A interseção desses dois modos de navegação retornaria exatamente as barras em questão.
Aplique a expressão abaixo em que Intersect() combina os dois métodos e exiba o resultado, por exemplo, em T3 2017:
Exemplo de uso de Intersect() quando os dados são divididos por mais de um eixo
Cada vez que você divide os dados usando vários eixos, eles são divididos em segmentos cada vez menores, representadas por cada vez mais marcadores. Quando você aplica uma expressão, ela funciona no menor segmento de dados. No exemplo acima, os dados são divididos apenas pelo eixo de categoria. Mas, o que acontecerá se você dividir, por exemplo, também pelo eixo de cor? Veja um exemplo abaixo.
O gráfico de barras abaixo exibe estatísticas de sobrevivência após a catástrofe do Titanic. Os dados são divididos apenas pelo eixo de categoria.
A expressão na próxima imagem permite exibir essas informações em porcentagem, em vez de em números absolutos. Consulte também o tópico All().
Suponha que você queira distinguir as barras que representam os sobreviventes, definindo o eixo de Cor como "survived", conforme mostrado abaixo.
No entanto, observe que, ao fazer isso, as porcentagens mudam! As barras vermelha e azul, respectivamente, somam 100% em vez de todas as quatro barras. Isso acontece porque a expressão não leva em consideração que os dados são divididos em segmentos ainda menores pelo eixo de cor. A parte ...OVER (All([Axis.X]))... ignora a segmentação no eixo da categoria, mas não a segmentação no eixo de cor.
No entanto, você pode manter as cores e fazer todas as barras totalizarem 100% usando o método Intersect(), como mostrado abaixo.
As partes All([Axis.X]) e All([Axis.Color]) da expressão implicam que a segmentação em cada um desses eixos deve ser ignorada. O método Intersect() combina essas duas partes. Consequentemente, o valor de cada barra será dividido pela soma de todas as barras.








