Як правільна спакаваць парашут?
Карысць. Выданне 2, перапрацаванае.
Дапусцім, у нас ёсць наступная табліца заказаў:
Нам трэба ведаць, напрыклад, якая сума трэцяга заказу Іванова ці калі Пятроў аформіў сваю другую здзелку. Убудаваная функцыя VLOOKUP можа шукаць толькі першае ўваходжанне прозвішча ў табліцы і не дапаможа нам. Такія пытанні, як «Хто быў кіраўніком заказу № 10256?» таксама застанецца без адказу, т.к. убудаваны VLOOKUP не можа вярнуць значэнні са слупкоў злева ад пошукавага.
Абедзве гэтыя задачы вырашаюцца адным махам - давайце напішам сваю функцыю, якая будзе шукаць не толькі першае, але, у агульным выпадку, і N-е ўваходжанне. Больш за тое, ён зможа шукаць і выдаваць вынікі ў любых слупках. Назавем гэта, скажам, VLOOKUP2.
Адкрыйце рэдактар Visual Basic, націснуўшы ALT+F11 або выбраўшы з меню Сэрвіс – Макрас – Рэдактар Visual Basic (Інструменты — Макрас — Рэдактар Visual Basic), устаўце новы модуль (меню Устаўка – модуль) і скапіруйце туды тэкст гэтай функцыі:
Функцыя VLOOKUP2(Табліца як варыянт, SearchColumnNum As Long, SearchValue як варыянт, _ N As Long, ResultColumnNum As Long) Dim i As Long, iCount As Long Выберыце Case TypeName(Table) Case "Range" For i = 1 To Table.Rows .Count If Table.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If If iCount = N Then VLOOKUP2 = Table.Cells(i, ResultColumnNum) Exit For End If Next i Case "Variant()" For i = 1 To UBound(Table) If Table(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 If iCount = N Then VLOOKUP2 = Table(i, ResultColumnNum) Exit For End If Next i End Select End Function
Зачыніце рэдактар Visual Basic і вярніцеся ў Excel.
Зараз праз Устаўка – функцыя (Уставіць — функцыя) у катэгорыі Карыстальнік (Вызначаецца карыстальнікам) вы можаце знайсці нашу функцыю VLOOKUP2 і выкарыстоўваць яе. Сінтаксіс функцыі наступны:
=VLOOKUP2(табліца; нумар_слупка_дзе_мы_шукаем; шуканае_значэнне; N; нумар_слупка_ад_да_атрымання_значэння)
Цяпер абмежаванні стандартнай функцыі нам не перашкода:
PS Асаблівая падзяка The_Prist за паляпшэнне функцыі, каб яна магла шукаць у закрытых кнігах.
- Пошук і падстаноўка дадзеных з адной табліцы ў іншую з дапамогай функцыі VLOOKUP
- «Левая VLOOKUP» з дапамогай функцый INDEX і MATCH