VLOOKUP функциясын жакшыртуу

мазмуну

Парашютту кантип туура таңуу керек?

Пайда. 2-басылышы, кайра каралган.

Бизде төмөнкү буйрутмалардын таблицасы бар дейли:

VLOOKUP функциясын жакшыртуу

Биз, мисалы, Ивановдун үчүнчү буйругунун суммасы канча болгонун же Петров экинчи келишимин качан аткарганын билишибиз керек. Камтылган VLOOKUP функциясы таблицада фамилия биринчи жолу кездешүүсүн гана издей алат жана бизге жардам бербейт. “10256 номерлүү буйруктун жетекчиси ким болгон?” деген сыяктуу суроолор. да жоопсуз калат, tk. камтылган VLOOKUP издөөнүн сол жагындагы тилкелерден маанилерди кайтара албайт.

Бул эки маселе тең бир кадам менен чечилет – келгиле, өзүбүздүн функциябызды жазалы, ал биринчисин гана эмес, жалпысынан N-чы учурду издей турган. Мындан тышкары, ал каалаган тилкелерде издөө жана натыйжаларды чыгара алат. Келгиле, аны VLOOKUP2 деп атайлы. 

Visual Basic редакторун ALT+F11 баскычтарын басып же менюдан тандоо менен ачыңыз Кызмат – Макро – Visual Basic редактору (Куралдар — Макро — Visual Basic редактору), жаңы модулду салыңыз (меню Кыстаруу – модуль) жана бул функциянын текстин ошол жерге көчүрүңүз:

Функция VLOOKUP2(Таблица Вариант катары, SearchColumnNum Качан Узун, SearchValue Variant катары, _ N Качан Узун, НатыйжаColumnNum Качан узуну) Dim i Качан Качан, iCount Качан Узундугун Тандоо Иштин түрү(Таблица) Кап "аралыгы" үчүн i = 1 үчүн Таблица.Сатарларга .Count If Table.Cells(i, SearchColumnNum) = SearchValue Анда iCount = iCount + 1 End If iCount = N болсо, VLOOKUP2 = Table.Cells(i, ResultColumnNum) Аягына чыгуу If Next If i Case "Variant()" for i = 1 То UBound(таблица) If Table(i, SearchColumnNum) = SearchValue then iCount = iCount + 1 If iCount = N Анда VLOOKUP2 = Table(i, ResultColumnNum) Чыгуу Аяктоо Эгерде Кийинки i Аяктоо Аяктоо функциясын тандаңыз  

Visual Basic редакторун жаап, Excelге кайтыңыз.

Азыр бүттү Кыстаруу – Функция (Кыстаруу — Функция) категориясында Колдонуучу аныкталган (Колдонуучу аныктаган) VLOOKUP2 функциябызды таап, аны колдоно аласыз. Функциянын синтаксиси төмөнкүдөй:

=VLOOKUP2(таблица; биз издеген_мамычанын_саны; издөө_маани; N; мамычанын_мааниден_алынган_саны)

Эми стандарттык функциянын чектөөлөрү бизге тоскоолдук кылбайт:

VLOOKUP функциясын жакшыртуу

PS Функцияны жакшыртканы үчүн The_Prist'ке өзгөчө рахмат, ал жабык китептерден издей алат.

  • VLOOKUP функциясын колдонуу менен бир таблицадан экинчи таблицага маалыматтарды табуу жана алмаштыруу
  • INDEX жана MATCH функцияларын колдонуу менен "Сол VLOOKUP"

 

Таштап Жооп