Ir para conteúdo
  • 0

DÚVIDA MEDIDA SUMMARIZECOLUMNS


FrancoAndre
Ir para solução Solucionado por FrancoAndre ,

Pergunta

  • Alunos

Olá, Senhores(as)!
Estou com uma dúvida na medida SUMMARIEZCOLUMNS em que sempre me retorna um erro de expressão, mas tô tão travado que não vejo a melhor forma de resolver. O erro é "A expressão faz referência a várias colunas. Não é possível converter várias colunas em um valor escalar.".

A medida é essa:

VAR vTipoMetaPerdas = 
SUMMARIZECOLUMNS(
    fServicos[cod_turno],
    "Resultado", IF(
        COUNTROWS(FILTER(fServicos, fServicos[Grupo Retorno de Campo] = "3-INSPECAO")) >=
        COUNTROWS(FILTER(fServicos, fServicos[Grupo Retorno de Campo] = "4-NORMALIZACAO")),
        "3-INSPECAO",
        "4-NORMALIZACAO"
    )
)

Pretendo incluir essa medida em uma coluna calcula para destacar a condição "3-INSPECAO" ou "4-NORMALIZACAO" pra cada [cod_turno], porém não sei qual a outra medida a fazer para me trazer esse resultado com essa summarizecolumns.
Consigo visualizar pelo DAX Studio o resultado correto, até analisei por algumas linhas, o problema é como relacionar esse resultado para a coluna calculada.

 

Em resumo o resultado que pretendo buscar é esse:

image.png.7a967e057b7af6b25856881f1a588a0f.png

 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
7 minutos atrás, Michele disse:

Olá @FrancoAndre!

Então, peguei um exemplo aqui e, aparentemente, a medida está retornando o que você espera. Até montei outra medida, fazendo os cálculos e validações de outra forma, mas o resultado foi o mesmo.

Seguindo a sua medida, toda vez que a quantidade de linhas para um cod_turno for maior para 3-INSPECAO do que para 4-NORMALIZACAO vai mostrar 3-INSPECAO.

Peguei um caso onde 4-NORMALIZACAO é maior para um cod_turno e trouxe como 4-NORMALIZACAO corretamente. Consegues pegar um exemplo do que está trazendo errado para facilitar o entendimento do que você precisa?

image.png.f6d3e5580097384a59a72006d93cf7e1.png

image.png.bf9698f3b4aad8de6660bcb2427021b0.png

Teste com medida de outra forma, mas com mesmo resultado.

image.png.229f8dce4c20e996af9c3d653796b3cf.png

O problema dessa medida é que ela funciona somente em medida, porém pretendo o resultado em coluna calculada

Em coluna calculada o resultado mostrado sempre é o "4-NORMALIZACAO" e se reparar no final da tabela fora da coluna calculada notará que o total sempre é o mesmo resultado  "4-NORMALIZACAO":

image.png.c5fa75f96eca48a9e25ebb18416a1019.png

 

Mexendo mais ainda encontrei outra solução com a CALCULATETABLE( ) que me atendeu:

VAR vCodTurno = fServicos[cod_turno]
VAR vResumo =
CALCULATETABLE(
    SUMMARIZE(
        fServicos,
        fServicos[Grupo Retorno de Campo],
        "Contagem", COUNTROWS(fServicos)
    ),
    fServicos[cod_turno] = vCodTurno
)
VAR vTipoMetaPerdas =
IF (
    MAXX(
        FILTER(vResumo, [Grupo Retorno de Campo] = "3-INSPECAO"),[Contagem])
        >= MAXX(
            FILTER(vResumo, [Grupo Retorno de Campo] = "4-NORMALIZACAO"),
            [Contagem]
        ),
    "Inspeção",
    "Normalização"
)

 

De qualquer forma agradeço o apoio e o esforço.

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

  • 0
  • Alunos

Olá @FrancoAndre!

Testei essa parte como resultado de uma tabela, daí consegue montar corretamente. O ponto é que a medida requer o retorno de um resultado e aqui estão retornando vários.

Acredito que para sua necessidade você vai ter que usar o seu código para criar uma tabela e não uma medida. As vezes eu preciso de algo assim, para em cima disso criar a minha medida.

Se não for isso e puderes dar mais detalhes, quem sabe um pbix com exemplo completo do que está sendo feito.

image.png.34ff2df095790a5686ca95eee8e52a79.png

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

  • 0
  • Alunos
3 minutos atrás, Michele disse:

Olá @FrancoAndre!

Testei essa parte como resultado de uma tabela, daí consegue montar corretamente. O ponto é que a medida requer o retorno de um resultado e aqui estão retornando vários.

Acredito que para sua necessidade você vai ter que usar o seu código para criar uma tabela e não uma medida. As vezes eu preciso de algo assim, para em cima disso criar a minha medida.

Se não for isso e puderes dar mais detalhes, quem sabe um pbix com exemplo completo do que está sendo feito.

image.png.34ff2df095790a5686ca95eee8e52a79.png

Entendi, Michele! Cheguei nesse resultado também pelo DAX Studio.

Mexendo mais um pouco, tentei pela medida SUMMARIZE, porém o resultado esperado acontece somente na medida já em coluna calculada sempre informa 4-NORMALIZACAO.

Teste 2 =
VAR Resumo =
SUMMARIZE(
    fServicos,
    fServicos[cod_turno],
    "3-INSPECAO", CALCULATE(COUNTROWS(fServicos), fServicos[Grupo Retorno de Campo] = "3-INSPECAO"),
    "4-NORMALIZACAO", CALCULATE(COUNTROWS(fServicos), fServicos[Grupo Retorno de Campo] = "4-NORMALIZACAO")
)
 
VAR vCond =  
IF(
    MAXX(Resumo, [3-INSPECAO]) >= MAXX(Resumo, [4-NORMALIZACAO]),
    "3-INSPECAO",
    "4-NORMALIZACAO"
)
Return
vCond

 

Pra entender a necessidade da coluna calculada, essa medida servirá somente para algumas linhas da tabela, especificamente todas do [contrato] = "PERDAS FORT METRO, e para os outros contratos serão diferentes. Então irei utilizar ela numa SWITCH( ).

De qualquer forma estarei deixando o pbix em anexo. Estarei deixando um excel que pode auxiliar para encontrar os valores de [cod_turno] que possui mais de um [Grupo Retorno de Campo].

 

CONDIÇÃO SUMMARIZE.pbix Condição Calculo Perdas.xlsx

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá @FrancoAndre!

Então, peguei um exemplo aqui e, aparentemente, a medida está retornando o que você espera. Até montei outra medida, fazendo os cálculos e validações de outra forma, mas o resultado foi o mesmo.

Seguindo a sua medida, toda vez que a quantidade de linhas para um cod_turno for maior para 3-INSPECAO do que para 4-NORMALIZACAO vai mostrar 3-INSPECAO.

Peguei um caso onde 4-NORMALIZACAO é maior para um cod_turno e trouxe como 4-NORMALIZACAO corretamente. Consegues pegar um exemplo do que está trazendo errado para facilitar o entendimento do que você precisa?

image.png.f6d3e5580097384a59a72006d93cf7e1.png

image.png.bf9698f3b4aad8de6660bcb2427021b0.png

Teste com medida de outra forma, mas com mesmo resultado.

image.png.229f8dce4c20e996af9c3d653796b3cf.png

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