Herbruikbare VERT.ZOEKEN (VERT.ZOEKEN)

Inhoud

We hebben een lijst met bestellingen met nummers en namen van goederen. Ik wil bijvoorbeeld alle goederen die erin zitten op ordernummer van de tafel halen. Min of meer als volgt:

 

Geweldige functie VERT.ZOEKEN (VERT.ZOEKEN) in een dergelijke situatie zal het slechts gedeeltelijk helpen, omdat het alleen in staat is om gegevens te extraheren door de eerste gevonden overeenkomst, dwz het geeft ons alleen Appels. Om alle items uit de tabel te vinden en te extraheren, is het beter om een ​​matrixformule te gebruiken. Zoals deze:

=INDEX($B$2:$B$16;MINST(IF($ E $ 2=A2: A16;LINE(B2:B16)-1;»»);LINE()-5))

Het moet als volgt worden ingevoerd:

  1. selecteer de cellen waar de resultaten moeten worden weergegeven (in ons voorbeeld is dit het bereik D6:D20)
  2. voer (kopieer de formule in de eerste cel) van het bereik in
  3. pers Ctrl + Shift + Enter

Eenheid aftrekken in fragment STRING(B2:B16)-1 wordt gedaan vanwege de tabelkop. Om dezelfde reden wordt, om de verschuiving in het resulterende bereik ten opzichte van het origineel te compenseren, het getal vijf in het fragment afgetrokken STRING()-5

Om de #GETAL! fout die in lege cellen in het resulterende bereik D6:D20 zal verschijnen, kunt u de foutcontrolefuncties IF en EOSH gebruiken en onze formule vervangen door een iets complexere formule:

=ALS(EOSH(ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5)));»»;ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5)))

In Excel 2007 verscheen een handigere IFERROR-functie - hiermee kunt u het probleem compacter oplossen:

=ALS.FOUT(ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5));»»)

PS

In de Engelse versie van Excel zien deze functies er als volgt uit:

=INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5))

=IF(ISERR(INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5))),»»,INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5)))

=IFERROR(INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5)),»»)

  • De functie VERT.ZOEKEN gebruiken om gegevens in een tabel te zoeken
  • Een verbeterde versie van de VERT.ZOEKEN2-functie die in elke kolom kan zoeken en niet alleen in de eerste waarde
  • VLOOKUP2 en VLOOKUP3 functies van de PLEX add-on
  • Wat zijn matrixformules en waarvoor worden ze gebruikt?

 

Laat een reactie achter