Indholdsfortegnelse
Der er flere måder at ansøge på VLOOKUP eller vertikalt opslag i Microsoft Excel for at returnere data baseret på flere match. I denne artikel får du kendskab til alle mulige metoder til at aktivere VLOOKUP og udtrække alle tilgængelige data med passende illustrationer.
Download arbejdsbog til øvelser
Du kan downloade den Excel-arbejdsmappe, som vi har brugt til at forberede denne artikel.
VLOOKUP og returnering af alle overenskomster.xlsx7 måder at VLOOKUP og returnere alle matches i Excel på
VLOOKUP funktionen leder efter en værdi i kolonnen længst til venstre i en tabel og returnerer en værdi i samme række fra den angivne kolonne. Men denne funktion kan ikke udtrække data baseret på mere end ét match fra en kolonne. Så vi er nødt til at indsætte nogle andre funktioner og formler for at slå en værdi op og returnere alle de match, der findes i en kolonne.
1. VLOOKUP og returnering af flere match i en kolonne
I det følgende billede har vi en tabel med tilfældige navne på flere medarbejdere og deres afdelinger. Hvis vi antager, at vi ønsker at vise navnene på de medarbejdere i en enkelt kolonne, der arbejder i afdelingen Fremstilling.
Hvis du er en Excel 365 bruger, så kan du vælge den FILTER funktion her for at finde returværdierne om et øjeblik. Med FILTER funktion, den krævede formel i output Celle C16 vil være:
=FILTER(C5:C13,C15=B5:B13)
Når du har trykket på Indtast vises navnene på de ansatte fra Fremstilling afdeling i en lodret række.
Eller hvis du bruger en ældre version i Microsoft Excel, skal du bruge følgende kombinerede formel:
=INDEX($C$5:$C$13, SMALL(IF(($C$15=$B$5:$B$13), MATCH(ROW($B$5:$B$13), ROW($B$5:$B$13)), "")),ROWS($A$1:A1))))
Når du har trykket på Indtast , finder du medarbejderens fornavn i resultatet Celle C16 .
Ved at bruge Håndtag til påfyldning fra Celle C16 til nedadgående, får du resten af navnene på medarbejderne fra den angivne afdeling på én gang.
🔎 Hvordan virker denne formel?
- RÆKKE($B$5:$B$13): RÆKKE funktionen udtrækker række numrene på de definerede cellereferencer og returnerer følgende array:
{5;6;7;8;9;10;11;12;13}
- MATCH(ROW($B$5:$B$13), ROW($B$5:$B$13)): MATCH funktionen her konverterer de udtrukne rækketal startende fra 1. Så denne del af formlen returnerer et array af:
{1;2;3;4;5;6;7;8;9}
- IF(($C$15=$B$5:$B$13), MATCH(ROW($B$5:$B$13), ROW($B$5:$B$13)), ""): Med hjælp fra IF funktionen returnerer denne del af formlen indeksnummeret for de rækker, der opfylder den angivne betingelse. Denne del returnerer altså et array af:
{"";2;"";4;"";"";"";"";9}
- SMALL funktionen i formlen trækker det første lille tal, der blev fundet i det foregående trin, ud og tildeler dette tal til det andet argument (row_number) af den INDEX funktion.
- Endelig er det INDEX funktionen viser navnet på medarbejderen baseret på det angivne rækkenummer.
- RÆKKER funktion i denne formel definerer den k-te nummer for den SMALL funktion. Ved brug af Håndtag til påfyldning til at udfylde resten af cellerne, bruger formlen følgende k-te nummer til udtrækning af data efterfulgt af SMALL funktion.
Læs mere: INDEX MATCH vs. VLOOKUP-funktion (9 eksempler)
2. VLOOKUP og returnering af alle match i en række i Excel
Hvis du vil se navnene på medarbejderne horisontalt, skal du kombinere FILTER funktion med den TRANSPOSE funktion. TRANSPOSE funktionen konverterer et lodret område af celler til et vandret område eller omvendt. Og for at bruge denne kombinerede formel skal du være en Excel 365 bruger.
Så den krævede formel i output Celle C16 vil være:
=TRANSPOSE(FILTER(C5:C13,C15=B5:B13))
Tryk nu på Indtast og du får vist navnene på medarbejderne i afdelingen Fremstilling i et vandret felt.
Eller indsæt følgende formel i output Celle C16 hvis du ikke er Excel 365-bruger.
=INDEX($C$5:$C$13, SMALL(IF($C$15=$B$5:$B$13, ROW($B$5:$B$13)-MIN(ROW($B$5:$B$13))+1, ""), COLUMNS($A$1:A1))))
Tryk på Gå ind på og du finder fornavnet på medarbejderen fra den angivne afdeling.
Nu skal du bruge Håndtag til påfyldning og træk den Celle C16 til højre, indtil du finder den første #NUM fejl. Og du får alle navnene fra den Fremstilling afdeling horisontalt.
Formlen, der indsættes her, ligner næsten den første lange formel, der blev brugt i det foregående eksempel i artiklen, hvor de udtrukne data skulle vises lodret. Den eneste store forskel er, at vi bruger KOLUMNER funktionen her for at angive sekvensnummeret for den SMALL funktionen. Når cellerne automatisk udfyldes horisontalt, vil formlen følge sekvensnummeret for den SMALL funktion til at udtrække data.
Læs mere: Excel VLOOKUP til at returnere flere værdier lodret
3. VLOOKUP til at returnere flere værdier baseret på kriterier
Vi har tilføjet en ekstra kolonne i midten af tabellen. Denne kolonne gemmer de projekt-id'er, der er tildelt de tilsvarende medarbejdere, der er til stede i Kolonne D Så vi indtaster nu to forskellige betingelser og udtrækker data baseret på alle de fundne match.
Vi ønsker f.eks. at kende navnene på de medarbejdere, der i øjeblikket arbejder i Salg afdeling på projekt-ID på DMR 103 .
Den krævede formel i output Celle C17 vil være:
=IFERROR(INDEX($D$5:$D$13, SMALL(IF(1=((--($C$15=$B$5:$B$13))) * (--($C$16=$C$5:$C$13))), ROW($D$5:$D$13)-4,""), ROW()-16)),""),"")
Tryk på Gå ind på og du vil finde medarbejderens fornavn under de angivne kriterier.
Fyld nu ned i Celle C17 for at vise resten af navnet med de givne betingelser.
🚩 Nogle vigtige egenskaber ved denne formel:
- Denne formel er også meget lig den, der blev anvendt i den foregående metode.
- I denne formel er IFERROR funktionen er blevet brugt til at vise et tilpasset output, hvis der findes en fejl.
- IF funktionen i denne formel kombinerer to forskellige kriterier, og ved hjælp af dobbelt-unær, de boolske værdier (SAND eller FALSK) bliver til 1 eller 0 Funktionen returnerer derefter indeksnummeret for de rækker, der har matchet med de givne kriterier.
- RÆKKE($D$5:$D$13)-4: I denne del er antallet '4' er rækkenummeret i overskriften Employee.
- ROW()-16: Og den numeriske værdi '16' i denne del angiver det foregående rækketal i den første udgangscelle.
Læs mere: Brug VLOOKUP med flere kriterier i Excel (6 metoder + alternativer)
4. VLOOKUP og udtræk alle match med AutoFilter
Ved at bruge AutoFilter kan vi nemmere udtrække data baseret på alle match. Da vi skal udtrække navnene på medarbejderne fra afdelingen Fremstilling, skal vi følge følgende trin:
📌 Trin 1:
➤ Vælg hele datatabellen, og højreklik med musen.
➤ Vælg den 'Filtrer efter værdien af den valgte celle' fra Filter muligheder.
Du har altså lige aktiveret Filter knapper til dine overskrifter.
📌 Trin 2:
➤ Klik på Filter knappen fra den Afdeling overskrift.
➤ Sæt et mærke på Fremstilling kun.
➤ Tryk på OK og så er du færdig.
Som i skærmbilledet nedenfor vises de resulterende og filtrerede data.
Læs mere: VLOOKUP med flere matches i Excel
Lignende læsninger
- Sådan anvendes dobbelt VLOOKUP i Excel (4 hurtige måder)
- VLOOKUP virker ikke (8 grunde & løsninger)
- Sådan kombineres Excel SUMIF & VLOOKUP på tværs af flere ark
- VLOOKUP til at returnere flere kolonner i Excel (4 eksempler)
- Sådan VLOOKUP med flere betingelser i Excel (2 metoder)
5. VLOOKUP til at udtrække alle match med avanceret filter i Excel
Du kan også bruge Avanceret filter hvor du skal definere kriterierne ved at vælge kriterieområdet fra dit Excel-regneark. I det følgende billede, B15:B16 er kriterieområdet.
📌 Trin 1:
➤ Vælg hele datatabellen.
➤ Under den Data bånd, klik på Avanceret kommando fra den Sortere og filtrere drop-down.
En dialogboks med navnet Avanceret filter vil åbne sig.
📌 Trin 2:
➤ Vælg hele datatabellen for den Liste rækkevidde input.
➤ Vælg B15:B16 for indgangen til Kriterier Område .
➤ Tryk på OK .
Og du vil få vist det filtrerede resultat med navnene på medarbejderne fra Fremstilling kun.
Læs mere: VLOOKUP med flere kriterier i Excel (6 eksempler)
6. VLOOKUP og returner alle værdier ved at formatere som tabel
Nu viser vi dig en anden simpel metode til at filtrere datatabellen ved at konvertere den til en formateret tabel.
📌 Trin 1:
➤ Vælg den primære datatabase først.
➤ Fra den Format som tabel under den relevante drop-down under Hjem og vælg et af de tabeller, du foretrækker.
Efter det første trin vil din datatabel nu se ud som vist i følgende skærmbillede med de filtrerede overskrifter.
📌 Trin 2:
➤ Vælg den Fremstilling efter at have klikket på filterknappen fra Afdeling overskrift.
➤ Tryk på OK og så er du færdig.
Skærmbilledet nedenfor viser output baseret på det angivne valg.
Læs mere: Brug af VBA VLOOKUP til at finde værdier fra et andet regneark i Excel
7. VLOOKUP til at trække alle matches ud i en enkelt celle i Excel
TEXTJOIN funktionen sammenkæder en liste eller et område af tekststrenge ved hjælp af en afgrænser. Ved at indarbejde TEXTJOIN og IF funktioner sammen kan vi søge efter en værdi og udtrække data baseret på alle match i en enkelt celle.
Den krævede formel i output Celle C16 vil være:
=TEXTJOIN(", ", ",TRUE,IF($B$5:$B$13=$C$15,$C$5:$C$13,"")))
Når du har trykket på Indtast finder du medarbejdernavnene fra Fremstilling afdeling i en enkelt celle adskilt af kommaer.
I denne formel er IF funktionen returnerer arrayet med de matchede navne samt den boolske værdi "FALSK" for celler, der ikke er matchet. Funktionen TEXTJOIN funktionen sammenføjer derefter alle de fundne navne med den angivne afgrænser.
Læs mere: VLOOKUP Delvis tekst fra en enkelt celle i Excel
Afsluttende ord
Jeg håber, at alle disse metoder, der er nævnt ovenfor, nu vil hjælpe dig med at anvende dem i dine Excel-regneark, når det er nødvendigt. Hvis du har spørgsmål eller feedback, så lad mig vide det i kommentarfeltet. Eller du kan tjekke vores andre artikler relateret til Excel-funktioner på dette websted.