Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Assuntos relacionados a criação de medidas, fórmulas e funções DAX, relacionamentos etc
  • Avatar do usuário
#68615
Boa tarde,

Tenho três tabelas no processo, uma CUSTO_HORA, onde tenho o valor do minuto de trabalho do colaborador, outra tabela CONSOLIDADA, onde tenho os minutos gastos pelo colaborador, e uma tabela COLABORADOR.
A tabela COLABORADOR tenha ligação de um pra um com a CUSTO_HORA, e de um para muitos com a CONSOLIDADA.
Desta forma quando quero saber o custo de um projeto, pego os minutos gastos que estão na tabela CONSOLIDADA e multiplico pelo valor do custo do minuto na tabela CUSTO_HORA.
Apesar de não ter ligação direta, olhando linha a linha, o valor é calculado corretamente, porém preciso obter o valor total dos lançamentos, já que são vários, e esse total é "corrompido" pelo contexto de linha, pois ele multiplica a linha total também.
Como elas não possuem ligação direta, não consigo usar o SUMX com o RELATED, que seria a solução mais viável.

A fórmula hoje é:
SUMX(Custo_Hora,Custo_Hora[CustoMinuto]) * SUMX(CONSOLIDADA,CONSOLIDADA[Total de Minutos])

Na imagem podem ver que o cálculo na linha está correto, porém o total é distorcido.
Caso alguém tenha alguma solução para o caso eu agradeço.
Não consigo mudar o relacionamento, pois o relatório possui diversas tabelas, e qualquer mudança acaba dando problema em outras medidas.

Desde já obrigado.
Att.
Gustavo.
Imagem
#68830
Boa noite @Vilmar ,

Pegando esse mesmo código houve uma mudança no projeto, e confesso que minha cabeça "bugou" mais ainda, a tabela de custos passou a ter uma data inicial e final, e querem que o custo seja apurado olhando a tabela Consolidado (que possui uma data), multiplicando pela tabela de custos, que possui duas datas (início e fim), porém a tabela Consolidada está ligada à uma tabela calendário, mas a de custos por ter duas datas não.
As ligações entre as tabelas não mudaram.
A fórmula que você passou está correta, e faz as contas corretamente, o problema é que para esse ano decidiram que o custo será por data, então terei na tabela de custo um prazo para o colaborador, ou seja, de uma data a outra, ele custa X, e em outra faixa de datas custa Y, sendo que não haverá o mesmo colaborador, com faixas de datas conflitantes, sempre que acabar uma, entra a outra faixa, e o valor muda.
Fiz testes com lookup, filter, e não consegui efetuar o cálculo.
Se tiver uma ideia de como fazer agradeço.

Abs.
Gustavo
#68944
Não sei se entedi muito bem, mas tente:

1-Relacionar as tabelas:
dColaborador[Nome](1) -> (*)fCusto[Nome]
dCalendario[Data](1) -> (*)fCusto[Data_Fim]


2-Fazer uma nova medida para o CustoMinuto:
Código: Selecionar todos
Custos Minuto =
VAR Var1 =
    MAX ( Custo[Dt_Fim] )
RETURN
    CALCULATE ( SUM ( Custo[Custo] ), Custo[Dt_Fim] = Var1 )
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord