Ir para conteúdo

Gustavo Dassie

Alunos
  • Total de itens

    25
  • Registro em

  • Última visita

Community Answers

  1. Gustavo Dassie's post in Classificar dados de uma Fato de forma dinâmica em uma tabela was marked as the answer   
    Bom dia Bruno! Sim, fazer essa coluna na fato não resolveria o problema visto que eu necessitava que fosse dinâmico, porém consegui chegar em uma solução.
     
    Vou postar aqui o passo a passo, caso alguém tenha a mesma dúvida:
    Primeiro, criei uma tabela de Classificação, conforme o print:

    Nela eu informei a classificação, o valor mínimo e o valor máximo para cada uma delas e adicionei um cd_classificação
    Feito isso, criei a seguinte medida em DAX (vou adicionar os comentários de cada etapa na própria medida):
    _Beneficiarios = VAR vEtapa1 = //Nesta etapa, eu seleciono apenas os beneficiários ativos contidos na dimensão de beneficiários     FILTER(         ALL(D_NT_BENEFICIARIO)         , [DT_VIGENCIA_FIM] = BLANK()     ) VAR vEtapa2 = //Aqui, eu pego apenas a coluna de identificação de cada beneficiário (sk_nt_beneficiario)     DISTINCT(SELECTCOLUMNS(vEtapa1, D_NT_BENEFICIARIO[sk_nt_beneficiario])) VAR vEtapa3 = //Nesta etapa, verifico quais beneficiários da dimensão estão contidos na Fato     FILTER(         F_NT_NOTATECNICA         , F_NT_NOTATECNICA[sk_nt_beneficiario] IN vEtapa2     ) VAR vEtapa4 = (1 + SELECTEDVALUE('TX_SIMULACAO'[TX_SIMULACAO])) // Essa etapa é onde irá pegar o parâmetro da taxa de simulação e soma 1, para que possamos multiplicar mais à frente. VAR vEtapa5 = //Nesta etapa, a fim de performance, faço uma agregação da fato apenas para pegar o beneficiário e o valor de cada uma das colunas que são necessárias no visual, e já com a taxa de simulação.     SUMMARIZE(         F_NT_NOTATECNICA         , [sk_nt_beneficiario]         , "Valor Faturado", SUM(F_NT_NOTATECNICA[vl_faturamento])         , "Valor Coluna T", SUM(F_NT_NOTATECNICA[D_NT_NOTATECNICA.coluna_t])         , "Valor Coluna K", SUM(F_NT_NOTATECNICA[D_NT_NOTATECNICA.coluna_k])         , "Valor Coluna Q", SUM(F_NT_NOTATECNICA[D_NT_NOTATECNICA.coluna_q])         , "Valor Total * tx", SUM(F_NT_NOTATECNICA[vl_faturamento]) * vEtapa4     ) VAR vEtapa6 = //Aqui é criado a classificação de acordo com os cd_classificação determinado na tabela de Classificação.     ADDCOLUMNS(         vEtapa5         , "Rank", ([Valor Total * tx] / [Valor Coluna T]) - 1         , "Classificação",                     SWITCH(                         TRUE(),                         ([Valor Total * tx] / [Valor Coluna T]) - 1 <= -0.5, 1,                         ([Valor Total * tx] / [Valor Coluna T]) - 1 <= -0.3, 2,                         ([Valor Total * tx] / [Valor Coluna T]) - 1 <= -0.01, 7,                         ([Valor Total * tx] / [Valor Coluna T]) - 1 <= 0.01, 3,                         ([Valor Total * tx] / [Valor Coluna T]) - 1 <= 0.25, 4,                         ([Valor Total * tx] / [Valor Coluna T]) - 1 <= 0.5, 5,                         ([Valor Total * tx] / [Valor Coluna T]) - 1 > 0.5, 6                     )     ) VAR vEtapa7 = //E aqui eu faço o vínculo da Classificação da Etapa 7 com a tabela de Classificação (aqui está com o nome de Simulação)     ADDCOLUMNS(         'Simulação'         , "Total Beneficiários", COUNTROWS(FILTER(vEtapa6, [Classificação] = 'Simulação'[cd_classificacao]))     )             RETURN SUMX(vEtapa7, [Total Beneficiários]) //Para o total de beneficiários, retorno o SUMX trazendo da Classificação da Etapa 7 E com isso, fazendo para cada um dos campos desejados, cheguei no resultado final esperado:

     
×
×
  • Criar Novo...