Chcę użyć programu Excel do wyszukiwania i zwracania wielu wartości referencyjnych dla danego klucza. VLookup robi coś bardzo podobnego do tego, czego potrzebuję - ale zwraca tylko jedno dopasowanie.
Zakładam, że będzie to wymagało metod zwracania tablic i obsługi, choć wcześniej z nimi nie korzystałem. Niektórzy Googling zaczynają opierać się na if ([lookuparray] = [wartość], row [lookuparray]) jako część rozwiązania - chociaż nie mogę zmusić go do zwrócenia pojedynczego dopasowania ...
Na przykład, jeśli mam te dane referencyjne:
Adam Red
Adam Green
Adam Blue
Bob Red
Bob Yellow
Bob Green
Carl Red
Próbuję uzyskać wiele zwracanych wartości po prawej stronie. (Oddzielone przecinkami, jeśli to możliwe)
Red Adam, Bob, Carl
Green Adam, Bob
Blue Adam
Yellow Bob
(Mam już kluczową wartość po lewej stronie - nie trzeba wyciągać tych wartości)
Doceniamy wszelką pomoc dotyczącą podejścia do obsługi wielu wartości w tym kontekście. Dzięki.
źródło
=SUM(IF($B$2:$B$8="Key", $C$2:$C$8, 0))
Zamień kolumny, aby kolory były w kolumnie A, a nazwy w kolumnie B, a następnie posortuj według koloru.
Formuła w C2 (skopiuj ją w dół kolumny): = JEŻELI (A2 <> A1, B2, C1 i „,” i B2)
Formuła w D2 (skopiuj ją w dół kolumny): = A2 <> A3
Filtr „PRAWDA” w kolumnie D, aby uzyskać pożądane wyniki. Patrz poniżej:
źródło
Jeśli chcesz zastosować formułę, wówczas znacznie łatwiej jest uzyskać wyniki w oddzielnych komórkach, więc załóżmy, że twoja pierwsza tabela to A2: B8, a kolory są ponownie wymienione w D2: D5. Wypróbuj tę formułę w 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))),"")
potwierdzone
CTRL+SHIFT+ENTER
i skopiowane w dół i w dół. Kiedy skończy się mecz, otrzymasz puste miejsca.Formula zakłada Excel 2007 lub nowszy - jeśli wcześniejsza wersja może użyć COUNTIF zamiast IFERROR, tj
=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))))
źródło
Oto rozwiązanie VBA dla Ciebie. Po pierwsze, tak wyglądają wyniki:
A oto kod:
źródło