
Quero um quebra-cabeça bem complicado e não tenho certeza se é possível, gostaria de tentar evitar fazer uma macro e usar apenas as funções, mas...
Quero ter uma tabela de informações, 1 coluna em Largura X linhas em Altura, com base em outra tabela com 10 colunas por 20 linhas. Quero que a função procure na tabela 2 a linha Y (designada por uma única célula) e leia transversalmente e, digamos que chegue em 5, vá para a tabela 1 e exiba as informações nas células A1, A2, A3, A4, A5 separadas por vírgula
agora cada função existe (o Vlookup faz a maior parte, há um recurso Text to Columns que se eu pudesse reverter seria perfeito), mas colocá-las todas juntas está se mostrando muito complicada.
Uma série de funções do Vlookup poderiam fazer isso, mas não sei como dizer "continue repetindo esse número X de vezes" sem o VBA
Responder1
Não há nenhuma função embutida no Excel para concatenar um intervalo, então você precisará usar o VBA, baixar o complemento Morefunc e usar a função MCONCAT, quepodeconcatenar um intervalo ou encadear vários IFs.
Não estou claro como você está obtendo o 5, mas essencialmente se esse valor for x, poderia ser algo assim
=SUBSTITUTE(IF(ROW(A1)<= x,","&A1,"")&IF(ROW(A2)<= x,","&A2,"")&IF(ROW(A3)<= x,","&A3,"")&IF(ROW(A4)<= x,","&A4,"")&IF(ROW(A4)<= x,","&A4,"")&IF(ROW(A5)<= x,","&A5,"")&IF(ROW(A6)<= x,","&A6,""),",","",1)
estenda conforme necessário, substitua x por qualquer função que recupere esse valor (ou uma referência de célula contendo essa função)