Estou procurando usar o Excel para procurar e retornar vários valores de referência para uma determinada chave. O VLookup faz algo muito semelhante ao que eu preciso - mas retorna apenas uma única correspondência.
Suponho que envolverá métodos de retorno e manipulação de matriz, embora eu não tenha lidado com isso antes. Alguns usuários do Google começam a se apoiar no if ([lookuparray] = [value], row [lookuparray]) como parte de uma solução - embora eu não consiga fazê-lo retornar uma única partida ...
Por exemplo, se eu tiver esses dados de referência:
Adam Red
Adam Green
Adam Blue
Bob Red
Bob Yellow
Bob Green
Carl Red
Estou tentando obter os vários valores de retorno à direita. (Separado por vírgula, se possível)
Red Adam, Bob, Carl
Green Adam, Bob
Blue Adam
Yellow Bob
(Eu já tenho o valor da chave à esquerda - não é necessário extrair esses valores)
Qualquer ajuda sobre como abordar a manipulação de vários valores nesse contexto é apreciada. Obrigado.
fonte
=SUM(IF($B$2:$B$8="Key", $C$2:$C$8, 0))
Troque as colunas para que as cores estejam na coluna A e os nomes na coluna B e depois classifique a cor.
Fórmula em C2 (copie-a na coluna): = SE (A2 <> A1, B2, C1 & "," & B2)
Fórmula em D2 (copie-a na coluna): = A2 <> A3
Filtre "TRUE" na coluna D para obter os resultados desejados. Ver abaixo:
fonte
Se você deseja uma abordagem de fórmula, é muito mais simples obter os resultados em células separadas, então vamos supor que sua primeira tabela seja A2: B8 e as cores sejam listadas novamente em D2: D5. Experimente esta fórmula no E2
=IFERROR(INDEX($A$2:$A$8,SMALL(IF($B$2:$B$8=$D2,ROW($B$2:$B$8)-ROW($B$2)+1),COLUMNS($E2:E2))),"")
confirmado
CTRL+SHIFT+ENTER
e copiado de um lado para o outro. Quando os jogos acabam, você recebe espaços em branco.A fórmula assume o Excel 2007 ou posterior - se a versão anterior, você pode usar COUNTIF em vez de IFERROR, ou seja,
=IF(COLUMNS($E2:E2)>COUNTIF($B$2:$B$8,$D2),"",INDEX($A$2:$A$8,SMALL(IF($B$2:$B$8=$D2,ROW($B$2:$B$8)-ROW($B$2)+1),COLUMNS($E2:E2))))
fonte
Aqui está a solução VBA para você. Primeiro, é assim que os resultados são:
E aqui está o código:
fonte