Excel formula: Izvelciet vairākas spēles atsevišķās rindās -

Kopsavilkums

Lai izvilktu vairākas atbilstības atsevišķām šūnām, atsevišķās rindās, varat izmantot masīva formulu, kuras pamatā ir INDEX un SMALL. Parādītajā piemērā formula E5 ir:

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

Šī ir masīva formula, un tā jāievada ar Control + Shift + Enter.

Pēc formulas ievadīšanas pirmajā šūnā velciet to uz leju un pāri, lai aizpildītu pārējās šūnas.

Paskaidrojums

Piezīme: šajā formulā tiek izmantoti divi nosauktie diapazoni: "nosaukumi" attiecas uz C4: C11 un "grupas" attiecas uz B4: B11. Šie vārdi ir noteikti arī iepriekš redzamajā ekrānuzņēmumā.

Šīs formulas būtība ir šāda: mēs izmantojam funkciju MAZA, lai iegūtu rindas numuru, kas atbilst "n -tajam mačam". Kad mums ir rindas numurs, mēs vienkārši nododam to funkcijai INDEX funkcija, kas atgriež vērtību šajā rindā.

Triks ir tāds, ka SMALL strādā ar masīvu, kuru IF šajā bitā ir dinamiski izveidojis:

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

Šis fragments pārbauda nosaukto diapazonu "grupas" vērtībai E4. Ja tiek atrasts, tas atgriež "normalizētu" rindas numuru no rindu numuru masīva, kas izveidots ar šo formulas daļu:

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

Rezultāts ir masīvs, kurā ir rindu numuri, kur ir atbilstība, un FALSE, ja ne. Masīvs izskatās apmēram šādi:

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

Šis masīvs nonāk MAZĀ. K vērtība SMALL (n-tajai) nāk no paplašināšanās diapazona:

ROWS($E$5:E5)

Nokopējot rezultātu tabulu uz leju, diapazons paplašinās, izraisot k (n) pieaugumu. Funkcija SMALL atgriež katru atbilstošo rindas numuru, kas tiek piegādāts funkcijai INDEX kā rindas_numurs, ar masīvu nosaukto diapazonu "nosaukumi".

Rīcības kļūdas

Kad ROWS atgriež k vērtību, kuras nav, SMALL izmet kļūdu #NUM. Tas notiek pēc visu spēļu norises. Lai novērstu kļūdu, mēs izmantojam IFERROR, lai noķertu kļūdu un atgrieztu tukšu virkni ("").

Interesanti raksti...