Como randomizar dentro de várias colunas no excel que atendem a um critério?

1

A coluna A, B, C tem os valores como

A     B     C
--------------
A     A     A
B     B     B
C     C     C
D     D     E
E     E     E

Como randomizar dentro de cada coluna para que nenhuma linha contenha o mesmo item?

Por exemplo, uma solução feita manualmente pode ser -

A     B     C
--------------
A     E     C
B     D     E
C     B     A
D     C     E
E     A     B
    
por Amirul Islam 10.05.2017 / 03:20

1 resposta

-1

Não estou ciente de nenhuma caixa de diálogo "permutar colunas sujeitas a restrições" no Microsoft Excel. Como indicado por Burgi, você pode escrever um script para que o Execel faça exatamente o que você quer.

Se você nunca escreveu um roteiro ou fez alguma programação antes, reserve pelo menos um dia. É um enorme investimento de tempo, mas vai valer a pena no longo prazo. Suas novas habilidades permitirão que você resolva outros problemas no Excel com mais eficiência também.

Comece escrevendo um script que verifique se a célula B1 está em conflito com a célula A1. Em seguida, escreva um script que alterne B1 com outra célula de B2 para B5. Em seguida, torne o swap sujeito à restrição de que o novo conteúdo para B1 resolve um conflito anterior com A1. Se você quiser mais aleatório, não escolha apenas a primeira célula que se encaixa, mas faça uma escolha aleatória de todas as células adequadas. Uma maneira de fazer isso é primeiro contar quantas células se encaixam nas restrições, obter um inteiro aleatório i nesse intervalo e, então, varrer novamente a coluna B desta vez parando na i-ésima célula que é adequada para a troca. Em seguida, escreva um loop que itera sobre todas as células da coluna B e modifique seu código anterior de modo que ele funcione não apenas para B1, mas para qualquer outra célula na coluna B. Somente troque com células mais abaixo. Trocar com células que já foram verificadas significaria que você precisa verificar essas células novamente e pode acabar correndo em círculos, nunca encontrando uma solução, mesmo que exista uma solução. Depois de dominar isso, você achará fácil estender seu script para manipular a coluna C também. Finalmente, aprenda como reportar condições de erro, por exemplo, que nenhuma célula adequada está disponível. (6 Es no seu exemplo seria um caso de teste adequado.)

    
por 10.05.2017 / 12:49