Ir para conteúdo
  • 0

Novos SKU's


Gustavo Lima Andrade
Ir para solução Solucionado por Michele ,

Pergunta

  • Alunos

Pessoal, tudo bem?

Preciso de uma ajuda com o caso abaixo:

Na tabela abaixo eu tenho o SKU antigo e o SKU novo sendo reportado pelo mesmo cliente, no mesmo dia, porem com números diferentes. Nesse caso eu consideraria apenas o resultado do SKU novo e excluiria da análise o resultado do SKU antigo. Ou seja, a medida que o novo SKU aparece o antigo deve desaparecer.

O que está como RETIRAR seria o SKU antigo e o que está como NOVOS é o SKU substituto desse mesmo produto.

Como eu posso escrever uma fórmila dinâmica que considere essas variaveis de cliente, dia e mantenha apenas o resultado do SKU que está como NOVOS?

Agradeço desde já a ajuda e atenção de todos.

Captura de tela 2022-04-25 093424.png

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Olá @Gustavo Lima Andrade!

Dê uma olhada nesses códigos de coluna calculada, uma para trazer o SKU certo e outra para validar se aquela linha é para remover.

Caso ainda não seja isso, se conseguires mandar para a gente uma tabela com: Data | Cliente | SKU | SKU Correto/Esperado + Tabela com o DEPARA, assim será mais fácil simular os vários cenários.

image.png.527354858974e65768f7701879b95a88.png

 

SKU Tratado =
VAR vCliente = fDados[Cliente]
VAR vData = fDados[Data]
VAR SKUDEPARA = LOOKUPVALUE('DE-PARA'[Para],'DE-PARA'[De], fDados[SKU])
VAR SKUOriginal = fDados[SKU]

VAR v2SkusMesmoClienteMesmaData =
CALCULATE(
    COUNT(fDados[Cliente]),
    FILTER(
        All(fDados),
        fDados[Cliente] = vCliente &&
        fDados[Data] = vData
    )
)

VAR vResultado =
IF(
        v2SkusMesmoClienteMesmaData > 1,
        IF(SKUDEPARA,SKUDEPARA,SKUOriginal),
        SKUOriginal
    )

RETURN
    vResultado

SKU Tratado.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá @Gustavo Lima Andrade!

Você consegue criar essa coluna no Power Query? Se sim, e se entendi corretamente o problema, você poderia usar essa coluna para filtrar tudo que está como "REMOVER", assim ficariam apenas as linhas corretas.

Caso você tenha criado essa coluna via DAX e não consiga fazer Power Query que seria o mais recomendado para essa finalidade, então você pode criar uma coluna calculada e no filtro lateral do relatório mandar trazer apenas linhas com esse campo como "NOVOS".

Já precisei fazer algo nesse sentido e quando não consegui resolver/criar a coluna no Power Query criei via DAX e usei o filtro lateral mesmo, me atendeu.

Caso não seja bem isso e queira explicar novamente.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Oi @Michele !

Obrigado pelo retorno.

Eu fiz exatamentte essa solução também. Inclusive é essa coluna Teste Novos SKU's.
Porem ao aplicar o filtro eu acabo tirando todo o histórico.

Me explicando melhor, o que eu preciso é verificar se eu tenho os 2 sku's no mesmo dia e mesmo cliente. Se tiver eu considero apenas o novo.

Ou seja, eu preciso fazer essa comparação primeiro entendeu.

Muito obrigado pela rápido retorno e ajuda.

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

  • 0
  • Alunos

Oi @Gustavo Lima Andrade!

Entendi, mas você pode melhorar essa sua coluna incluindo essas duas verificações.

Eu simulei apenas com esse teu exemplo daqui, não sei como está a sua coluna, mas se quiser dar uma olhada e ver se consegue adaptar para o teu código. Com esse código abaixo você consegue trazer numa coluna apenas o mais recente SKU se isso te ajudar de alguma forma, ou se você precisar realmente validar se a linha é a do SKU mais recente e filtrar apenas essas, você pode fazer um IF.

Vou colocar o código das duas colunas que criei como exemplo ok, espero que ajude de alguma forma 🙂

SKU Mais Recente? =
VAR vCliente = fFato[Matriz Ipê]
VAR vData = fFato[Data]
VAR vSKU = fFato[SKU]

VAR vResultado =
CALCULATE(
    MAX(fFato[SKU]),
    ALL(fFato),
    fFato[Matriz Ipê] = vCliente,
    fFato[Data] = vData
)

RETURN
    IF(
        vResultado = vSKU,
        "Sim",
        "Não"
    )

 

SKU Mais Recente =
VAR vCliente = fFato[Matriz Ipê]
VAR vData = fFato[Data]

VAR vResultado =
CALCULATE(
    MAX(fFato[SKU]),
    ALL(fFato),
    fFato[Matriz Ipê] = vCliente,
    fFato[Data] = vData
)

RETURN
    vResultado

 

Editado por Michele
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Oi @Michele !

Mais uma vez obrigado pelo retorno e atenção. Ótimas fórmulas mas não se encaixou no que eu precisava.

Se me permite vou compartilhar mais uma vez para ver se você ou outro amigo consegue ajudar.

OBS: Na imagem coloquei um outra forma de visualização. 

Ou seja, no mesmo dia o mesmo cliente está mandando a informação de 2 sku's. Porem o circulado em azul é o novo SKU que substituirá o não circulado. É um de/para ne.

A solução então deve ser:

- Toda vez que surgir o sku circulado junto com o não circulado eu considere apenas o circulado;

- Caso contrário eu mantenho o SKU antigo;

- Ou então se aparecer apenas o SKU circulado como novo eu mantenho ele tb.

OBS: A minha lista inicial tem 42 sku's para fazer esse de/para. Que é substituir o antigo pelo novo a partir do momento em que ele for aparecendo e nos casos em que não aparecer o novo eu mantenho o histórico do antigo.

 

Falei muito ne, hahahaha. Me desculpa.

Você acha que da para fazer com DAX?
Até mais!

Evidencia.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Oi @Gustavo Lima Andrade!

Então, mas o que eu coloquei acima é justamente para trazer o SKU mais recente, para o mesmo cliente, na mesma data.

Esse código pode ser colocado numa medida se preferir, esse código é DAX, então pode ser usado para coluna calculada ou medida. Se for medida, você só precisa utilizar numa tabela que tenha as informações do Cliente e da Data, para a medida poder "saber" que precisa procurar essa SKU mais recente para esse cliente e essa data.

Se ainda não te atender realmente aí o melhor é você montar/enviar um .pbix e um excel com a sua base, e colocar exemplos de resultados que você espera, assim será mais fácil de atender ao objetivo.

SKU Mais Recente =
VAR vCliente = fFato[Matriz Ipê]
VAR vData = fFato[Data]

VAR vResultado =
CALCULATE(
    MAX(fFato[SKU]),
    ALL(fFato),
    fFato[Matriz Ipê] = vCliente,
    fFato[Data] = vData
)

RETURN
    vResultado

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Oi @Michele !

Sim sim, eu sei que é DAX.

Eu não posso jogar esse Max(fFatoSKU) pois ele pega o maior sku da minha lista que talvez nem faça parte desse de/para e nem seja o mais recente.

Ou seja, eu não preciso do sku mais recente e sim tentar trazer o sku novo que substituirá o antigo quando ambos aparecerem. Então para isso eu tenho uma lista de 42 novos sku's que deverão substituir outros 42 quando tiveram o report do conforme falamos aqui (mesma data, mesmo cliente).

O caso anterior que te passe é exatamente isso. O sku 11851 é o novo que deverá substituir o 11023 quando ambos aparecem no mesmo dia, pelo mesmo cliente.

Olha como ficou o exemplo da sua fórmula. Eu não consigo fechar a comparação.

De qualquer forma obrigado mais uma vez pela atenção. Eu não consigo passar os arquivos por uma política da empresa. Por isso mandei o texto grande mais uma vez.

Mais uma vez obrigado.

Captura de tela 2022-05-04 141535.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 hora atrás, Gustavo Lima Andrade disse:

Oi @Michele !

Sim sim, eu sei que é DAX.

Eu não posso jogar esse Max(fFatoSKU) pois ele pega o maior sku da minha lista que talvez nem faça parte desse de/para e nem seja o mais recente.

Ou seja, eu não preciso do sku mais recente e sim tentar trazer o sku novo que substituirá o antigo quando ambos aparecerem. Então para isso eu tenho uma lista de 42 novos sku's que deverão substituir outros 42 quando tiveram o report do conforme falamos aqui (mesma data, mesmo cliente).

O caso anterior que te passe é exatamente isso. O sku 11851 é o novo que deverá substituir o 11023 quando ambos aparecem no mesmo dia, pelo mesmo cliente.

Olha como ficou o exemplo da sua fórmula. Eu não consigo fechar a comparação.

De qualquer forma obrigado mais uma vez pela atenção. Eu não consigo passar os arquivos por uma política da empresa. Por isso mandei o texto grande mais uma vez.

Mais uma vez obrigado.

Captura de tela 2022-05-04 141535.png

Boa Tarde!

@Gustavo Lima Andrade

Pelo que entendi o único jeito de você modificar os SKU e tendo uma tabela De_ Para deles , se é isso que entendi e se vc possuir essa tabela de_para de maneira fácil , pelo power query tem como criar uma função para que vc transforme todo o SKU velho em um novo exemplo o sku 11023 virou o 11851 essa função varre a tabela e modifica todo sku 11023 para o 11851 , bem não sei se é isso que precisa , mas de qq jeito vou anexar um arquivo de exemplo com o que fiz no power query , talvez possa ajudar.

 

forum duvida.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Fala @Joao Barbosa! Tudo bem?

Muito Obrigado pelo retorno e ajuda. 

Eu testei aqui e funcionou 100%. Porem a solução atende em partes.

O que eu preciso fazer (premissas):

- Aplicar essa substituição quando os sku's (tanto da coluna DE como da coluna PARA) aparecerem no mesmo dia sendo enviado pelo mesmo cliente. Ou seja, quando isso acontecer eu tenho que considerar o resultado apenas do SKU da coluna PARA. Caso contrário, eu mantenho o SKU da coluna DE, pois eu preciso do histórico de venda do SKU antigo caso o cliente ainda não tenha feito a venda do SKU substituto:

OBS: Eu não posso ter o SKU da coluna DE e o da coluna PARA no mesmo dia e mesmo cliente pois isso seria uma duplicidade de informação. Por isso nesses casos eu tenho que considerar apenas o da coluna PARA.

OBS: MInha dprodutos tem mais de 300 sku's e minha tabela de de/para onde eu tenho que fazer essas substituições tem 108 sku's;

Você acha possível aplicarmos essa regra que expliquei mais acima?

Abraço e mais uma vez muito obrigado.

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
9 minutos atrás, Gustavo Lima Andrade disse:

Fala @Joao Barbosa! Tudo bem?

Muito Obrigado pelo retorno e ajuda. 

Eu testei aqui e funcionou 100%. Porem a solução atende em partes.

O que eu preciso fazer (premissas):

- Aplicar essa substituição quando os sku's (tanto da coluna DE como da coluna PARA) aparecerem no mesmo dia sendo enviado pelo mesmo cliente. Ou seja, quando isso acontecer eu tenho que considerar o resultado apenas do SKU da coluna PARA. Caso contrário, eu mantenho o SKU da coluna DE, pois eu preciso do histórico de venda do SKU antigo caso o cliente ainda não tenha feito a venda do SKU substituto:

OBS: Eu não posso ter o SKU da coluna DE e o da coluna PARA no mesmo dia e mesmo cliente pois isso seria uma duplicidade de informação. Por isso nesses casos eu tenho que considerar apenas o da coluna PARA.

OBS: MInha dprodutos tem mais de 300 sku's e minha tabela de de/para onde eu tenho que fazer essas substituições tem 108 sku's;

Você acha possível aplicarmos essa regra que expliquei mais acima?

Abraço e mais uma vez muito obrigado.

 

Bom Dia , 

Cara vou tentar fazer por uma lógica aqui e te retorno.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá @Gustavo Lima Andrade!

Se compreendi corretamente agora 😅, então você pode fazer da forma abaixo, veja se lhe atende se fica performático no seu modelo:

  1. Mescle Consultas com o campo SKU da sua tabela Fato e o campo SKU "DE" da sua tabela DEPARA.
  2. Traga para a sua fato o campo "PARA".
  3. Adicione uma coluna Condicional "SKUTratado" que valide se o campo "PARA" está preenchido, se sim traz ele mesmo, senão traz o valor da coluna SKU "original".
  4. Remova as colunas SKU "original" e a coluna "PARA".
  5. Selecione todas as colunas e mande remover linhas duplicadas, pois com os passos acima você terá conseguido trazer o SKU do DE-PARA e vai ter linhas duplicadas, ao remover você elimina esse problema de duplicidade e fica apenas com uma linha com esse novo SKU.

Exemplo passo 3:

image.png.485f844a3549b6bfbb3dcb83a3ba18a4.png

Exemplo ao remover a coluna original e pedir para remover linhas duplicadas:

image.png.152abb9eb9bb8309c6aefba724e9f9ca.png

SKU Tratado.pbix

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

  • 0
  • Alunos

Oi @Michele !

Perfeito.

Eu havia feito dessa forma também, mas o problema é que nesse caso ele exclui a regra para os casos em que não aparecem os 2 skus (antigo e novo) no mesmo dia e cliente.

Ou seja, se aparecer só o antigo eu tenho que manter o ele como histórico. Eu só mudo para o novo quando aparecer os 2.

Estou tentando fazer por lógico aproveitando a sua solução com a do João. 

Parece ser tão sim simples né hahahaha.

Muito obrigado mais uma Michele!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Bom dia @Michele!

 

Deu 100% certo! Precisei de fazer um pequeno ajuste na fórmula pois acabei descobrindo outra regra de negócio que tinha que considerar.
Mas como eu entendi o que você fez e o conceito por trás deu para fazer tudo! Inclusive realizei a entrega ontem do que precisava.

Quero te agradecer demais por ter insistido em me ajudar e a entender meu problema. Tenho certeza que você é uma profissional diferenciada.
Parabens e muito obrigado. Fiquei com muita gratidão pois você nem precisaria fazer isso por mim.
Muito obrigado e sucesso para você sempre.

Até mais!

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

  • 0
  • Alunos

Oi @Gustavo Lima Andrade!

Que excelente notícia, que bom que deu certo, que bom que te ajudou a entender o que você precisava fazer para finalizar a entrega.

Nada é mais gratificante do que finalizar uma entrega né, muito feliz por você, parabéns!

Aqui vamos nos ajudando conforme podemos, as vezes queremos até ajudar mais, mas falta tempo, mas por isso que essa comunidade tão grande facilita que ninguém fique para trás 😄

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