Formuła programu Excel: Znajdź najdłuższy ciąg z kryteriami -

Formuła ogólna

(=INDEX(rng1,MATCH(MAX(LEN(rng1)*(rng2=criteria)),LEN(rng1)*(rng2=criteria),0)))

Podsumowanie

Aby znaleźć najdłuższy ciąg w zakresie z kryteriami, możesz użyć formuły tablicowej opartej na INDEKSIE, PODAJNIKU, DŁ. I MAKS. W pokazanym przykładzie formuła w F6 to:

(=INDEX(names,MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)))

Gdzie „nazwy” to nazwany zakres C5: C14, a „klasa” to nazwany zakres B5: B14.

Uwaga: to jest formuła tablicowa i należy ją wprowadzić za pomocą Ctrl + Shift + Enter.

Wyjaśnienie

Rdzeniem tej formuły jest funkcja PODAJ.POZYCJĘ, która lokalizuje pozycję najdłuższego ciągu na podstawie podanych kryteriów:

MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)

Uwaga PODAJANIE jest skonfigurowane do wykonywania dokładnego dopasowania, podając zero dla typu dopasowania. Dla wartości wyszukiwania mamy:

LEN(names)*(class=F5)

Funkcja DŁ zwraca tablicę wyników (długości), po jednym dla każdej nazwy na liście, gdzie klasa = „A” z komórki F5:

(5;6;8;6;6;0;0;0;0;0)

To skutecznie odfiltrowuje całą klasę B, a funkcja MAX zwraca następnie największą wartość, 8.

Aby skonstruować tablicę wyszukiwania, używamy tego samego podejścia:

LEN(names)*(class=F5)

I uzyskaj ten sam wynik:

(5;6;8;6;6;0;0;0;0;0)

Po uruchomieniu LEN i MAX mamy formułę MATCH z następującymi wartościami:

MATCH(8,(5;6;8;6;6;0;0;0;0;0),0))

Następnie PODAJ.POZYCJĘ zwraca pozycję 8 na liście, 3, która trafia do INDEKSU w następujący sposób:

=INDEX(names,3)

Na koniec INDEKS sumiennie zwraca wartość na trzeciej pozycji nazwy , czyli „Jonathan”.

Interesujące artykuły...