Repetição Automática de Dados [combinações]

Boa noite a todos.
Preciso resolver o seguinte problema:
Tenho algumas colunas com palavras e preciso gerar uma tabela que siga as seguintes instruções:

  1. Pegue a primeira palavra da primeira coluna e repita ela;
  2. Faça o mesmo com todas as outras palavras das outras colunas;
  3. Pegue a primeira palavra da primeira coluna e repita ela;
  4. Pegue a segunda palavra da segunda coluna e a primeira da terceira, e assim por diante…

De modo que a tabela final seja composta com várias linhas, cada qual formada por uma das possíveis combinações entre os dados de cada coluna, dispostas de modo linear com relação a ordem das colunas (primeira, segunda, etc).
Apenas para dar um exemplo rápido, se na primeira coluna tenho as linhas (pão, alho), na segunda (café, chá) e na terceira (pimenta, sorvete), ele retorne:
pão café pimenta
pão chá pimenta
pão café sorvete
pão chá sorvete
alho café pimenta

O número de dados entre cada coluna varia, de tal modo que tenho algumas com apenas 4 dados, outras com 20, 50, etc.
Contudo, não faço ideia de como automatizar esse processo de “combinatória” e a partir disso gerar uma tabela à parte.

Quanto ao sistema, uso o Mint 21.3 (Virginia); o LibreOffice Calc está na versão 7.3.7.2.
Agradeço imensamente se puderem me dar uma luz.

Ola @laab, pelo que entendi, quer a combinações possíveis entre as colunas. Não sei a quantidade de colunas que tem, mas só com as três que mencionou 4, 20 e 50, já são 4000 combinações, é isso mesmo que deseja?

É exatamente isso, @schiavinatto.
Sei que a tabela final será gigante dado o número de combinações, mas eu realmente preciso checá-la dessa forma.
Agradeço se puder me auxiliar.

Acredito que com formula, mesmo matricial, não tem solução, só desenvolvendo Macro, para ler os itens das colunas e fazer as combinações, que infelizmente, esta fora do meu conhecimento.

1 Like

De qualquer forma, agradeço.
Esperarei para ver se alguém consegue arrumar uma forma de fazer isso.

Numa dessas se pode simplificar a formula: combinatória_LeroyG.ods (12.1 KB)

en: =INDEX(B$1:B$3;MOD(ROUNDUP(PRODUCT($B$4:B$4)/$A$4*(ROW()-5));-B$4)+B$4)
Screenshot from 2024-05-19 21-12-30

2 Likes

Muito obrigado, Leroy!
Fucionou perfeitamente.

1 Like