Colunas calculadas no SharePoint | Uma visão geral
Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.
Vou mostrar como criar desempate personalizados ao usar o RANKX no LuckyTemplates .
Conseguir um empate em uma parte crítica dos resultados é um cenário comum. Existem vários critérios de desempate que você pode usar, mas é importante escolher aquele que faz mais sentido para cada situação. Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.
Índice
O papel do RANKX no LuckyTemplates
Tenho o hábito de comparar as funções DAX com trabalhos na vida real. Isso me ajuda a associar cada função ao que ela faz no LuckyTemplates.
RANKX avalia e coloca os elementos em ordem de acordo com um conjunto específico de critérios. No mundo real, pode ser comparado a um juiz em uma exposição de cães que pede aos participantes que se alinhem de acordo.
No cenário que usarei hoje, usarei o RANKX como um juiz para um concurso de vendas hipotético. Os dados envolvem números de uma equipe de vendas e o prêmio vai para quem tiver o maior Total de Vendas do mês .
Para manter as coisas interessantes, vamos fingir que o primeiro prêmio é um Cadillac El Dorado, enquanto o segundo prêmio é um conjunto de facas de carne. Essa é uma grande diferença de valor, o que significa que só pode haver um vencedor.
Olhando para a minha mesa, tenho uma lista de todos os vendedores da equipe de vendas.
Adicionarei os dados das vendas totais de cada pessoa .
Esta é a medida RANKX que estou aplicando a esta tabela.
É apenas uma configuração RANKX básica que usa para que eu não acabe incluindo o Total quando classifico as classificações.
vendedores são classificados com base nas vendas totais . Estes são organizados em ordem DESC . Aqui, estou usando Skip caso haja empate.
Alguns podem usar Dense em vez de Skip , mas, neste caso, nenhum dos dois realmente ajuda.
Ignorar versus denso
Para demonstrar como o Skip afeta a medida, vou arrastar e soltar os Ranks na tabela.
Então, vou classificar os dados de acordo com o Rank .
A tabela mostra um empate para o número 1 lugar. Mas não foi um ótimo mês para a equipe de vendas, então o gerente não pode se dar ao luxo de doar 2 Cadillac El Dorados. Isso significa que preciso criar um desempate para decidir quem fica com o carro e quem fica com as facas de carne.
Jasper e Max estão no topo, empatados no número 1. Como usei Skip, você verá que a classificação salta para 3 após os dois 1's no topo . Isso não funciona para mim porque ainda me deixa com 2 vencedores.
O que acontece se eu usar Dense em vez de Skip ?
Se eu usar Dense , a gravata em si não é afetada. Mas em vez do número 3 após o empate, mostra o número 2 .
Evidentemente, Dense também não funciona neste caso. Isso significa que eu precisaria aplicar um desempate personalizado.
Escolhendo um desempate personalizado
Um bom desempate personalizado é definido por duas características principais.
Em primeiro lugar, ele precisa diferenciar significativamente os elementos vinculados. Tem que ser um fator que separa os dois ou mais elementos que estão empatados.
Em segundo lugar, não deve alterar a classificação ou a ordem dos elementos que não estão empatados.
Pensando nesses dois aspectos, é fácil chegar a uma série de critérios de desempate.
As vendas totais são nosso principal fator de classificação.
Portanto, tenho que pensar em outros fatores que poderiam ser usados para quebrar o empate causado pelos dados semelhantes nas 2 primeiras linhas.
O número de vendas pode ser um. Quem está mais agitado? Quem está recebendo o maior número de clientes?
Também é possível ver a venda máxima verificando quem conseguiu as maiores contas.
Eu também poderia olhar para as vendas médias.
Neste caso, optei pela Mediana de Vendas . Não é tão influenciado por valores discrepantes vindos do extremo superior ou inferior. Isso significa que pode fornecer uma medida melhor da tendência central.
Criando um desempate personalizado
Há uma boa quantidade de DAX na elaboração do desempate, mas o conceito é simples.
Eu tenho Ranking2 como a variável. Eu também usei HASONEVALUE pelo mesmo motivo que usei no padrão RANKX primário anteriormente. A única diferença aqui é que desta vez estou usando Median Sales em vez de Total Sales .
Em seguida, estou pegando o resultado dessa variável e dividindo por 100.
Como tenho números inteiros em minhas vendas totais, posso jogar com a 1ª e a 2ª casas decimais para desempatar. Dividir isso por cem leva os números além do ponto decimal para diferenciar os números empatados no topo sem afetar o restante dos resultados.
Isso nos deixa com as classificações superiores mostrando 0,01, 0,02 e assim por diante. Então, vou inverter isso para que o melhor classificado obtenha a pontuação mais alta no desempate.
Portanto, dentro de HASONEVALUE , subtrairei o RankScale de 1 .
Quando eu aplico isso à tabela, você verá que agora tenho duas casas decimais sob meu RANKX Tiebreaker .
Também vou arrastar minhas vendas medianas para a tabela para mostrar o impacto do nosso desempate com mais clareza.
Olhando para esses números, isso mostra que nem Max nem Jasper obtiveram as pontuações mais altas. Na verdade, era Martin Perry.
Mas lembre-se que este é apenas um desempate , e as vendas totais ainda permanecem como o principal fator de classificação . Isso significa que devo comparar apenas os números das linhas empatadas .
Então, adicionarei meu Total Sales e o RANKX Tiebreaker para obter os números da coluna Total Sales Tiebreak .
Executarei o RANKX no novo Total Sales com o desempate aplicado e classificarei os dados.
Agora, ele mostra uma execução completa de 1 a n sem elementos vinculados.
Usando a função RAND para desempatar
Pode haver casos em que um número gerado aleatoriamente pode servir como desempate.
Um exemplo seria se você deseja um grupo de foco que inclua uma seleção aleatória dos 20 principais vendedores. Se houver empates dentro do grupo, é razoável usar apenas um número aleatório como desempate.
Mas o problema com o Power Query e o DAX em geral é que as funções aleatórias se comportam de maneira diferente . Você não obterá os resultados esperados, especialmente se usar em uma função de iteração.
RAND retorna um número aleatório entre 0 e 1 . Portanto, se você decidir que o cenário em que está trabalhando precisa de um número gerado aleatoriamente para desempatar, o ideal seria fazer isso nesta parte da medida.
Em vez de apenas Total Sales , deve mostrar Total Sales mais RAND . Mas, novamente, neste cenário específico, isso não me dará o resultado de classificação final de que preciso.
Considerações sobre o RANKX – Conceitos de fórmula do LuckyTemplates e DAX
Uma compreensão mais profunda do RANKX avançado
Criação de tabelas de classificação dinâmica usando o RANKX no LuckyTemplates
Conclusão
Como você viu neste exemplo, desempatar ao usar o RANKX no LuckyTemplates é bastante fácil. O truque é descobrir qual desempate personalizado dá os resultados mais lógicos.
Farei mais tutoriais sobre outros desempates no futuro, especialmente sobre o uso de RAND em um cenário de amostragem. Acredito que vale a pena um olhar mais profundo.
Enquanto isso, espero que o uso dessa abordagem funcione para você se estiver trabalhando em um cenário semelhante no momento ou se encontrar algo assim no futuro.
Tudo de bom
***** Aprendendo LuckyTemplates? *****
Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.
Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates
Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.
Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.
Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.
Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.
Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.
O que é self em Python: exemplos do mundo real
Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.
Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.