Ir para conteúdo
  • 0

filtrar fase atual


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

Pergunta

  • Alunos

Eu tenho uma tabela fato com contas, sendo a que a mesma conta tem períodos históricos e período atual em contextos diferentes.

O período atual é o "account phase date from" mais recente os outro são todos períodos históricos.

Eu preciso criar uma medida que filtre as linhas das contas que estão no período histórico (0) e no período atual (1), dependendo do contexto da conta.

Um exemplo:

image.png.9bb66510056b7897eae9b2045ede238c.png

 

neste exemplo: A conta fidinc_01_001002500 dentro do contexto (account phase context) "State Code" tem 1 periodo atual (1) e 4 periodos históricos (0). 

Basicamente a minha medida precisa ser o equivalente a coluna "current phase", nesse exemplo.

Link para o comentário
Compartilhar em outros sites

21 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Suave @Ana Leticia Sampaio?

Usa a medida abaixo:

Citar
Current Phase =
VAR _MaxDate =
CALCULATE(
    MAX(fFato[Account Phase date From]),
    ALLEXCEPT(fFato, fFato[Account Phase Context])
)
RETURN
    IF(
        MAX(fFato[Account Phase date From]) = _MaxDate,
        1,
        0
    )

image.png.d5840eea38b9ca71017f2e02ba4b6ee8.png

Abs!

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

  • 0
  • Alunos
55 minutos atrás, Ana Leticia Sampaio disse:

Eu tenho uma tabela fato com contas, sendo a que a mesma conta tem períodos históricos e período atual em contextos diferentes.

O período atual é o "account phase date from" mais recente os outro são todos períodos históricos.

Eu preciso criar uma medida que filtre as linhas das contas que estão no período histórico (0) e no período atual (1), dependendo do contexto da conta.

Um exemplo:

image.png.9bb66510056b7897eae9b2045ede238c.png

 

neste exemplo: A conta fidinc_01_001002500 dentro do contexto (account phase context) "State Code" tem 1 periodo atual (1) e 4 periodos históricos (0). 

Basicamente a minha medida precisa ser o equivalente a coluna "current phase", nesse exemplo.

@Ana Leticia Sampaio, tudo bem? Você utilizar esse resultado em uma matriz ou será uma coluna da tabela???

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
45 minutos atrás, Ana Leticia Sampaio disse:

eu não quero criar colunas novas na tabela pois é um volume de dados muito grande.

Seria para usar numa matriz por exemplo ou para criar um filtro.

Tenta isso:

 

Current Phase = 

VAR vAccountID = MAX(SuaTabela[Account ID])
VAR vAccountPhaseDT_from = 
CALCULATE(
    MAX(SuaTabela[Account Phase date From]),
    FILTER(
        ALL(SuaTabela),
        SuaTabela[Account ID] = vAccountID
    )
)

VAR vResultado = 
IF(
    SELECTEDVALUE(SuaTabela[Account Phase date From]) = vAccountPhaseDT_from,
        1,
        0
)
 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 hora atrás, Edson Igari disse:

Tenta isso:

 

Current Phase = 

VAR vAccountID = MAX(SuaTabela[Account ID])
VAR vAccountPhaseDT_from = 
CALCULATE(
    MAX(SuaTabela[Account Phase date From]),
    FILTER(
        ALL(SuaTabela),
        SuaTabela[Account ID] = vAccountID
    )
)

VAR vResultado = 
IF(
    SELECTEDVALUE(SuaTabela[Account Phase date From]) = vAccountPhaseDT_from,
        1,
        0
)
 

Eu fiz a medida mas quando tentei aplicar na matriz, me deu este erro:

image.png.1ffc3ac037353ef019cc437549df83f8.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
24 minutos atrás, Ana Leticia Sampaio disse:

Eu fiz a medida e criei uma tabela pra ver, mas ele não me retornou o valor do IF:

 

Por exemplo, aqui a primeira linha devia mostrar 1 pois é a última data:

image.png.5844f117c02613258a21421903576f5f.png

Pelo que eu percebi da medida, faltou filtrar também o account ID. Na sua medida ele me retorna 1 somente na data maxima de todas as linhas. Mas eu preciso da data máxima de cada conta (Account ID) por cada contexto (account phase context).

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
54 minutos atrás, Ana Leticia Sampaio disse:

sim, foi isso que eu acabei de escrever ali em cima 🙂

Escrevemos ao mesmo tempo haha

49 minutos atrás, Ana Leticia Sampaio disse:

@Joao Raulino @Edson Igari

a solução do João funcionou, obrigada aos dois, amanhã vou testar com o cliente e dou feedback pra vocês pra fecharmos o tópico.

Depois só não esquece de marcar a minha resposta como melhor solução 😉

Abs!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 03/04/2024 em 16:37, Edson Igari disse:

Tenta isso:

 

Current Phase = 

VAR vAccountID = MAX(SuaTabela[Account ID])
VAR vAccountPhaseDT_from = 
CALCULATE(
    MAX(SuaTabela[Account Phase date From]),
    FILTER(
        ALL(SuaTabela),
        SuaTabela[Account ID] = vAccountID
    )
)

VAR vResultado = 
IF(
    SELECTEDVALUE(SuaTabela[Account Phase date From]) = vAccountPhaseDT_from,
        1,
        0
)
 

como eu adapto esta medida para usar num filtro?

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...