Returner et array ved hjælp af i Excel ved hjælp af INDEX -funktion

Anonim

Af en eller anden grund, hvis du vil foretage en operation på et område med bestemte indekser, vil du tænke på at bruge INDEX -funktion til at få en række værdier på bestemte indekser. Sådan her.

Lad os forstå det med et eksempel.

Her har jeg en Rate -kolonne. Jeg vil opsummere værdier på position 1,3 og 5. Jeg skriver denne formel i C2.

= SUM (INDEX (A2: A11, {1,3,5}))

Overraskende returnerer INDEX -funktionen ikke en række værdier, når vi leverer en matrix som indekser. Vi får kun den første værdi. Og SUM -funktionen returnerer kun summen af ​​en værdi.

Så hvordan får vi INDEX -funktion til at returnere det array. Godt jeg fandt denne løsning på internettet, og jeg forstår ikke rigtigt, hvordan det fungerer, men det virker.

Den generiske formel til at få matrix af indekser

= SUM (INDEX (område, N (HVIS (1, {tal))))

Rækkevidde: Det er det område, du vil kigge efter ved givne indeksnumre
Nummer: disse er indeksnumrene.
Lad os nu anvende ovenstående formel til vores eksempel.

Skriv denne formel i C2.

= SUM (INDEKS (A2: A11, N (HVIS (1, {1,3,5})))

Og dette giver det korrekte svar som 90.

Hvordan det virker.

Nå, som jeg sagde, at jeg ikke ved, hvorfor det virker og returnerer rækken af ​​tal, men her sker hvad.

HVIS (1, {1,3,5}): Denne del returnerer matrixen {1,3, 5} som forventet

N (HVIS (1, {1,3,5})) oversættes til N ({1,3,5}), hvilket igen giver os {1,3,5}

BEMÆRK: N -funktionen returnerer antallet, der svarer til en hvilken som helst værdi. Hvis en værdi ikke er talkonverterbar, returnerer den 0 (som tekst). Og for fejl returnerer det fejl.

INDEX ((A2: A11, N (IF (1, {1,3,5}))): denne del oversættes til INDEX ((A2: A11, {1,3,5}), og på en eller anden måde returnerer dette arrayet { 10,30,50}. Som du har set tidligere, når du skriver INDEX ((A2: A11, {1,3,5}) direkte i formlen, returnerer den kun 10. Men når vi bruger N og IF -funktion, returnerer den hele array. Hvis du forstår det, så lad mig vide det i kommentarfeltet herunder.

Sådan bruges cellereferencer til indeksværdier til at få et array
I ovenstående eksempel hardkodede vi indekserne i funktion. Men hvad nu hvis jeg vil have det fra et område, der kan ændre sig. Vi erstatter {1,3,5} med rækkevidde? Lad os prøve det.

Her har vi denne formel i Cell D2:

= SUM (INDEX (A2: A11, N (IF (1, A2: A5)))

Dette returnerer 10. Den allerførste værdi af det givne indeks. Selvom vi indtaster det som en matrixformel ved hjælp af CTRL+SKIFT+ENTER, giver det det samme resultat.

For at få det til at fungere skal du tilføje + eller - (dobbelt unary) operator før område og indtaste det som matrixformel.

{= SUM (INDEX (A2: A11, N (IF (1,+A2: A5)))}

Dette virker. Spørg mig ikke hvordan? Det virker bare. Hvis du kan fortælle mig, hvordan jeg vil inkludere dit navn og forklaring her.
Så vi lærte at få et array fra INDEX -funktionen. Der foregår nogle skøre ting her i excel. Hvis du kan forklare, hvordan det fungerer her i kommentarfeltet herunder, vil jeg inkludere det i min forklaring med dit navn.
Download fil:

Returner et array ved hjælp af i Excel ved hjælp af INDEX -funktion

Relaterede artikler:

Arrays i Excel Formula

Brug INDEX og MATCH til at slå op på værdi

Sådan bruges LOOKUP -funktion i Excel

Opslagsværdi med flere kriterier

Populære artikler:

VLOOKUP -funktionen i Excel

COUNTIF i Excel 2016

Sådan bruges SUMIF -funktionen i Excel