Ինչպե՞ս ճիշտ փաթեթավորել պարաշյուտը:
Օգուտ. Հրատարակություն 2, վերանայված։
Ենթադրենք, ունենք պատվերների հետևյալ աղյուսակը.
Մենք պետք է իմանանք, օրինակ, թե որքան է եղել Իվանովի երրորդ հրամանը կամ երբ է Պետրովը կատարել իր երկրորդ գործարքը։ Ներկառուցված 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; սյունակի_համարը՝_ից_ստանալու_արժեքը)
Այժմ ստանդարտ ֆունկցիայի սահմանափակումները մեզ համար խոչընդոտ չեն.
PS Հատուկ շնորհակալություն The_Prist-ին գործառույթը բարելավելու համար, որպեսզի այն կարողանա փնտրել փակ գրքերում:
- VLOOKUP ֆունկցիայի միջոցով տվյալների որոնում և փոխարինում մեկ աղյուսակից մյուսը
- «Ձախ VLOOKUP»՝ օգտագործելով INDEX և MATCH գործառույթները