Ir para conteúdo
  • 0

Calculando average de anos (de uma única categoria)


Ana Leticia Sampaio
Ir para solução Solucionado por Joao Raulino ,

Pergunta

  • Alunos

Olá pessoal,

Eu tenho uma base de dados de medicamento que tem duas colunas de datas:

1. A data quando o medicamento recebeu a autorização da agência do governo.

2. A data quando ele foi financiado pelo governo.

3. Criei uma coluna de anos que demorou desde o dia em que o medicamento foi financiado, até o dia em que ele foi aprovado.

Segue aqui o screenshot da tabela para vocês visualizarem os dados:

 

image.png.67521b355a8c398ceaad8db114fc2243.png

 

Eu preciso a seguinte métrica: Qual é a média de anos que um medicamento demora esperando para ter o financiamento do governo?

Até então parece simples, só fazer o AVERAGE da coluna de anos para financiamento.

Mas meu problema é que alguns medicamentos aparecem várias vezes na base de dados pois tem dosagens diferente, e alguns deles possuem, inclusive, datas de autorização e datas de finaciamento diferentes (para a tabela eu selecionei a autorização mais antiga e a data de financiamento mais antiga) e por isso eu não estou conseguindo tirar o average.

 

Segue um exemplo da B.D.

Os que eu marquei em amarelo são exemplos de medicamento que aparecem mais de uma vez. Eu preciso que o average conte apenas 1 vez (na data mais antiga de autorização e a data mais antiga de financiamento).

 

 

samples.xlsx

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Oi @Ana Leticia Sampaio!

O erro foi meu, precisa usar a ADDCOLUMN() neste teu caso:

Citar
$ Media de Anos AddColumns =
AVERAGEX(
    ADDCOLUMNS(
        VALUES(fdetalhes[Nome do medicamento]),
        "MinDtAutorizacao",
        CALCULATE(MIN(fdetalhes[Data da AIM])),
        "MinDtFinanciamento",
        CALCULATE(MIN(fdetalhes[Data de Financiamento]))
    ),
    DATEDIFF([MinDtAutorizacao], [MinDtFinanciamento], YEAR)
)

Abs!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
2 minutos atrás, Joao Raulino disse:

Oi @Ana Leticia Sampaio!

Porque ela está usando a data MIN() de cada medicamento. Tenta fazer um teste por aí e diz se deu certo 😉

Abs!

Mas ela está usando a data MIN de cada linha e não de cada medicamento.

image.png.d841817a9c977d2915559640efa22e26.png

Este exemplo do Alprolix, vai mostrar a DATEDIFF nas 4 linhas, ou seja, 3 anos em cada.

Mas no total do meu averagex eu só quero que ele conte 1 entrada deste medicamento.

A medida dá 5 anos, mas quando eu jogo na matriz dá 3 anos (a matriz só tem entradas únicas).

Talvez falta algum distinctcount ou algum outro filtro na formula?

image.png.4a3b8ec1495e8afe1adb5d72950e0228.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Ana Leticia Sampaio, tudo bem? A medida que o @Joao Raulino fez retornará a média sobre todos os registros da tabela (célula pintada de verde). Se você não quer considerar os duplicados, basta substituir na medida do João a tabela (planilha1) por um values do nome do medicamento. Porém, tem que tomar um certo cuidado com casos como o do Katfrio que possui períodos diferentes e, neste caso, usando a fórmula que o João fez, você terá a menor data de autorização (21/08/2020) comparada com a menor data de financiamento (21/07/2021). Contudo, no meu modo de ver, como você tem dosagens diferentes para um mesmo medicamento, o correto seria iterar sobre tudo.

image.png.57911ce83158fadea89c6a7c13ddbdbc.png

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
12 minutos atrás, Edson Igari disse:

@Ana Leticia Sampaio, tudo bem? A medida que o @Joao Raulino fez retornará a média sobre todos os registros da tabela (célula pintada de verde). Se você não quer considerar os duplicados, basta substituir na medida do João a tabela (planilha1) por um values do nome do medicamento. Porém, tem que tomar um certo cuidado com casos como o do Katfrio que possui períodos diferentes e, neste caso, usando a fórmula que o João fez, você terá a menor data de autorização (21/08/2020) comparada com a menor data de financiamento (21/07/2021). Contudo, no meu modo de ver, como você tem dosagens diferentes para um mesmo medicamento, o correto seria iterar sobre tudo.
 

Olá! Obrigada @Joao Raulino e @Edson Igari

Sim, é isso o que eu precisava, só preciso puxar 1 dosagem de cada medicamento (o mais antigo da base de dados).

@Edson Igari eu validei esta questão com o cliente, mas ele preferiu ter somente uma entrada pra cada medicamento, pois o que ele quer analisar é o tempo médio que uma farmacêutica tem que esperar para o financiamento de um medicamento (e o caso como do Kaftrio são apenas uns 3 ou 4 na base total).

Eu fiz a fórmula usando o VALUES mas ainda me aparece um valor diferente se comparado à matriz:

image.png.c910d039fc57bbf01fac513ca2e59287.png

Existe alguma outra maneira de comprovar que a medida está correta?

Ficou assim a medida:

image.png.be729ba8d704551dc4d20387e9c19403.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Oi @Ana Leticia Sampaio!

Agora sim entendi 😁 Como você quer usar a medida de média no cartão ela vai ficar sem contexto de linha, então realmente vai acabar fazendo a média global independente de quantas vezes o medicamento aparece. Como o @Edson Igari apontou muita bem, incluir o VALUES() ja deveria ser o suficiente para forçar a medida a considerar cada medicamento somente uma vez já que essa função elimina os valores duplicados.

Se mesmo assim ainda está dando um resultado errado, vale a pena tentar uma solução com a SUMMARIZE() qué aí não tem como fugir. Ficaria algo assim:

  Citar
$ Media de Anos =
AVERAGEX(
    SUMMARIZE(
        fdetalhes,
        "Medicamentos",
        VALUES([Nome do Medicamento]),
        "MinDtAutorizacao",
        MIN([Data de autorização],
        "MinDtFinanciamento",
        MIN([Data de financiamento])
    ),
    DATEDIFF([MinDtAutorizacao], [MinDtFinanciamento]YEAR)
)

Abs!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
11 horas atrás, Joao Raulino disse:

Oi @Ana Leticia Sampaio!

Agora sim entendi 😁 Como você quer usar a medida de média no cartão ela vai ficar sem contexto de linha, então realmente vai acabar fazendo a média global independente de quantas vezes o medicamento aparece. Como o @Edson Igari apontou muita bem, incluir o VALUES() ja deveria ser o suficiente para forçar a medida a considerar cada medicamento somente uma vez já que essa função elimina os valores duplicados.

Se mesmo assim ainda está dando um resultado errado, vale a pena tentar uma solução com a SUMMARIZE() qué aí não tem como fugir. Ficaria algo assim:

  Citar
$ Media de Anos =
AVERAGEX(
    SUMMARIZE(
        fdetalhes,
        "Medicamentos",
        VALUES([Nome do Medicamento]),
        "MinDtAutorizacao",
        MIN([Data de autorização],
        "MinDtFinanciamento",
        MIN([Data de financiamento])
    ),
    DATEDIFF([MinDtAutorizacao], [MinDtFinanciamento]YEAR)
)

Abs!

Obrigada @Joao Raulino, eu tentei a medida com o summarize, mas na hora de mandar pro cartão ele ainda me dá erro.

Consegue me ajudar a ver se fiz algo errado?

image.png.a24bba5088f82fe51bc8dba5f3916096.png

 

image.png.70c69f3b124a60f97261550ac4e16d9c.png

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...