Ir para conteúdo
  • 0

A expressao faz referência a varias colunas. Não é possivel converter varias colunas em um valor escalar


CelsoEliezer
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Alunos

Olá Pessoal,

Uma ajuda,

Tenho duas medidas,  a primeira funcionou corretamente mostrando todos os registros conforme  a diferença de dias entre a data de hoje e a data de validade do contrato, porém quando eu tento fazer a segunda medida para calcular o total de  registros com  valor  menor que 30 dias ocorre um erro de valor escalar.  Alguem saberia onde estou errando?

Status = 
SWITCH(
    TRUE(),
    DATEDIFF(TODAY(), A[DataValidade], DAY) < 30, "red",
    DATEDIFF(TODAY(), A[DataValidade], DAY) >= 30 && DATEDIFF(TODAY(), A[DataValidade], DAY) <= 60, "yellow",
    "green"
)

A  medida abaixo que está com valor escalar:

dif < 30 dias = 

  var vhoje = TODAY()
  var vtab = SUMMARIZE(
                      'tabela',
                       'tabela'[NContrato],
                       'tabela'[DataValidade],
                       "@dif", DATEDIFF(vhoje, 'tabela'[DataValidade], DAY))

  var vval =
     CALCULATE(
        COUNTROWS(
                 vtab), 
                     FILTER(vtab, 
                               [@dif] < 30)
              )
  return
 
  vval

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Fiz um pequeno teste e funcionou. Prefiro fazer a coluna adicional com a ADDCOLUMNS, pois não se recomenda muito realizar o cálculo usando a SUMMARIZE.

dif < 30 dias = 
var vhoje = TODAY()
var vtab = 
    FILTER(
        ADDCOLUMNS(
            SUMMARIZE(
                Tabela,
                Tabela[NContrato],
                Tabela[DataValidade]
            ),
            "@dif", DATEDIFF([DataValidade], vhoje, DAY)
        ),
        [@dif] < 30
    )
var vval =
    COUNTROWS(vtab)
return
    vval

 

20230616_ExpressaoReferenciaVariasColunas.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Ola @Bruno Abdalla de Souza!

Eu fiz de outra forma aqui e deu certo, mas a sua solução foi TOP!!!!  Meus parabéns!!!!!

EU fiz assim:

# < 30 dias = 
var vtab =
COUNTROWS(
    FILTER(
           SUMMARIZE(
                     'tabela',
                     'tabela'[NContrato],
                     "@dif", [# Dif Day ]
                     ),
                     [@dif] <= 30 
    )
)
return
vtab

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