Ir para conteúdo
  • 0

Criar coluna calculada utilizando tabela Direct Query


Naiane Freitas
Ir para solução Solucionado por CARLOS MATOZINHOS ,

Pergunta

  • Alunos

Boa tarde, 

Preciso criar um cálculo usando um campo de uma tabela Import e outra Direct Query. 

Tentei as seguintes soluções mas não obtive sucesso: 

1. No Power Query fiz o merge das tabelas Invoice (Direct Query) e Cambio (Import) = não há suporte para merge no modo direct.

2. Coluna calculada (criada na tabela Invoice), retornou o erro abaixo: 

image.png.5599d38aaf46d454bae32f1fe4d3563c.png

Obs: Refiz a conexão com a tabela Invoice no modo Import e a função related funcionou, somente no modo Direct Query (que é necessário nesse projeto) apresenta o erro acima.

3. Criar medida DAX para realizar o calculo: 

Conversao Valor =
var vMaxData = MAX(invoice[D-1])
var vCambio = 
    FILTER(
            ALL(fCambio),
            fCambio[Data] = vMaxData
    )

var vConversao = 
    IF(SELECTEDVALUE(invoice[Moeda]) = "Real brasileiro",
        CALCULATE(
            SUM(invoice[Valor Total])
        ),
        CALCULATE(
            SUM(invoice[Valor Total]) * MAXX(vCambio,[Taxa de Câmbio])
        )
    )

Return vConversao

Quando adiciono a medida no gráfico de tabela, retorna erro. 

 

Alguém tem alguma solução para resolver o problema, seja via medida Dax ou coluna calculada? 

Obrigada desde já. 

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Boa tarde Naine,

tente esta medida

 

Conversao_Valor = 
VAR MaxDataFatura = MAX('invoice'[Data])  // Obtém a data máxima das faturas

VAR TaxaCambioMaxData =
    CALCULATE(
        MAX('fCambio'[Taxa de Câmbio]),  // Obtém a taxa de câmbio para a data máxima das faturas
        FILTER(
            ALL('fCambio'),
            'fCambio'[Data] = MaxDataFatura
        )
    )

VAR MoedaSelecionada = SELECTEDVALUE('invoice'[Moeda])  // Obtém a moeda selecionada

VAR ValorFatura =
    IF(
        MoedaSelecionada = "Real brasileiro",
        SUM('invoice'[Valor Total]),  // Se a moeda for Real, retorna o valor da fatura diretamente
        SUM('invoice'[Valor Total]) * TaxaCambioMaxData  // Se não for Real, multiplica pelo câmbio
    )

RETURN ValorFatura
 

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