VLOOKUP ֆունկցիայի բարելավում

Բովանդակություն

Ինչպե՞ս ճիշտ փաթեթավորել պարաշյուտը:

Օգուտ. Հրատարակություն 2, վերանայված։

Ենթադրենք, ունենք պատվերների հետևյալ աղյուսակը.

VLOOKUP ֆունկցիայի բարելավում

Մենք պետք է իմանանք, օրինակ, թե որքան է եղել Իվանովի երրորդ հրամանը կամ երբ է Պետրովը կատարել իր երկրորդ գործարքը։ Ներկառուցված VLOOKUP ֆունկցիան կարող է որոնել աղյուսակում միայն ազգանվան առաջին հայտնվելը և չի օգնի մեզ: Հարցեր, ինչպիսիք են «Ո՞վ էր 10256 հրամանի կառավարիչը»: նույնպես անպատասխան կմնա, տկ. Ներկառուցված VLOOKUP-ը չի կարողանում արժեքներ վերադարձնել որոնման սյունակից ձախ կողմում գտնվող սյունակներից:

Այս երկու խնդիրներն էլ լուծվում են մեկ հարվածով. եկեք գրենք մեր գործառույթը, որը կփնտրի ոչ միայն առաջինը, այլ, ընդհանուր դեպքում, N-րդ երևույթը: Ավելին, այն կկարողանա որոնել և արդյունք տալ ցանկացած սյունակում: Անվանենք, ասենք, VLOOKUP2: 

Բացեք Visual Basic խմբագրիչը՝ սեղմելով ALT+F11 կամ ընտրացանկից ընտրելով Ծառայություն – Մակրո – Visual Basic խմբագիր (Գործիքներ — Մակրո — Visual Basic խմբագիր), տեղադրեք նոր մոդուլ (մենյու Ներդիր – մոդուլ) և պատճենեք այս ֆունկցիայի տեքստը այնտեղ.

Գործառույթ VLOOKUP2 (Աղյուսակ որպես տարբերակ, SearchColumnNum այնքան երկար, SearchValue as variant, _ N այնքան երկար, ResultColumnNum այնքան երկար) Dim i այնքան երկար, iCount այնքան երկար Ընտրեք գործի տեսակ անունը(աղյուսակ) Case «Range» i = 1-ից մինչև աղյուսակ. տողեր .Count If Table.Cells(i, SearchColumnNum) = SearchValue Այնուհետեւ iCount = iCount + 1 End If If iCount = N Այնուհետեւ VLOOKUP2 = Table.Cells(i, ResultColumnNum) Ելք վերջի համար, եթե հաջորդը i Case «Variant()» i-ի համար = 1 Դեպի UBound (Աղյուսակ) Եթե Աղյուսակ (i, SearchColumnNum) = SearchValue Ապա iCount = iCount + 1 Եթե iCount = N Ապա VLOOKUP2 = Աղյուսակ (i, ResultColumnNum) Դուրս եկեք ավարտի համար, եթե հաջորդ i End Ընտրեք ավարտի գործառույթը  

Փակեք Visual Basic խմբագրիչը և վերադարձեք Excel:

Այժմ միջոցով Ներդիր – Ֆունկցիա (Տեղադրեք - գործառույթ) կատեգորիայում Օգտագործողը սահմանվում է (Օգտվողի կողմից սահմանված) դուք կարող եք գտնել մեր VLOOKUP2 ֆունկցիան և օգտագործել այն: Ֆունկցիայի շարահյուսությունը հետևյալն է.

=VLOOKUP2 (աղյուսակ; սյունակի_համարը_որտեղ_մենք փնտրում ենք; փնտրման_արժեք; N; սյունակի_համարը՝_ից_ստանալու_արժեքը)

Այժմ ստանդարտ ֆունկցիայի սահմանափակումները մեզ համար խոչընդոտ չեն.

VLOOKUP ֆունկցիայի բարելավում

PS Հատուկ շնորհակալություն The_Prist-ին գործառույթը բարելավելու համար, որպեսզի այն կարողանա փնտրել փակ գրքերում:

  • VLOOKUP ֆունկցիայի միջոցով տվյալների որոնում և փոխարինում մեկ աղյուսակից մյուսը
  • «Ձախ VLOOKUP»՝ օգտագործելով INDEX և MATCH գործառույթները

 

Թողնել գրառում