Паляпшэнне функцыі VLOOKUP

змест

Як правільна спакаваць парашут?

Карысць. Выданне 2, перапрацаванае.

Дапусцім, у нас ёсць наступная табліца заказаў:

Паляпшэнне функцыі VLOOKUP

Нам трэба ведаць, напрыклад, якая сума трэцяга заказу Іванова ці калі Пятроў аформіў сваю другую здзелку. Убудаваная функцыя 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; нумар_слупка_ад_да_атрымання_значэння)

Цяпер абмежаванні стандартнай функцыі нам не перашкода:

Паляпшэнне функцыі VLOOKUP

PS Асаблівая падзяка The_Prist за паляпшэнне функцыі, каб яна магла шукаць у закрытых кнігах.

  • Пошук і падстаноўка дадзеных з адной табліцы ў іншую з дапамогай функцыі VLOOKUP
  • «Левая VLOOKUP» з дапамогай функцый INDEX і MATCH

 

Пакінуць каментар