Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
  • Avatar do usuário
#54597
Pessoal,

Já faz 2 dias que estou tentando gerar uma lista com 20 mil combinações "sem repetição" de uma lista de números aleatórios, porém a

Luz AINDA não acendeu.

Já vi alguns vídeos no YouTube, porém imagino que o próximo passo que eu tenha que dar, é o uso do VBA, porém com VBA não consigo nem engatinhar. Pode ser que exista uma solução mais simples de se usar que algum abençoado aqui saiba como fazer a mágica acontecer.

Deu uma olhada nos tópicos aqui do fórum, porém não encontrei até o momento nenhum participante que tenha perguntado a mesma coisa.

O Excel é uma ferramenta que faz chover e trovejar ao mesmo tempo. Acredito que alguém aqui saiba o caminho.

Alguém poderia me ajudar por favor?

Eu não sou Expert em Excel, eu sou um usuário comum.

Estou postando no fórum de "Fórmulas e Funções", mas pode ser que o assunto seja tratado na sala do "Macros e VBA". Alguém vai saber me dizer melhor!

Estou enviando o arquivo do Excel simples em anexo para maior entendimento.

Qualquer dúvida, tô aqui pra tentar ajudar!

Gratidão!
Você não está autorizado a ver ou baixar esse anexo.
#54598
Vamos lá, eu criei usando o Power Query.

Basta você preencher as duas tabelas na planilha. A primeira com a lista de números e a segunda com a qtde. Depois clicar em Dados→Atualizar Tudo.

Importante: cuidado com a quantidade de elementos e combinações, para não gerar uma lista tão grande que o seu computador não consiga processar, ou que estoure a quantidade de linhas do excel. Quanto maior o valor na tabela QTDE maior a quantidade de loops e mais demorado vai ser. Recomendo não informar um valor maior que 6

Imagem

O código da linguagem M que criei foi esse aqui:
Código: Selecionar todos
let
    Lista = Excel.CurrentWorkbook(){[Name="Lista"]}[Content][Lista],
    Qtde = Excel.CurrentWorkbook(){[Name="Qtde"]}[Content]{0}[Qtde],
    Tabela = #table(
        List.Transform({1..Qtde}, each "N" & Text.From(_)),
        {
            List.Transform({1..Qtde}, each Lista )
        }
    ),
    Loop =
        List.Generate(
            () => [x = 0, t = Tabela],
            each [x] <= Qtde,
            each [x = [x] + 1, t=Table.ExpandListColumn([t], "N" & Text.From(x))],
            each [t]
        ),
    TabelaExpandida = List.Last(Loop),
    Filtra = Table.SelectRows(TabelaExpandida,
        (r) =>  
            let
                l = Record.ToList(r),
                a1 = {1..Qtde - 1},
                a3 = List.Transform(a1, each l{_} > l{_-1} ),
                a4 = List.Select(a3, each _ = true),
                a5 = List.Count(a4) = Qtde - 1
            in
                a5
    )
in
    Filtra
Obs: Vale para textos também

Imagem
Você não está autorizado a ver ou baixar esse anexo.
#54604
Boa noite laennder,
gratidão pela grande ajuda!
Tenho perguntas.
Onde eu devo colocar o código que você criou com a linguagem M.... dentro do Editor do Visual Basic?

Quando eu tento executar/atualizar dados, um pop up de segurança me diz que a operação estabeleceu conexão com fonte de dados EXTERNA.
Qual fonte de dados externa seria essa? Quando eu desabilito a conexão com dados externos, dai o Script ou a planilha não roda mais ou não executa mais a operação.
O que devo fazer por favor?
Segue a imagem do pop up

Imagem
#54605
Não existe nenhuma fonte externa. É só clicar em OK, e depois clicar em Habilitar Conteúdo.
O código já está todo inserido na planilha, e pronto pra usar.
#54606
Laennder,

eu uso Excel 2013, não se se isso tem influência sobra a execução do Script, mas cliquei em ok e habilitei a opção. Quando eu clico em atualizar dados, mesmo depois de ter feito alguma modificação na coluna de números, eu recebo essa mensagem de erro abaixo. A inicialização da fonte de dados falhou.

O que eu tô fazendo errado ou o que eu devo fazer?

Gratidão!

Imagem
#54622
Laennder,

gratidão mais uma vez pela resposta.

Eu estou tentando adaptar a planilha pra gerar o resultado da forma que eu usei na planilha que anexei aqui em exemplo.

Explicação:

1° A coluna "A" Lista, gera números aleatórios com a função =ALEATÓRIO()
2° A coluna "A" Lista tem o máximo de 60 células preenchidas.
3° A coluna "E N1" recebe o valor aleatório da primeira célula e converte em um número decimal de 1 até 60 - sem repetição
4° A coluna "E N2" recebe o valor aleatório da segunda célula e converte em um número decimal de 1 até 60 - sem repetição
5° A coluna "E N3" recebe o valor aleatório da terceira célula e converte em um número decimal de 1 até 60 - sem repetição, e assim sucessivamente...

6° Já tentei formatar a saída dos números nas colunas N1,N2,N3, mas não funciona porque aparece um 0, antes do número redondo.

7° Outro porém é...os números aleatórios gerados nas colunas N1N2N3 não devem passar de 60 que é o números de linhas dentro da coluna "A" Lista.

Em anexo o resultado gerado na tentativa feita com a função =ALEATÓRIO( )

Onde eu tô errando ou o que eu devo fazer pra essa mágica acontecer?

Gratidão!

Imagem
#54653
Laennder,

Gratidão pela força! Consegui chegar ao resultado que eu queria.

Pra iniciar bem a semana, queria te deixar uma mensagem de fortalecimento aqui como a mínina forma de gratidão da minha parte.

"O fato das pessoas não te elogiarem e nem reconhecerem o teu trabalho, não significa que você não está brilhando.O importante é que você tem luz própria! Muitas das pessoas que são elogiadas, não brilham tanto quanto você, e nem têm luz própria, por isso dependem de elogios para continuarem brilhando. Continue sendo Luz!"

Uma Semana Produtiva e Iluminada!
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord