Բովանդակություն
Ուսուցումը բացատրում է, թե ինչպես Excel VLOOKUP-ը դարձնել մեծատառերի զգայուն, ցույց է տալիս մի քանի այլ բանաձևեր, որոնք տարբերում են տեքստի տառերը և մատնանշում յուրաքանչյուր ֆունկցիայի ուժեղ և սահմանափակում:
Կարծում եմ, որ ամեն Excel-ի օգտատերը գիտի, թե ինչ ֆունկցիա է կատարում Excel-ում ուղղահայաց որոնում: Ճիշտ է, դա VLOOKUP-ն է: Այնուամենայնիվ, շատ քչերը գիտեն, որ Excel-ի VLOOKUP-ը մեծատառերի նկատմամբ զգայուն չէ, ինչը նշանակում է, որ այն վերաբերվում է փոքրատառ և մեծատառ տառերին որպես նույն նիշերին:
Ահա մի արագ օրինակ, որը ցույց է տալիս VLOOKUP-ի անկարողությունը տարբերակել տեքստային տառերը: Ենթադրենք, եթե A2 բջիջում ունեք «հաշիվ», իսկ A4-ում՝ «Bill»: Ստորև բերված բանաձևը կբռնի «հաշիվը», քանի որ այն առաջինն է որոնման զանգվածում և վերադարձնում է համապատասխան արժեք B2-ից:
=VLOOKUP("Bill", A2:B4, 2, FALSE)
Այնուհետև այս հոդված, ես ձեզ ցույց կտամ VLOOKUP-ը մեծատառերի նկատմամբ զգայուն դարձնելու միջոց: Մենք կուսումնասիրենք նաև մի քանի այլ գործառույթներ, որոնք կարող են կատարել մեծատառերի զգայուն համընկնումը Excel-ում:
Տառապանին զգայուն VLOOKUP բանաձև
Ինչպես նշվեց վերևում, սովորական VLOOKUP բանաձևը չի ճանաչում նամակի գործը. Այնուամենայնիվ, Excel VLOOKUP-ը մեծատառերի նկատմամբ զգայուն դարձնելու միջոց կա, ինչպես ցույց է տրված ստորև բերված օրինակում:
Ենթադրենք, որ դուք ունեք Նյութի ID-ներ սյունակ Ա-ում և ցանկանում եք որոշել ապրանքի գինը և մեկնաբանությունը: B և C սյունակներից: Խնդիրն այն է, որ ID-ները ներառում են և՛ փոքրատառ, և՛ մեծատառ նիշերը: Օրինակ, A4 (001Tvci3u) և A5 (001Tvci3U) արժեքները տարբերվում են միայնվերջին նիշը, համապատասխանաբար, «u» և «U»:
Երբ փնտրում եք «001Tvci3 U », ստանդարտ VLOOKUP բանաձևը թողարկում է $90, որը կապված է «001Tvci3 u»-ի հետ: », քանի որ որոնման զանգվածում այն գալիս է «001Tvci3 U »-ից առաջ: Բայց սա այն չէ, ինչ ցանկանում եք, այնպես չէ՞:
=VLOOKUP(F2, A2:C7, 2, FALSE)
Excel-ում մեծատառերի զգայուն որոնում կատարելու համար մենք համատեղում ենք VLOOKUP, CHOOSE և EXACT: ֆունկցիաներ՝
VLOOKUP(ՃԻՇՏ, CHOOSE({1,2}, EXACT( որոնման_արժեք, որոնման_զանգված), վերադարձի_զանգված), 2, 0)Այս ընդհանուր բանաձևը հիանալի կերպով աշխատում է բոլոր իրավիճակներում: Դուք նույնիսկ կարող եք փնտրել աջից ձախ , մի բան, որը սովորական VLOOKUP բանաձևն ի վիճակի չէ անել: Փառք Պուրիային այս պարզ և էլեգանտ լուծումն առաջարկելու համար:
Մեր դեպքում իրական բանաձևերը հետևյալն են.
F3-ում գինը հանելու համար.
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), B2:B7), 2, FALSE)
F4 մեկնաբանությունը ստանալու համար՝
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7), 2, FALSE)
Նշում. Excel 365-ից բացի բոլոր Excel տարբերակներում սա աշխատում է միայն որպես զանգվածի բանաձև, այնպես որ հիշեք, որ սեղմեք Ctrl + Shift + Enter այն ճիշտ ավարտելու համար: Excel 365-ում դինամիկ զանգվածների աջակցության շնորհիվ այն նաև աշխատում է որպես սովորական բանաձև։
Ինչպես է աշխատում այս բանաձևը.
Հիմնական մասը, որը կատարում է հնարքը, CHOOSE բանաձևն է՝ ներդիր EXACT.
CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7)
Ահա, EXACT ֆունկցիան համեմատում է F2-ի արժեքը A2:A7-ի յուրաքանչյուր արժեքի հետ և վերադարձնում է TRUE, եթե դրանք միանգամայն նույնն են, ներառյալ տառերի մեծությունը,FALSE հակառակ դեպքում՝
{FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}
CHOOSE-ի index_num արգումենտի համար մենք օգտագործում ենք զանգվածի հաստատունը {1,2}: Արդյունքում ֆունկցիան միավորում է վերը նշված զանգվածի տրամաբանական արժեքները և C2:C7 արժեքները երկչափ զանգվածի մեջ, ինչպիսին է.
{FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}
VLOOKUP ֆունկցիան այն վերցնում է այնտեղից: և որոնում է որոնման արժեքը (որը ճշմարիտ է) երկչափ զանգվածի 1-ին սյունակում (ներկայացվում է տրամաբանական արժեքներով) և վերադարձնում համընկնում 2-րդ սյունակից, որն այն գինն է, որը մենք փնտրում ենք.
VLOOKUP(TRUE, {FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}, 2, 0)
Գրախոսների զգայուն XLOOKUP բանաձև
Microsoft 365 բաժանորդները կարող են Excel-ում կատարել մեծատառերի զգայուն որոնում նույնիսկ ավելի պարզ բանաձևով: Ինչպես կարող եք կռահել, ես խոսում եմ VLOOKUP-ի ավելի հզոր իրավահաջորդի՝ XLOOKUP ֆունկցիայի մասին:
Քանի որ XLOOKUP-ը գործում է առանձին որոնման և վերադարձման զանգվածների վրա, մեզ հարկավոր չէ երկչափ զանգվածի հնարքը նախորդից: օրինակ. Պարզապես օգտագործեք EXACT որոնման_զանգված արգումենտի համար.
XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array , " Չի գտնվել»)Վերջին արգումենտը («Չի գտնվել») պարտադիր չէ: Այն պարզապես սահմանում է, թե ինչ արժեք պետք է վերադարձնել, եթե համընկնում չգտնվի: Եթե բաց թողնեք այն, ապա ստանդարտ #N/A սխալը կվերադարձվի, եթե բանաձևը ոչինչ չգտնի:
Մեր օրինակելի աղյուսակի համար սրանք մեծատառերի զգայուն XLOOKUP բանաձևերն են, որոնք պետք է օգտագործել:
F3-ում գինը ստանալու համար՝
=XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Not found")
Արդյունք հանելու համարմեկնաբանություն F4:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Not found")
Ինչպես է աշխատում այս բանաձևը.
Ինչպես նախորդ օրինակում, EXACT-ը վերադարձնում է TRUE և FALSE արժեքների զանգված, որտեղ TRUE-ը ներկայացնում է մեծատառերի համընկնում: XLOOKUP-ը վերը նշված զանգվածում որոնում է TRUE արժեքը և վերադարձնում համընկնում return_array -ից: Խնդրում ենք նկատի ունենալ, որ եթե որոնման սյունակում երկու կամ ավելի ճիշտ նույն արժեքներ կան (ներառյալ տառերի տառերը), ապա բանաձևը կվերադարձնի առաջին գտնված համընկնում:
XLOOKUP սահմանափակում . հասանելի է միայն Excel 365-ում և Excel 2021-ում:
SUMPRODUCT - մեծատառերի զգայուն որոնում` համապատասխան թվերը վերադարձնելու համար
Ինչպես հասկանում եք վերնագրից, SUMPRODUCT-ը ևս մեկ Excel գործառույթ է, որը կարող է կատարել մեծատառերի զգայուն որոնում: , բայց այն կարող է վերադարձնել միայն թվային արժեքներ : Եթե դա ձեր դեպքը չէ, ապա անցեք INDEX MATCH օրինակին, որը լուծում է տալիս տվյալների բոլոր տեսակների համար:
Ինչպես հավանաբար գիտեք, Excel-ի SUMPRODUCT-ը բազմապատկում է բաղադրիչները նշված զանգվածներում և վերադարձնում ապրանքների գումարը: Քանի որ մենք ուզում ենք մեծատառերի նկատմամբ զգայուն որոնում, մենք օգտագործում ենք EXACT ֆունկցիան առաջին զանգվածը ստանալու համար.
=SUMPRODUCT((EXACT(A2:A7,F2) * (B2:B7)))
Ցավոք, SUMPRODUCT ֆունկցիան չի կարող վերադարձնել տեքստի համընկնում, քանի որ տեքստի արժեքները չեն կարող բազմապատկվել: Այս դեպքում դուք կստանաք #ԱՐԺԵՔ! սխալ, ինչպիսին F4 բջիջում է ստորև ներկայացված սքրինշոթում.
Ինչպես է աշխատում այս բանաձևը.
Ինչպես VLOOKUP օրինակում, EXACT ֆունկցիոնալ ստուգումներF2-ի արժեքը A2:A7-ի բոլոր արժեքների համեմատ և վերադարձնում է TRUE մեծատառերի համընկնումների համար, FALSE հակառակ դեպքում.
SUMPRODUCT(({FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}*{155;186;90;54;159;28}))
Բանաձևերի մեծ մասում Excel-ը TRUE-ն գնահատում է 1-ի, իսկ FALSE-ը՝ 0-ի: Այսպիսով, երբ SUMPRODUCT-ը բազմապատկում է երկու զանգվածների տարրերը նույն դիրքերում, բոլոր չհամընկնող (FALSE) զրո են դառնում.
SUMPRODUCT({0;0;0;54;0;0})
Արդյունքում բանաձևը վերադարձնում է թվեր B սյունակ, որը համապատասխանում է A սյունակի ճշգրիտ մեծատառերի համընկնումին:
SUMPRODUCT սահմանափակում . կարող է վերադարձնել միայն թվային արժեքներ:
INDEX MATCH - մեծատառերի նկատմամբ զգայուն որոնում բոլոր տվյալների տեսակները
Վերջապես, մենք մոտ ենք առանց սահմանափակումների մեծատառերի որոնման բանաձևի, որն աշխատում է Excel-ի բոլոր տարբերակներում և տվյալների բոլոր հավաքածուներում:
Այս օրինակը վերջինն է ոչ միայն այն պատճառով, որ լավագույնը պահվում է վերջինի համար, բայց նաև այն պատճառով, որ նախորդ օրինակներում ստացած գիտելիքները կարող են օգնել ձեզ ավելի լավ հասկանալ մեծատառերի զգայուն MATCH INDEX բանաձևը:
INDEX և MATCH ֆունկցիաների համակցությունը հաճախ օգտագործվում է: Նախկինում cel-ը՝ որպես VLOOKUP-ի ավելի ճկուն և բազմակողմանի այլընտրանք: Հետևյալ հոդվածը լավ աշխատանք է կատարում (հուսով եմ :) բացատրելով, թե ինչպես են այս երկու գործառույթները միասին աշխատում. VLOOKUP-ի փոխարեն INDEX MATCH-ի օգտագործումը:
Այստեղ ես պարզապես կհիշեցնեմ ձեզ հիմնական կետերը.
- MATCH ֆունկցիան որոնում է որոնման արժեքը նշված որոնման զանգվածում և վերադարձնում դրա հարաբերական դիրքը:
- ՀարաբերականըՈրոնման արժեքի դիրքը ուղղակիորեն անցնում է INDEX ֆունկցիայի row_num արգումենտին, որը հանձնարարում է նրան արժեք վերադարձնել այդ տողից:
Տեքստի տառերը ճանաչելու բանաձևի համար դուք պարզապես պետք է ևս մեկ ֆունկցիա ավելացնել դասական INDEX MATCH համակցությանը: Ակնհայտ է, որ ձեզ կրկին անհրաժեշտ է EXACT ֆունկցիան.
INDEX( վերադարձի_զանգված , MATCH(ՃԻՇՏ, EXACT( որոնման_արժեքը , որոնման_զանգված ), 0))F3-ում իրական բանաձևը հետևյալն է.
=INDEX(B2:B7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
F4-ում մենք օգտագործում ենք այս մեկը.
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
Խնդրում ենք հիշել, որ այն աշխատում է միայն որպես զանգվածի բանաձև բոլոր տարբերակներում, բացի Excel 365-ից, այնպես որ համոզվեք, որ մուտքագրեք այն՝ սեղմելով Ctrl + Shift + Enter ստեղները միասին: Եթե ճիշտ արվի, բանաձևը կփակվի գանգուր փակագծերի մեջ, ինչպես ցույց է տրված ստորև ներկայացված սքրինշոթում.
Ինչպես է աշխատում այս բանաձևը.
Ինչպես բոլոր նախորդ օրինակներում, EXACT-ը վերադարձնում է TRUE A2:A7-ի յուրաքանչյուր արժեքի համար, որը ճշգրտորեն համապատասխանում է F2-ի արժեքին: Քանի որ մենք օգտագործում ենք TRUE-ը MATCH-ի որոնման_արժեքը -ի համար, այն վերադարձնում է ճշգրիտ մեծատառերի համընկնման հարաբերական դիրքը, ինչը հենց այն է, ինչ INDEX-ին անհրաժեշտ է B2:B7-ից համապատասխանությունը վերադարձնելու համար:
Ընդլայնված մեծատառերի նկատմամբ զգայուն որոնման բանաձև
Վերոհիշյալ INDEX MATCH բանաձևը կատարյալ տեսք ունի, չէ՞: Բայց իրականում դա այդպես չէ։ Թույլ տվեք ցույց տալ ձեզ, թե ինչու:
Ենթադրենք, որոնման արժեքին համապատասխանող վերադարձի սյունակի բջիջը դատարկ է: Ի՞նչ կվերադարձնի բանաձևը: Ոչինչ։Եվ հիմա, եկեք տեսնենք, թե իրականում ինչ է վերադարձնում.
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
Վա՜յ, բանաձևը վերադարձնում է զրո: Միգուցե դա իսկապես կարևոր չէ, երբ գործ ունենք բացառապես տեքստային արժեքների հետ: Այնուամենայնիվ, եթե ձեր աշխատաթերթը պարունակում է թվեր, և դրանցից մի քանիսը իրական զրո են, սա խնդիր է:
Իրականում, նախկինում քննարկված բոլոր այլ որոնման բանաձևերը նույն կերպ են վարվում: Բայց հիմա դուք ուզում եք անբասիր բանաձև, այնպես չէ՞:
Որպեսզի INDEX MATCH բանաձևը բացարձակապես կատարյալ լինի, դուք այն փաթաթում եք IF ֆունկցիայի մեջ, որը ստուգում է, թե արդյոք վերադարձի բջիջը դատարկ է և ոչինչ չի վերադարձնում: այս դեպքում՝
=IF(INDIRECT("C"&(1+MATCH(TRUE,EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "")
Վերոնշյալ բանաձևում.
- «C»-ը վերադարձի սյունակն է։
- «1»-ը համարն է։ որը MATCH ֆունկցիայի կողմից վերադարձված բջիջի հարաբերական դիրքը վերածում է իսկական բջջի հասցեի :
Օրինակ, որոնման զանգվածը մեր MATCH ֆունկցիայի մեջ A2:A7 է, այսինքն՝ A2 բջիջի հարաբերական դիրքը «1» է, քանի որ սա զանգվածի առաջին բջիջն է: Բայց իրականում որոնման զանգվածը սկսվում է 2-րդ շարքից: Տարբերությունը փոխհատուցելու համար մենք ավելացնում ենք 1, այնպես որ INDIRECT ֆունկցիան արժեք կվերադարձնի աջ բջիջից:
Սքրինշոթները ցույց են տալիս բարելավված մեծատառերի զգայուն INDEX-ը: MATCH բանաձևը գործողության մեջ է:
Եթե վերադարձի բջիջը դատարկ է, բանաձևը ոչինչ չի տալիս (դատարկ տող):
Եթե վերադարձի բջիջը պարունակում է զրո: , բանաձևը վերադարձնում է 0:
Եթե ցանկանում եքցուցադրել որոշ հաղորդագրություն, երբ վերադարձի բջիջը դատարկ է, փոխարինեք դատարկ տողը ("") IF-ի վերջին արգումենտում որոշ տեքստով.
=IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "There is nothing to return, sorry.")
Կատարեք մեծատառերի զգայուն VLOOKUP-ը հեշտ ճանապարհով
Մեր Ultimate Suite-ի օգտատերերը Excel-ի համար ունեն հատուկ գործիք, որը հեշտացնում է մեծ և բարդ աղյուսակներում փնտրելն ավելի հեշտ և առանց սթրեսի: Լավագույնն այն է, որ Merge Two Tables-ն ունի մեծատառերի զգայուն տարբերակ, և ստորև բերված օրինակը ցույց է տալիս այն գործողության մեջ:
Ենթադրենք, որ ցանկանում եք քաշել Qty: Փնտրել աղյուսակից մինչև Հիմնական աղյուսակը` հիմնված եզակի տարրի ID-ների վրա. wizard-ը և կատարեք հետևյալ քայլերը.
- Ընտրեք հիմնական աղյուսակը, որտեղ պետք է ներգրավվեն նոր տվյալներ:
- Ընտրեք որոնման աղյուսակը, որտեղ փնտրել նոր տվյալները:
- Ընտրեք մեկ կամ մի քանի հիմնական սյունակ (մեր դեպքում նյութի ID-ն): Եվ համոզվեք, որ ստուգեք Փոքրատառերի համընկնում վանդակը:
Մի պահ անց դուք կստանաք ցանկալի արդյունքը :)
Ահա թե ինչպես կարելի է որոնել Excel-ում՝ հաշվի առնելով տեքստի գործը: Ես շնորհակալություն եմ հայտնում կարդալու համար և հուսով եմ, որ հաջորդ շաբաթ կտեսնենք ձեզ մեր բլոգում:
Ներբեռնելու համար վարժեցեք աշխատանքային գրքույկը
Փոքրատառերի զգայուն VLOOKUP օրինակներ (.xlsx ֆայլ)