Dette er en mere avanceret formel. For basics, se hvordan du bruger indeks og MATCH.
normalt konfigureres en INDEKSMATCHFORMEL med MATCH indstillet til at se gennem et interval med en kolonne og give en kamp baseret på givne kriterier. Uden sammenkædning af værdier i en hjælperkolonne eller i selve formlen er der ingen måde at levere mere end et kriterium på.,
denne formel fungerer omkring denne begrænsning ved at bruge boolsk logik til at oprette en række ettaller og nuller til at repræsentere rækker, der matcher alle 3 kriterier, og derefter bruge MATCH til at matche de første 1 Fundet. Den midlertidige vifte af ettaller og nuller, der er frembragt med dette uddrag:
(H5=B5:B11)*(H6=C5:C11)*(H7=D5:D11)Her kan vi sammenligne element i H5 mod alle elementer, størrelsen i H6 mod alle størrelser og farver i H7 mod alle farver. Det første resultat er tre arrays af TRUE/FALSE resultater som dette:
{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE}*{FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE}*{TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE}Tip: brug F9 for at se disse resultater., Vælg blot et udtryk i formellinjen, og tryk på F9.
Den matematiske operation (multiplikation) forvandler den SANDE FALSKE værdier til 1-taller og 0’er:
{1;1;1;0;0;0;1}*{0;0;1;0;0;1;0}*{1;0;1;0;0;0;1}Efter multiplikation, vi har et enkelt array som dette:
{0;0;1;0;0;0;0}der er fodret i MATCH funktion som opslag array, med et opslag værdi af 1:
MATCH(1,{0;0;1;0;0;0;0})På dette punkt, formlen er en standard INDEKS MATCH formel., MATCHFUNKTIONEN returnerer 3 til inde.:
=INDEX(E5:E11,3)og inde. returnerer et endeligt resultat på $17.00.
array-visualisering
de ovenfor beskrevne arrays kan være vanskelige at visualisere. Billedet nedenfor viser den grundlæggende id.. Kolonne B, C og D svarer til dataene i eksemplet. Kolonne F oprettes ved at multiplicere de tre kolonner sammen. Det er arrayet udleveret til at matche.,
Ikke-array version
Det er muligt at tilføje et andet INDEKS, at denne formel, er det muligt at undgå at komme ind som en matrixformel med ctrl + skift + enter:
=INDEX(rng1,MATCH(1,INDEX((A1=rng2)*(B1=rng3)*(C1=rng4),0,1),0))INDEX-funktionen kan håndtere arrays indbygget, så det andet INDEKS er tilføjet, kun at “fange” array oprettes med den boolske logik drift og retur samme array igen til at MATCHE. For at gøre dette er indekset konfigureret med nul rækker og en kolonne. Trickero ro. – tricket får indekset til at returnere kolonne 1 fra arrayet (som alligevel allerede er en kolonne).,
hvorfor vil du have den ikke-array version? Nogle gange glemmer folk at indtaste en array-formel med control + shift + enter, og formlen returnerer et forkert resultat. Så en ikke-array formel er mere “skudsikker”. Afvejningen er imidlertid en mere kompleks formel.Bemærk: I E .cel 365 er det ikke nødvendigt at indtaste arrayformler på en særlig måde.