Turinys
Kai lape reikia rasti duomenis, atitinkančius tam tikrą pagrindinį įrašą, paprastai kreipiamasi į "Google Sheets" VLOOKUP. Bet štai: VLOOKUP beveik iš karto jus užklumpa su apribojimais. Todėl geriau padidinkite užduočiai skirtus išteklius išmokdami INDEX MATCH.
INDEX MATCH "Google Sheets" yra dviejų funkcijų: INDEX ir MATCH derinys. Naudojamos kartu, jos veikia kaip geresnė "Google Sheets" VLOOKUP alternatyva. Šiame tinklaraščio įraše išsiaiškinkime jų galimybes kartu. Tačiau iš pradžių norėčiau trumpai supažindinti su jų pačių vaidmenimis skaičiuoklėse.
"Google Sheets" funkcija MATCH
Norėčiau pradėti nuo "Google Sheets MATCH", nes ji tikrai paprasta. Ji nuskaito duomenis ieškodama konkrečios reikšmės ir grąžina jos poziciją:
- search_key yra tas įrašas, kurio ieškote.
- diapazonas yra eilutė arba stulpelis, kuriame reikia ieškoti. Reikalinga.
Pastaba. MATCH priima tik vienmatį masyvą: eilutę arba stulpelį.
- search_type yra neprivalomas ir apibrėžia, ar atitikmuo turi būti tikslus, ar apytikslis. Jei jis praleidžiamas, pagal nutylėjimą pasirenkamas 1:
- 1 reiškia, kad intervalas surūšiuotas didėjimo tvarka. Funkcija gauna didžiausią reikšmę, mažesnę arba lygią jūsų search_key .
- 0 funkcija ieškos tikslaus atitikmens, jei diapazonas nėra surūšiuotas.
- -1 užuomina, kad įrašai rikiuojami naudojant mažėjantį rūšiavimą. Šiuo atveju funkcija gauna mažiausią reikšmę, didesnę arba lygią jūsų search_key .
Štai pavyzdys: norėdamas gauti tam tikros uogos poziciją visų uogų sąraše, savo "Google" lapuose turiu naudoti tokią MATCH formulę:
=MATCH("Blueberry", A1:A10, 0)
"Google Sheets" INDEX funkcija
Funkcija MATCH rodo, kur ieškoti reikšmės (jos vietą intervale), o "Google Sheets" funkcija INDEX parenka pačią reikšmę pagal eilutės ir stulpelio poslinkius:
=INDEKSAS(nuoroda, [eilutė], [stulpelis])- nuoroda yra diapazonas, kuriame reikia ieškoti. Reikalaujama.
- eilutė tai eilučių skaičius, kurį reikia atitraukti nuo pirmojo diapazono langelio. Neprivaloma, 0, jei praleista.
- stulpelis , kaip ir eilutė , - kompensacinių stulpelių skaičius. Taip pat neprivaloma, taip pat 0, jei praleista.
Jei nurodysite abu pasirenkamuosius argumentus (eilutę ir stulpelį), "Google Sheets INDEX" grąžins įrašą iš paskirties ląstelės:
=INDEX(A1:C10, 7, 1)
Jei praleisite vieną iš šių argumentų, funkcija atitinkamai pateiks visą eilutę arba stulpelį:
=INDEX(A1:C10, 7)
Kaip naudoti INDEX MATCH "Google" lentelėse - formulės pavyzdžiai
INDEX ir MATCH skaičiuoklėse naudojamos kartu, jos yra pačios galingiausios. Jos gali visiškai pakeisti "Google Sheets" VLOOKUP ir pagal rakto reikšmę parinkti reikiamą įrašą iš lentelės.
Sukurkite pirmąją INDEX MATCH formulę "Google Sheets
Tarkime, norėtumėte gauti informaciją apie spanguolių atsargas iš tos pačios lentelės, kurią naudojau pirmiau. Tik sukeičiau B ir C stulpelius vietomis (kodėl, sužinosite šiek tiek vėliau).
- Dabar visos uogos yra išvardytos C stulpelyje. "Google Sheets" funkcija MATCH padės rasti tikslią spanguolių eilutę: 8
=MATCH("Spanguolė", C1:C10, 0)
- Įdėkite visą šią MATCH formulę į eilutė funkcijos INDEX argumentas:
=INDEX(A1:C10, MATCH("Spanguolė", C1:C10, 0))
Šis grąžins visą eilutę su spanguolėmis.
- Kadangi jums reikia tik informacijos apie atsargas, nurodykite ir paieškos stulpelio numerį: 3
=INDEX(A1:C10, MATCH("Spanguolė", C1:C10,0), 2)
- Voila!
- Galite eiti toliau ir atsisakyti paskutinio stulpelio indikatoriaus ( 2 ). Jei naudosite tik paieškos stulpelį ( B1:B10 ), o ne visą lentelę ( A1:C10 ) kaip pirmasis argumentas:
=INDEX(B1:B10, MATCH("Spanguolė", C1:C10, 0))
Patarimas. Patogesnis būdas patikrinti, ar yra įvairių uogų, būtų pateikti jas išskleidžiamajame sąraše ( E2 ) ir nukreipkite MATCH funkciją į ląstelę su šiuo sąrašu:
=INDEX(B1:B10, MATCH(E2, C1:C10, 0))
Pasirinkus uogą, atitinkamai pasikeis susijusi vertė:
Kodėl INDEX MATCH "Google" lentelėse yra geriau nei VLOOKUP
Jau žinote, kad "Google Sheets" INDEX MATCH ieško jūsų reikšmės lentelėje ir grąžina kitą susijusį tos pačios eilutės įrašą. Taip pat žinote, kad "Google Sheets" VLOOKUP daro lygiai tą patį. Tad kam vargintis?
Esmė ta, kad, INDEKSO RUNGTYNĖS turi kai kurie pagrindiniai privalumai per VLOOKUP:
- Galimas kairės pusės ieškojimas . Anksčiau pakeičiau stulpelių vietas, kad tai iliustruočiau: "Google Sheets" funkcija INDEX MATCH gali ieškoti ir ieško į kairę nuo paieškos stulpelio. VLOOKUP visada ieško pačiame pirmame diapazono stulpelyje ir ieško atitikmenų į dešinę - kitaip gauna tik #N/A klaidas:
- Pridedant naujus stulpelius ir perkeliant esamus stulpelius nebesuklastojamos nuorodos. Jei pridėsite ar perkelsite stulpelius, INDEX MATCH automatiškai atspindės pakeitimus, nesikišdama į rezultatą. Kadangi naudojate stulpelių nuorodas, "Google Sheets" jas iš karto pakoreguoja:
Pabandykite tai padaryti naudodami VLOOKUP: jis reikalauja užsakymo numerio, o ne nuorodos į ląstelės nuorodą į paieškos stulpelį. Taigi galiausiai gausite neteisingą vertę, nes tą pačią vietą užima kitas stulpelis - stulpelis 2 mano pavyzdyje:
- Svarsto teksto atvejį kai reikia (daugiau apie tai toliau).
- Galima naudoti vertikaliai paieškai pagal kelis kriterijus.
Kviečiu išsamiai išnagrinėti du paskutinius punktus.
Didžiosios raidžių reikšmės v paieška naudojant INDEX MATCH "Google" lapuose
INDEX MATCH yra puikus pasirinkimas, kai reikia atsižvelgti į mažųjų ir didžiųjų raidžių jautrumą.
Tarkime, kad visos uogos parduodamos dviem būdais - palaidos (sveriamos prie prekystalio) ir supakuotos į dėžes. Taigi sąraše yra du kiekvienos uogos atvejai, užrašyti skirtingais atvejais, ir kiekvienas jų turi savo ID, kuris taip pat skiriasi pagal atvejus:
Taigi, kaip galite ieškoti informacijos apie tam tikru būdu parduodamų uogų atsargas? VLOOKUP grąžins pirmą rastą pavadinimą, nesvarbu, kokiu atveju.
Laimei, "Google Sheets" programa INDEX MATCH gali tai atlikti teisingai. Jums tereikės naudoti vieną papildomą funkciją - FIND arba EXACT.
1 pavyzdys. 1. Ieškoti, kai Vlookup jautrus didžiosioms raidėms
"Google Sheets" programoje FIND yra raidžių skirtumo funkcija, todėl ji puikiai tinka vertikaliajai paieškai, kai atsižvelgiama į didžiąsias ir mažąsias raides:
=ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))
Pažiūrėkime, kas vyksta pagal šią formulę:
- FIND nuskaito C stulpelį ( C2:C19 ) įrašo iš E2 ( cherry ), atsižvelgiant į jos raidžių raidę. Kai formulė randama, ląstelė "pažymima" skaičiumi - 1 .
- MATCH ieško šio ženklo - 1 - tame pačiame stulpelyje ( C ) ir perduoda jos eilutės numerį į INDEX.
- INDEX nusileidžia į tą B stulpelio eilutę ( B2:B19 ) ir parsisiunčia reikiamą įrašą.
- Baigę kurti formulę, paspauskite Ctrl+Shift+Enter, kad pradžioje pridėtumėte ArrayFormula. Ji būtina, nes be jos FIND negalės ieškoti masyvų (daugiau nei vienoje ląstelėje). Arba galite įvesti ArrayFormula ' iš klaviatūros.
2 pavyzdys. EXACT, kai Vlookup jautrus didžiosioms raidėms
Jei vietoje FIND įrašysite EXACT, pastarasis ieškos įrašų su lygiai tokiais pačiais simboliais, įskaitant ir jų teksto raidę.
Vienintelis skirtumas yra tas, kad EXACT "žymi" atitikmenį su TRUE o ne skaičius 1 . Taigi pirmasis MATCH argumentas turėtų būti TRUE :
=ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0)))
"Google" lapų INDEX MATCH su keliais kriterijais
Ką daryti, jei yra kelios sąlygos, pagal kurias norite gauti įrašą?
Patikrinkime kainą cherry kuris parduodamas PP kibirėliai ir jau yra baigiasi :
Visus kriterijus išdėstiau išskleidžiamajame sąraše stulpelyje F. Ir būtent "Google Sheets" INDEX MATCH palaiko kelis kriterijus, o ne VLOOKUP. Štai formulė, kurią reikės naudoti:
=ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))
Nepanikuokite! :) Jo logika iš tikrųjų yra gana paprasta:
- CONCATENATE(F2:F4) sujungia visus tris įrašus iš langelių su kriterijais į vieną eilutę taip:
CherryPP bucketRunning out
Tai yra search_key MATCH arba, kitaip tariant, ko ieškote lentelėje.
- A2:A24&C2:C24&D2:D24 sudaro diapazonas Kadangi visi trys kriterijai yra trijuose atskiruose stulpeliuose, tokiu būdu juos tarsi sujungiate:
VyšniaKartoninis padėklasAtsargų sandėlyje
"CherryFilm" pakuotėNėra sandėlyje
CherryPP bucketRunning out
ir t. t.
- Paskutinis MATCH argumentas - 0 - leidžia rasti tikslią atitiktį CherryPP bucketRunning out tarp visų tų sujungtų stulpelių eilučių. Kaip matote, jis yra 3-ioje eilutėje.
- Tada INDEX atlieka savo darbą: surenka įrašą iš B stulpelio 3-iosios eilutės.
- ArrayFormula naudojama tam, kad kitos funkcijos galėtų dirbti su masyvais.
Patarimas. Jei jūsų formulė neras atitikmens, bus grąžinta klaida. Kad to išvengtumėte, galite visą šią formulę apgaubti IFERROR (kad ji taptų pirmuoju argumentu), o kaip antrąjį argumentą įrašyti tai, ką norite matyti ląstelėje vietoj klaidų:
=IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Nerastas")
Geresnė alternatyva INDEX MATCH "Google" lapuose - kelios VLOOKUP atitikmenis
Kad ir kokią paieškos funkciją - VLOOKUP ar INDEX MATCH - pasirinktumėte, yra geresnė alternatyva joms abiem.
"Multiple VLOOKUP Matches" yra specialus "Google Sheets" priedas, skirtas:
- paieška be formulių
- paieška visomis kryptimis
- paiešką pagal kelias sąlygas, taikomas skirtingiems duomenų tipams: tekstą, skaičius, datas, laiką, ir t. t.
- paimkite keletą rungtynių, tiek, kiek jums reikia (žinoma, jei tiek pat jų yra jūsų lentelėje).
Sąsaja paprasta, todėl jums nereikės abejoti, ar viską darote teisingai:
- Pasirinkite šaltinio diapazoną.
- Nustatykite grąžintinų atitikmenų ir stulpelių skaičių.
- Tiksliai sureguliuokite sąlygas naudodami iš anksto nustatytus operatorius ( yra, =, nėra tuščia , tarp ir t. t.).
Taip pat galėsite:
- rezultato peržiūra
- nuspręsti, kur jį dėti.
- ir kaip: kaip formulė ar tiesiog reikšmės
Nepraleiskite progos išbandyti priedą. Eikite ir įdiekite jį iš "Google Workspace Marketplace". Jo mokomajame puslapyje bus išsamiai paaiškinta kiekviena parinktis.
Taip pat parengėme specialų mokomąjį vaizdo įrašą:
Iki pasimatymo žemiau esančiuose komentaruose arba kitame straipsnyje ;)