INHOUDSOPGAWE
Wanneer jy data in jou blad moet vind wat ooreenstem met 'n sekere sleutelrekord, is dit gewoonlik Google Sheets VLOOKUP waarna jy wend. Maar daar gaan jy: VLOOKUP klap jou amper dadelik met beperkings. Daarom moet jy beter die hulpbronne vir die taak vergroot deur INDEX MATCH te leer.
INDEX MATCH in Google Sheets is 'n kombinasie van twee funksies: INDEX en MATCH. Wanneer dit in tandem gebruik word, dien hulle as 'n beter alternatief vir Google Blaaie VLOOKUP. Kom ons vind saam hul vermoëns in hierdie blogpos. Maar eers wil ek jou 'n vinnige toer gee oor hul eie rolle in sigblaaie.
Google Sheets MATCH-funksie
Ek wil graag met Google begin Sheets MATCH want dit is regtig eenvoudig. Dit skandeer jou data vir 'n spesifieke waarde en gee sy posisie terug:
=MATCH(soeksleutel, reeks, [soektipe])- soeksleutel is daardie rekord waarna jy soek. Vereis.
- reeks is óf 'n ry óf 'n kolom om in te kyk. Vereis.
Let wel. MATCH aanvaar slegs eendimensionele skikkings: óf ry óf kolom.
- soektipe is opsioneel en definieer of die passing presies of benaderd moet wees. As dit weggelaat word, is dit by verstek 1:
- 1 beteken die reeks is in stygende volgorde gesorteer. Die funksie kry die grootste waarde minder as of gelyk aan jou soeksleutel .
- 0 sal die funksie vir die presiese passing laat soek indien jou reeks nie is niegesorteer.
- -1 dui daarop dat rekords gerangskik word deur gebruik te maak van dalende sortering. In hierdie geval kry die funksie die kleinste waarde groter as of gelyk aan jou soeksleutel .
Hier is 'n voorbeeld: om 'n posisie van 'n sekere te kry bessie in die lys van alle bessies, ek benodig die volgende MATCH-formule in my Google Sheets:
=MATCH("Blueberry", A1:A10, 0)
Google Sheets INDEX-funksie
Terwyl MATCH wys waar om vir jou waarde te soek (sy ligging in die reeks), haal Google Sheets INDEX-funksie die waarde self op grond van sy ry- en kolomverskuiwings:
=INDEX(verwysing, [ry], [kolom])- verwysing is die reeks om in te kyk. Vereis.
- ry is die aantal rye om te verreken vanaf die heel eerste sel van jou reeks . Opsioneel, 0 indien weggelaat.
- kolom , net soos ry , is die aantal verskuiwende kolomme. Ook opsioneel, ook 0 indien weggelaat.
As jy beide opsionele argumente (ry en kolom) spesifiseer, sal Google Sheets INDEX 'n rekord van 'n bestemmingsel terugstuur:
=INDEX(A1:C10, 7, 1)
Slaan een van daardie argumente oor en die funksie sal dienooreenkomstig die hele ry of kolom vir jou kry:
=INDEX(A1:C10, 7)
Hoe om INDEX MATCH in Google Blaaie te gebruik — formulevoorbeelde
Wanneer INDEX en MATCH saam in sigblaaie gebruik word, is hulle op hul magtigste. Hulle kan Google Blaaie VLOOKUP absoluut vervang en die vereiste rekord haal uit 'n tabel gebaseer opjou sleutelwaarde.
Bou jou eerste INDEX MATCH-formule vir Google Sheets
Gestel jy wil graag die voorraadinligting oor cranberry kry uit dieselfde tabel wat ek hierbo gebruik het. Ek het slegs kolomme B en C omgeruil (jy sal 'n bietjie later uitvind hoekom).
- Nou word alle bessies in kolom C gelys. Google Sheets MATCH-funksie sal jou help om die presiese ry van die cranberry: 8
=MATCH("Cranberry", C1:C10, 0)
- Sit daardie hele MATCH-formule na 'n ry -argument in die INDEX-funksie:
=INDEX(A1:C10, MATCH("Cranberry", C1:C10, 0))
Hierdie een sal die hele ry terugstuur met bosbessie daarin.
- Maar aangesien al wat jy nodig het die voorraadinligting is, spesifiseer ook die nommer van die opsoekkolom: 3
=INDEX(A1:C10, MATCH("Cranberry", C1:C10,0), 2)
- Voila !
- Jy kan verder gaan en daardie laaste kolom-aanwyser ( 2 ) prysgee. Jy sal dit glad nie nodig hê as jy net die opsoekkolom ( B1:B10 ) eerder as die hele tabel ( A1:C10 ) as die eerste argument gebruik:
=INDEX(B1:B10, MATCH("Cranberry", C1:C10, 0))
Wenk. 'n Geriefliker manier om die beskikbaarheid van verskeie bessies na te gaan, is om hulle in 'n aftreklys ( E2 ) te plaas en jou MATCH-funksie na die sel met daardie lys te verwys:
=INDEX(B1:B10, MATCH(E2, C1:C10, 0))
Sodra jy die bessie gekies het, sal die verwante waarde dienooreenkomstig verander:
Waarom INDEX MATCH in Google Sheets beter is as VLOOKUP
Jy weet reeds dat Google Sheets INDEX MATCH jou waarde in 'n tabel opsoek en 'n ander verwante rekord van dieselfde terugstuurry. En jy weet dat Google Sheets VLOOKUP presies dieselfde doen. So hoekom pla?
Die ding is, INDEX MATCH het 'n paar groot voordele bo VLOOKUP:
- Linkerkant opsoek is moontlik . Ek het vroeër die kolomme se plekke verander om hierdie een te illustreer: INDEX MATCH-funksie in Google Sheets kan en kyk na die linkerkant van die soekkolom. VLOOKUP soek altyd die heel eerste kolom van die reeks en soek vir passings aan die regterkant daarvan — anders kry dit net #N/A-foute:
- Geen gemors verwysings wanneer nuwe kolomme bygevoeg word en bestaandes skuif. As jy kolomme byvoeg of skuif, sal INDEX MATCH die veranderinge outomaties weerspieël sonder om in die resultaat in te meng. Aangesien jy kolomverwysings gebruik, word hulle onmiddellik deur Google Sheets aangepas:
Gaan voort en probeer dit met VLOOKUP doen: dit vereis die bestelnommer eerder as selverwysings vir 'n opsoekkolom. Dus, jy sal net die verkeerde waarde kry omdat 'n ander kolom dieselfde plek inneem - kolom 2 in my voorbeeld:
- Oorweeg teksgeval wanneer nodig (meer hieroor regs hieronder).
- Kan gebruik word vir vertikale opsoek gebaseer op verskeie kriteria.
Ek nooi jou uit om te kyk by die laaste twee punte in detail hieronder.
Hoofletter-sensitiewe v-soek met INDEX MATCH in Google Sheets
INDEX MATCH is 'n go-to wanneer dit kom by hoofletters-sensitiwiteit.
Gestel alle bessies word op twee maniere verkoop - los (by die toonbank geweeg) en in bokse verpak. Gevolglik is daar twee gevalle van elke bessie wat in verskillende gevalle in die lys geskryf is, elk met sy eie ID wat ook in gevalle verskil:
So hoe kan jy die voorraadinligting oor 'n bessie wat op 'n sekere manier verkoop word? VLOOKUP sal die voornaam terugstuur wat dit vind, ongeag die hoofletters daarvan.
Gelukkig kan INDEX MATCH vir Google Sheets dit korrek doen. Jy sal net een bykomende funksie moet gebruik — FIND of EXACT.
Voorbeeld 1. FIND vir hooflettersensitiewe Vlookup
FIND is 'n hooflettersensitiewe funksie in Google Blaaie wat dit wonderlik maak vir hooflettersensitiewe vertikale opsoek:
=ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))
Kom ons kyk wat gebeur in hierdie formule:
- VIND skanderings kolom C ( C2:C19 ) vir die rekord van E2 ( cherry ) met inagneming van sy letterkas. Sodra dit gevind is, "merk" die formule daardie sel met 'n getal — 1 .
- MATCH soek vir hierdie merk — 1 — in dieselfde kolom ( C ) en gee die nommer van sy ry na INDEX.
- INDEX kom af na daardie ry in kolom B ( B2:B19 ) en haal die vereiste rekord vir jou.
- Wanneer jy klaar is met die bou van die formule, druk Ctrl+Shift+Enter om ArrayFormula aan die begin by te voeg. Dit word vereis, want daarsonder sal FIND nie in skikkings (in meer as een sel) kan soek nie. Of jy kan tik' ArrayFormula ' vanaf jou sleutelbord.
Voorbeeld 2. PRESIES vir hooflettergevoelig Vlookup
As jy FIND met EXACT vervang, sal laasgenoemde rekords soek met presies dieselfde karakters, insluitend hul tekskas.
Die enigste verskil is dat PRESIES 'n passing met WAAR eerder as nommer 1 "merk". Daarom moet die eerste argument vir MATCH WAAR wees:
=ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0)))
Google Sheets INDEX MATCH met veelvuldige kriteria
Wat as daar verskeie voorwaardes is op grond waarvan jy die rekord wil gaan haal?
Kom ons kyk na die prys van die kersie wat in PP-emmers
Ek het al die kriteria in die aftreklyste in kolom F gerangskik. En dit is Google Sheets INDEX MATCH wat verskeie kriteria ondersteun, nie VLOOKUP nie. Hier is die formule wat jy sal moet gebruik:
=ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))
Moenie paniekerig raak nie! :) Sy logika is eintlik redelik eenvoudig:
- CONCATENATE(F2:F4) kombineer al drie rekords van selle met kriteria in een string soos hierdie:
CherryPP emmer raak op
Dit is 'n soeksleutel vir MATCH, of, met ander woorde, waarna jy in die tabel soek.
- A2:A24&C2:C24&D2:D24 vorm 'n reeks vir die MATCH-funksie om in te kyk. Aangesien al drie kriteria plaasvind in drie afsonderlike kolomme, op hierdie manier kombineer jy dit soort:
CherryCardboard skinkbordIn voorraad
CherryFilm-verpakking Uit voorraad
CherryPP-emmer raak min
ens .
- Die laaste argument in MATCH — 0 — maak dit moontlik om die presiese passing vir CherryPP emmerUitloop te vind tussen al daardie rye gekombineerde kolomme. Soos jy kan sien, is dit in die 3de ry.
- En dan doen INDEX sy ding: dit haal die rekord uit die 3de ry van kolom B.
- ArrayFormula word gebruik om ander funksies toe te laat om werk met skikkings.
Wenk. As jou formule nie 'n passing vind nie, sal dit 'n fout gee. Om dit te vermy, kan jy hierdie hele formule in IFERROR toevou (maak dit die eerste argument) en invoer wat jy ook al in 'n sel wil sien in plaas van foute as 'n tweede argument:
=IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Not found")
Beter alternatief vir INDEX MATCH in Google Sheets — Veelvuldige VLOOKUP-passings
Watter opsoekfunksie jy ook al verkies, VLOOKUP of INDEX MATCH, daar is 'n beter alternatief vir albei.
Meervoudige VLOOKUP Matches is 'n spesiale byvoeging vir Google Blaaie wat ontwerp is om:
- op te soek sonder formules
- in alle rigtings op te soek
- volgens verskeie toestande vir verskillende datatipes te soek : teks, nommers, datums, tyd, ens.
- haal verskeie passings, soveel as wat jy nodig het (mits daar natuurlik soveel van hulle in jou tabel is)
Die koppelvlak is eenvoudig, so jy hoef nie te twyfel of jy dit doen niealles korrek:
- Kies bronreeks.
- Stel die aantal passings en kolomme om terug te gee.
- Verfyn die toestande met behulp van die vooraf gedefinieerde operateurs ( bevat, =, nie leeg nie , tussen , ens.).
Jy sal ook in staat wees om:
- voorskou die resultaat
- besluit waar om dit te plaas
- en hoe: as 'n formule of net waardes
Moenie hierdie geleentheid misloop om die byvoeging na te gaan nie. Gaan voort en installeer dit vanaf Google Workspace Marketplace. Die tutoriaalbladsy sal elke opsie in detail verduidelik.
Ons het ook 'n spesiale instruksievideo voorberei:
Sien jou in die kommentaar hieronder of in die volgende artikel ;)