Forum Discussion
DAX IF with date interval
- 6 years ago
Tenta criar essa coluna:
id_posto = CALCULATE(DISTINCT(ramais[id_posto]);FILTER(ramais;ramais[data_inicio] <= DATEVALUE(ligacoes[data]) &&IF(ISBLANK(ramais[data_fim]); DATEVALUE(ligacoes[data]); ramais[data_fim]) >= DATEVALUE(ligacoes[data])))
Olá, Camargo,
Obrigado!
A tabela 1 é a principal, que vem do SQL da empresa de callcenter. Infelizmente lá spo tenho o ramal que atendeu, mas não é possível vincular ao posto. Como esse ramal pode mudar ao longo do tempo. Ex: o ramal 5710 era do posto Santo André até 13/05. A partir de 14/05 passou a ser de Osasco.
Na tabela 1, pretendia criar uma coluna calculada. Pesquisando, alguém sugeriiu usar LOOKPVALUE combinando com as condicionais IF e AND. Ele me mostrou uma estrutura básica da função que devo incluir na coluna calculada "posto" da tabela 1, mas não entendi rsrsrs. Não sou da área. Essa ajuda é para uma grande ONG, sei usar o Power BI e assim que resolver essa questão, tudo estará resolvido. Veja a estrutura indicada que não soube usar:
posto = var data_inicio = LOOKUPVALUE("preciso incluir as variáveis aqui, mas não sei quais")
var data_fim = LOOKUPVALUE("preciso incluir as variáveis aqui, mas não sei quais")
return IF(AND("incluir as condições"; "resposta se verdadeira (exibir nome do posto)", "resposta se falsa (não sei o que retornar aqui")
rs que desafio hein;;; Quero muito ajudar essa ONG, já estou perdendo as esperanças. 😞 Abraços!
Tem como fazer isso de várias formas.
Você pode compartilhar apenas os dados dessas fotos como exemplo, eu crio uma função e te mando o arquivo explicando o passo a passo ?
- admfabiomachado6 years ago
Helper I
Oi, camargos88 , puxa, cara, muiiiiito obrigado!!! Terei uma reunião com eles hoje a noite e já estava preocupado.
segue um arquivo ZIP com essa tabela já no Power BI: https://cvv01-my.sharepoint.com/:u:/g/personal/bi_cvv_org_br/ERlWNuEAUJJAsQDzqmR3dwgBclBNhb7yOS3uFFaiNwFcdA?e=9XkOA0
O desafio é preencher a coluna id_posto da base ligacoes.
lembrando que essa tabela ligacoes é gigante (26,5 milhoes de registros). Aqui nesse exemplo está só um modelo resumido com poucas linhas e poucas colunas.
Na tabela ramais, os registros que estão ativos estão com "data fim" em branco, mas no arquivo do power bi acima estão com uma data no futuro do ano de 2099, para que seja possível validar uma faixa de data, caso seja esse o caminho.
Valeu!!!!!!!!!!
- camargos886 years ago
Community Champion
Tenta criar essa coluna:
id_posto = CALCULATE(DISTINCT(ramais[id_posto]);FILTER(ramais;ramais[data_inicio] <= DATEVALUE(ligacoes[data]) &&IF(ISBLANK(ramais[data_fim]); DATEVALUE(ligacoes[data]); ramais[data_fim]) >= DATEVALUE(ligacoes[data])))- admfabiomachado6 years ago
Helper I
camargos88 ,Cara!!!!1 Funcionou!!!1 Rapaz, que felicidade!!!!! Show!!! testarei com um volume maior de dados. Muito feliz... Você acabou de contribuir para uma grande causa! Muito obrigado. Sou voluntário no CVV - Centro de Valorização da Vida.
Forte abraço!!!
- admfabiomachado6 years ago
Helper I
Oi, camargos88 , puxa, cara, muiiiiito obrigado!!! Terei uma reunião com eles hoje a noite e já estava preocupado.
Tentei colar aqui um link do onedrive com o arquivo do power bi, mas foi excluído. Acho que não pode né. Seguem as tabelas:
TABELA LIGAÇÕES
id_agente data_ligacao id_posto 5921 10/05/2020 00:00 5921 11/05/2020 09:05 5840 12/05/2020 10:05 5710 13/05/2020 10:05 5710 14/05/2020 18:00 6001 15/05/2020 10:00 TABELA RAMAIS:
id_ramal posto data_inicio data_fim status 5921 1 01/02/2020 31/12/2099 ativo 5840 1 10/03/2020 31/12/2099 ativo 5710 3 07/01/2020 13/05/2020 inativo 5710 4 14/05/2020 31/12/2099 ativo 6001 4 15/05/2020 31/12/2099 ativo TABELA POSTOS
id_posto nome_posto 1 Mogi das Cruzes 2 Osasco 3 Santo André 4 Pinheiros O desafio é preencher a coluna id_posto da base ligacoes, considerando a faixa de data da tabela Ramais (deve aparecer o nome do posto somente se a data da ligação estiver dentro da faixa de data da tabela ramais - ou seja, se o registro da tabela ramais esteja ativo). Não haverá sobreposição de datas (ou seja, um mesmo ramal não estará em mais de um posto na mesma faixa de data)
lembrando que essa tabela ligacoes é gigante (26,5 milhoes de registros). Aqui nesse exemplo está só um modelo resumido com poucas linhas e poucas colunas.
Na tabela ramais, os registros que estão ativos estão com "data fim" em branco, mas as tabelas que estou disponibilizando agora estão com uma data no futuro do ano de 2099, para que seja possível validar uma faixa de data, caso seja esse o caminho.
Valeu!!!!!!!!!!