Indholdsfortegnelse
Når du arbejder med et stort antal data, fører det til flere resultater. I Excel er der en meget praktisk måde at udtrække flere resultater på. I denne artikel vil vi vise dig, hvordan du bruger INDEX-MATCH formel i Excel for at generere flere resultater.
Download skabelon til praksis
Du kan downloade den gratis Excel-øvelsesskabelon her og øve dig på egen hånd.
INDEX MATCH Flere resultater.xlsx4 Nyttige måder at implementere INDEX & MATCH-funktionerne sammen i Excel for at udtrække flere resultater
I dette afsnit vil man i detaljer diskutere udnyttelsen af INDEX-funktionen og MATCH-funktionen sammen i Excel for at få flere resultater.
1. Find flere resultater i arrayet ved hjælp af INDEX MATCH-formlen i Excel
Tag følgende datasæt, hvor vi ønsker at finde de forskellige karakterer for studerende ved forskellige eksamener.
Vi kan få det ved at køre en INDEX-MATCH formel i vores regneark.
Trin til at finde de flere resultater i et sæt af et array ved hjælp af INDEX-MATCH funktioner er angivet nedenfor.
Trin:
- Vælg et navn fra datasættet ( B5:B11 ) og sæt navnet i en anden celle for at bruge cellehenvisningsnummeret senere (f.eks. navn Villiers på Celle G4 ).
- I en anden celle, som du vil have som resultatcelle (f.eks. Celle G7 ), skriv følgende formel,
=INDEX($C$5:$C$11,SMALL(IF(ISNUMBER(MATCH($B$5:$B$11,$G$4,0)),MATCH(ROW($B$5:$B$11),ROW($B$5:$B$11)),"""),ROWS($A$1:A1))))
Her,
$C$5:$C$11 = arrayet til søgning i opslagsværdien
$B$5:$B$11 = det array, hvor opslagsværdien er
- Tryk på Gå ind på .
Du vil bemærke, at resultatet for dataene (f.eks. Villiers ), som du sætter i den valgte celle ( G4 ), vil blive vist i resultatcellen (f.eks. 65 på G7 ).
- Træk nu rækken ned med Håndtag til påfyldning for at få resten af dine resultater af den samme opslagsværdi.
Da denne proces ikke er konstant for en bestemt værdi, kan du vælge alle opslagsdata i den valgte celle (f.eks. G4 ), og resultatet for de pågældende data vil blive automatisk opdateret i resultatcellen (f.eks. G7 ).
Se nedenstående gif for at få mere at vide.
Opdeling af formler:
Lad os gennemgå formlen for at forstå, hvordan vi har fået resultatet.
- MATCH($B$5:$B$11, $G$4, 0) bliver,
-> MATCH({"Flintoff"; "Ronaldo"; "Plessis"; "Villiers"; "Beckham"; "Villiers"; "Plessis"}, "Villiers", 0)
-> Output: {#N/A; #N/A; #N/A; #N/A; 1; #N/A; 1; #N/A; 1; #N/A}
Forklaring: Hvis søgeværdien finder et match i opslagsarrayet, vil MATCH funktionen returnerer 1 , ellers returnerer den #N/A .
- ISNUMBER(MATCH($B$5:$B$11, $G$4, 0) bliver,
-> ISNUMBER({#N/A; #N/A; #N/A; #N/A; 1; #N/A; 1; #N/A; 1; #N/A})
-> Output: {FALSK; FALSK; FALSK; FALSK; SANDT; FALSK; FALSK; SANDT; FALSK}.
Forklaring: Som IF-funktionen er ikke i stand til at håndtere fejlværdier, så ISNUMBER-funktionen bruges her til at konvertere arrayværdierne til boolske værdier.
- IF(ISNUMBER(MATCH($B$5:$B$11, $G$4, 0)), MATCH(ROW($B$5:$B$11), ROW($B$5:$B$11)), "") bliver,
-> IF({FALSE; FALSE; FALSE; FALSE; TRUE; FALSE; TRUE; TRUE; FALSE}, MATCH(ROW($B$5:$B$11), ROW($B$5:$B$11)), "")
bliver
-> IF({FALSE; FALSE; FALSE; FALSE; TRUE; FALSE; FALSE; TRUE; FALSE}, {1; 2; 3; 4; 4; 5; 6; 7}, "")
-> Output: {""; ""; ""; ""; 4; ""; 6}
Forklaring: For det første, den IF Funktionen konverterer de boolske værdier til rækketal og blanktegn. Senere konverterer MATCH og ROW-funktionen s beregner et array med fortløbende numre fra 1 til n, hvor n er den sidste numeriske identitet af den samlede størrelse af celleområdet. Som $B$5:$B$11 har 7 værdier, så arrayet bliver {1; 2; 3; 4; 5; 6; 7} .
- SMALL(IF(ISNUMBER(MATCH($B$5:$B$11, $G$4, 0))), MATCH(ROW($B$5:$B$11), ROW($B$5:$B$11)), "")), ROWS($A$1:A1)))) bliver
-> SMALL({""; ""; ""; ""; 4; ""; 6}, ROWS($A$1:A1))
-> SMALL({""; ""; ""; ""; 4; ""; 6}, 1)
-> Udgang: 4
Forklaring: Først, den SMALL-funktion bestemmer, hvilken værdi der skal hentes på grundlag af rækkens nummer. Dernæst anvendes Rækker Funktionen returnerer et tal, der ændres hver gang cellen kopieres og indsættes i cellerne nedenunder. Oprindeligt returnerede den 4 i henhold til vores datasæt. I den næste celle nedenfor, RÆKKE($A$1:A1) ændringer til RÆKKE($A$1:A2) og returnerer 6 .
- INDEX($C$5:$C$11, SMALL(IF(ISNUMBER(MATCH($B$5:$B$11, $G$4, 0)), MATCH(ROW($B$5:$B$11), ROW($B$5:$B$11)), "")), ROWS($A$1:A1)))) bliver
-> INDEX($C$5:$C$11, 4)
-> Udgang: 65
Forklaring: INDEX funktionen returnerer en værdi fra et givet array baseret på et række- og kolonnetal. 4. værdi i arrayet $C$5:$C$11 er 65 , så den INDEX funktionen returnerer 65 i celle G7 .
Læs mere: IF med INDEX-MATCH i Excel (3 egnede fremgangsmåder)
2. Find flere resultater af navn & dato for kommende begivenhed med INDEX MATCH-formel i Excel
Nogle gange glemmer vi datoen for vigtige begivenheder. I så fald kan den INDEX MATCH funktioner fungerer som redningsarbejdere.
Nedenfor er et eksempel på data, hvor vi ønskede at kende den kommende fødselsdag blandt vores venner.
Så det, vi gjorde, var at implementere en INDEX MATCH formel for at finde ud af, hvem der har fødselsdag næste gang, og hvornår det er.
Så formlen for at kende personens navn eller navnet på den kommende begivenhed er,
=INDEX($B$5:$B$9,MATCH(F5,$C$5:$C$9,1)+1)
Og formlen for at kende datoen for den kommende begivenhed er,
=INDEX($C$5:$C$9,MATCH(F5,$C$5:$C$9,1)+1)
Opdeling af formler:
Lad os gennemgå formlen for at forstå, hvordan vi fandt ud af navnet Alex og datoen for hans fødselsdag.
- MATCH(F5,$C$5:$C$9,1)
-> Udgang: 4
Forklaring: MATCH Funktionen finder positionen for opslagsværdien ( Celle F5 = Torsdag den 11. november 2021 ) i arraykonstanten ( $C$5:$C$9 = listen over datoer ).
I dette eksempel ønskede vi ikke et nøjagtigt match, vi ønskede den MATCH funktion til at returnere et tilnærmelsesvis match, så vi sætter det tredje argument til 1 (eller TRUE ).
- INDEX($B$5:$B$9,MATCH(F5,$C$5:$C$9,1)+1) bliver
-> INDEX($B$5:$B$9, 4) +1)
-> Output: Alex /(Begivenhedens navn)
Forklaring: INDEX Funktionen tager to argumenter for at returnere en bestemt værdi i et endimensionalt område. Her er området $B$5:$B$9 er først det argument og det resultat, som vi fik fra beregningen i det foregående afsnit (MATCH(F5,$C$5,$C$5:$C$9,1)) , position 4 , er det andet argument. Det betyder, at vi søger efter den værdi, der befinder sig i position 4 i den $B$5:$B$9 rækkevidde.
Og,
- INDEX($C$5:$C$9,MATCH(F5,$C$5:$C$9,1)+1) bliver
-> INDEX($B$5:$B$9, 4) +1)
-> Output: tirsdag den 7. december 2021
Forklaring: INDEX Funktionen tager to argumenter for at returnere en bestemt værdi i et endimensionalt område. Her er området $C$5:$C$9 er først det argument og det resultat, som vi havde fra beregningen i det foregående afsnit (MATCH(F5,$C$5,$C$5:$C$9,1)) , position 4 , er det andet argument. Det betyder, at vi søger efter den værdi, der befinder sig i position 4 i den $C$5:$C$9 rækkevidde.
For at få den kommende begivenhedsdato har vi blot tilføjet en til den celleposition, der er returneret af MATCH funktionen, og den gav os cellepositionen for den næste begivenhedsdato.
Læs mere: Excel INDEX-MATCH-formel til at returnere flere værdier horisontalt
Lignende læsninger
- INDEX MATCH Flere kriterier med jokertegn i Excel (en komplet vejledning)
- [Rettet!] INDEX MATCH returnerer ikke den korrekte værdi i Excel (5 grunde)
- Sådan bruges INDEX MATCH i stedet for VLOOKUP i Excel (3 måder)
- INDEX+MATCH med duplikerede værdier i Excel (3 hurtige metoder)
- Sådan vælger du specifikke data i Excel (6 metoder)
3. Generer flere resultater i separate kolonner ved hjælp af INDEX MATCH-formel i Excel
Indtil nu har vi fået resultaterne i rækker. Men hvad nu hvis du vil have resultaterne i separate kolonner .
Overvej følgende datasæt, som består af tre typer erhverv, der repræsenterer flere navne på personer.
Vi ønskede at lave en gruppe af personer baseret på deres erhverv, og vi ønskede at placere navnene kolonnevis i overensstemmelse med deres erhverv.
Hvis du vil udtrække flere matchresultater i separate celler i separate kolonner, kan du udføre et lille trick med INDEX funktion.
Lad os lære, hvordan du udtrækker flere matchresultater i flere kolonner i Excel med en kombination af INDEX funktioner og andre.
Trin:
- Vælg et erhverv fra dataregistret ( B5:B11 ), og sæt dataene i en anden celle for senere at bruge cellens referencenummer (f.eks. profession Cricketer på Celle E5 ).
- I en anden celle, som du vil have som resultatcelle (f.eks. Celle F5 ), skriv følgende formel,
=IFERROR(INDEX($C$5:$C$11,SMALL(IF($B$5:$B$11=$E5,ROW(C5:C11)-MIN(ROW(C5:C11))+1),COLUMNS($E$5:E5))),""")
Her,
$C$5:$C$11 = arrayet til søgning i opslagsværdien
$B$5:$B$11 = det array, hvor opslagsværdien er
- Tryk på Indtast .
Du vil bemærke, at resultatet for dataene (f.eks. Cricketspillere ), som du sætter i den valgte celle ( E5 ), vil blive vist i resultatcellen (f.eks. Flintoff på Celle F5 ).
- Træk nu rækken rundt med Håndtag til påfyldning for at få resten af dine resultater af den samme opslagsværdi i separate kolonner.
- Igen skal du trække rækken rundt ved at Håndtag til påfyldning for at få resten af dine resultater af forskellige opslagsværdier (f.eks. Fodboldspiller, brydere ) i flere separate kolonner.
Opdeling af formler:
Lad os gennemgå formlen for at forstå, hvordan vi har fået resultatet.
- SMALL(IF($B$5:$B$11=$E5,ROW($C$5:$C$11)-MIN(ROW($C$5:$C$11))+1),COLUMNS($E$5:E5)))
Vi ved allerede fra den foregående diskussion, hvordan SMALL, HVIS og RÆKKE funktioner arbejder sammen, og vi bruger også dette trick her til at generere et rækkenummer, der svarer til en N-te match. Når vi har rækkenummeret, sender vi det simpelthen ind i INDEX funktion, som returnerer værdien i den pågældende række.
-> Output: ( som på billedet nedenfor )
- INDEX($C$5:$C$11,SMALL(IF($B$5:$B$11=$E5,ROW($C$5:$C$11)-MIN(ROW($C$5:$C$11))+1),COLUMNS($E$5:E5)))) -> at sende rækkens numre til INDEX funktion til at udtrække værdien for de tilsvarende rækketal.
-> Output: ( som på billedet nedenfor )
- IFERROR(INDEX($C$5:$C$11,SMALL(IF($B$5:$B$11=$E5,ROW(C5:C11)-MIN(ROW(C5:C11))+1),COLUMNS($E$5:E5))),""") -> Bemærk, at når kolonner returnerer en værdi, der ikke findes, så bliver der en #NUM For at undgå fejlen omslutter vi hele formlen med IFERROR-funktionen til at opfange fejl og sætte en tom streng ("") som en retur.
-> Output: ( som på billedet nedenfor )
Læs mere: Excel INDEX MATCH til at returnere flere værdier i én celle
4. Udtrække flere resultater i separate rækker ved hjælp af INDEX MATCH-funktioner i Excel
Hvis du undrer dig over at udtrække flere resultater i flere rækker på samme måde som i det foregående afsnit, så er formlen,
=IFERROR(INDEX($C$5:$C$11,SMALL(IF($B$5:$B$11=E$4,ROW(C5:C11)-MIN(ROW(C5:C11))+1),ROWS($E$5:E5))),""")
Og alle andre detaljer som f.eks. trin og formelfordeling er de samme som i afsnit 3.
Vigtige punkter, du skal huske på
- Da området i datatabellens array, der skal søge efter værdien, er fast, skal du ikke glemme at sætte dollar ($) foran cellereferencenummeret i arraytabellen.
- Når du arbejder med array-værdier, skal du ikke glemme at trykke på Ctrl + Shift + Enter på tastaturet, mens du udtrækker resultater. Hvis du kun trykker på Indtast fungerer kun, når du bruger Microsoft 365 .
- Når du har trykket på Ctrl + Shift + Enter , vil du bemærke, at formellinjen omslutter formlen i parenteser {} , og erklærer den som en array-formel. Du skal ikke skrive disse parenteser {} selv, Excel gør det automatisk for dig.
Konklusion
I denne artikel forklares det i detaljer, hvordan du bruger INDEX MATCH funktioner til at udtrække flere resultater i Excel. Jeg håber, at denne artikel har været til stor gavn for dig. Du er velkommen til at spørge, hvis du har spørgsmål vedrørende emnet.