MDX: Contando Membros de uma dimensão

Como criar uma medida calculada para contar os membros de uma dimensão em níveis

Marcel Kober
2 min readMay 26, 2014

São comuns os casos onde precisamos realizar uma contagem dos membros de uma dimensão em uma análise de BI. Por Exemplo, digamos que desejamos saber quantos representantes compõem a meta total de faturamento, ou quantos dias do mês tiveram movimentos de venda. Para isso, temos a solução.

Na imagem abaixo, vemos o resultado que desejamos obter:

No cubo utilizado, que contém dados de Vendas, foram criadas duas medidas calculadas. “Nro Filhos” nos mostra a contagem de membros filhos da dimensão período em todos os seus níveis. Como se observa, no mês de Janeiro de 2014, temos 31 filhos, que correspondem a 31 dias. Já o “Nro Filhos Venda” nos mostra a contagem de filhos da dimensão período que possuem “Vlr Venda Liquida”, ou seja, quantos meses, dias ou anos possuem movimento de venda, no caso de Janeiro de 2014, temos 19 dias com vendas.

Bem, vamos então às fórmulas das medidas:

Nro Filhos
count([Periodo].CurrentMember.Children)

Esta é uma simples contagem dos filhos do membro atual, ou seja, se estivermos olhando o mês, teremos a contagem de dias.

Nro Filhos Venda
count(Filter([Periodo].CurrentMember.Children, (NOT isEmpty([Measures].[VlrVendaLiquida]))))

Já aqui, temos a contagem apenas dos filhos que possuem valor de venda. Por isso, utilizamos o Filter, para contar apenas os membros onde a medida “Vlr Venda Liquida” não for vazio, utilizando a negação (NOT) da função isEmpty.

--

--