Formuła programu Excel: wyodrębnij wiele dopasowań do oddzielnych wierszy -

Podsumowanie

Aby wyodrębnić wiele dopasowań do oddzielnych komórek, w oddzielnych wierszach możesz użyć formuły tablicowej opartej na INDEKS i MAŁE. W pokazanym przykładzie formuła w E5 to:

(=IFERROR(INDEX(names,SMALL(IF(groups=E$4,ROW(names)-MIN(ROW(names))+1),ROWS($E$5:E5))),""))

To jest formuła tablicowa i należy ją wprowadzić za pomocą Control + Shift + Enter.

Po wprowadzeniu formuły w pierwszej komórce przeciągnij ją w dół i w poprzek, aby wypełnić pozostałe komórki.

Wyjaśnienie

Uwaga: w tej formule używane są dwa nazwane zakresy: „nazwy” odnoszą się do C4: C11, a „grupy” do B4: B11. Nazwy te są również zdefiniowane na powyższym zrzucie ekranu.

Istota tego wzoru jest taka: używamy funkcji SMALL, aby uzyskać numer wiersza, który odpowiada „n-temu dopasowaniu”. Gdy mamy numer wiersza, po prostu przekazujemy go do funkcji INDEKS, która zwraca wartość w tym wierszu.

Sztuczka polega na tym, że SMALL pracuje z tablicą, która jest dynamicznie konstruowana przez IF w tym bicie:

IF(groups=E$4,ROW(names)-MIN(ROW(names))+1)

Ten fragment kodu testuje nazwane „grupy” zakresu pod kątem wartości w E4. Jeśli zostanie znaleziony, zwraca „znormalizowany” numer wiersza z tablicy numerów wierszy utworzonej za pomocą tej części formuły:

ROW(names)-MIN(ROW(names))+1

Wynikiem jest tablica zawierająca numery wierszy, w przypadku których występuje dopasowanie, i FALSE, jeśli nie. Tablica wygląda mniej więcej tak:

(1; FALSE; FALSE; FALSE; FALSE; 6; FALSE)

Ta tablica przechodzi do SMALL. Wartość k dla SMALL (n-ty) pochodzi z rozszerzającego się zakresu:

ROWS($E$5:E5)

Po skopiowaniu w dół tabeli wynikowej zakres rozszerza się, powodując wzrost k (n-tego). Funkcja SMALL zwraca każdy pasujący numer wiersza, który jest dostarczany do funkcji INDEKS jako numer_wiersza, z nazwanym zakresem „nazwy” jako tablicą.

Obsługa błędów

Gdy ROWS zwraca wartość k, która nie istnieje, funkcja SMALL zgłasza błąd #NUM. Dzieje się tak po wystąpieniu wszystkich dopasowań. Aby powstrzymać błąd, używamy IFERROR do wychwytywania błędu i zwracania pustego ciągu („”).

Interesujące artykuły...