Мазмұны
Оқулық басқа жұмыс парағынан немесе жұмыс кітабынан деректерді көшіру үшін VLOOKUP функциясын пайдалану жолын көрсетеді, Vlookup бірнеше парақтарда және әртүрлі парақтардағы мәндерді әртүрлі ұяшықтарға қайтару үшін динамикалық түрде іздеу.
Excel бағдарламасында кейбір ақпаратты іздегенде, барлық деректер бір парақта болатын сирек жағдай. Көбінесе бірнеше парақтар немесе тіпті әртүрлі жұмыс кітаптары бойынша іздеуге тура келеді. Жақсы жаңалық, Microsoft Excel мұны істеудің бірнеше әдісін ұсынады, ал жаман жаңалық - барлық жолдар стандартты VLOOKUP формуласына қарағанда біршама күрделірек. Бірақ сәл шыдамдылықпен, біз оларды анықтаймыз :)
Екі парақ арасындағы ВLOOKUP әдісі
Бастау үшін ең қарапайым жағдайды зерттеп көрейік - VLOOKUP көмегімен басқа жұмыс парағынан деректерді көшіру. Бұл бір жұмыс парағында іздейтін кәдімгі VLOOKUP формуласына өте ұқсас. Айырмашылығы мынада, сіз формуланы іздеу ауқымы қай жұмыс парағында орналасқанын айту үшін кесте_жиымы аргументіне парақ атауын қосасыз.
Басқа парақтан VLOOKUP үшін жалпы формула келесідей:
VLOOKUP(іздеу_мәні, парақ! диапазоны, col_index_num, [ауқым_іздеу])Мысал ретінде, қаң есебінен Жиынтық ға дейін сатылым көрсеткіштерін алайық. 2> парақ. Ол үшін келесі аргументтерді анықтаймыз:
- Іздеу_мәндері Жиынтық парағындағы А бағанында орналасқан және бізVLOOKUP:
VLOOKUP($A2, 'West'!$A$2:$C$6 , 2, FALSE)
Соңында, бұл өте стандартты VLOOKUP формуласы Батыс парағындағы A2:C6 ауқымының бірінші бағанындағы A2 мәнін іздейді және 2-бағаннан сәйкес келеді. Міне!
Бірнеше парақтардағы деректерді әртүрлі ұяшықтарға қайтару үшін динамикалық VLOOKUP
Алдымен осы контексте "динамикалық" сөзінің нақты нені білдіретінін және бұл формуланың қалай болатынын анықтап алайық. алдыңғылардан өзгеше.
Бір пішімдегі деректердің үлкен бөліктері бірнеше электрондық кестелерге бөлінген болса, ақпаратты әртүрлі парақтардан әртүрлі ұяшықтарға шығарып алғыңыз келуі мүмкін. Төмендегі сурет тұжырымдаманы көрсетеді:
Бірегей идентификатор негізінде белгілі бір парақтан мән шығаратын алдыңғы формулалардан айырмашылығы, бұл жолы біз бірнеше парақтан мәндерді шығаруды іздейміз. уақыт.
Бұл тапсырманың екі түрлі шешімі бар. Екі жағдайда да кішкене дайындық жұмыстарын орындау керек және әрбір іздеу парағында деректер ұяшықтары үшін атаулы ауқымдарды жасау керек. Бұл мысал үшін біз келесі ауқымдарды анықтадық:
- Шығыс_сату - Шығыс парағында A2:B6
- Солтүстік_сату - A2: Солтүстік парақта B6
- Оңтүстік_сату - Оңтүстік парақта A2:B6
- Батыс_сату - Батыс парағында A2:B6
VLOOKUP және кірістірілген IFs
Егер іздейтін парақтардың жеткілікті саны болса, кірістірілген IF функцияларын пайдалана аласыз.алдын ала анықталған ұяшықтардағы кілт сөздер негізінде парақты таңдау үшін (біздің жағдайда B1 мен D1 ұяшықтары).
A2 ішіндегі іздеу мәнімен формула келесідей болады:
=VLOOKUP($A2, IF(B$1="east", East_Sales, IF(B$1="north", North_Sales, IF(B$1="south", South_Sales, IF(B$1="west", West_Sales)))), 2, FALSE)
Ағылшын тіліне аударылған IF бөлігінде былай делінген:
Егер B1 Шығыс болса, East_Sales деп аталатын ауқымды қараңыз; егер B1 Солтүстік болса, North_Sales деп аталатын ауқымды қараңыз; егер B1 Оңтүстік болса, Оңтүстік_Сату деп аталатын ауқымды қараңыз; және егер B1 Батыс болса, Батыс_Сату деп аталатын ауқымды қараңыз.
IF қайтаратын ауқым VLOOKUP қолданбасының кесте_массивіне өтеді, ол тартады сәйкес парақтағы 2-бағандағы сәйкес мән.
Іздеу мәні ($A2 - абсолютті баған және қатысты жол) және IF логикалық сынағы (B$1 - салыстырмалы баған) үшін аралас сілтемелерді ақылды пайдалану және абсолютті жол) формуланы басқа ұяшықтарға ешбір өзгеріссіз көшіруге мүмкіндік береді - Excel сілтемелерді жол мен бағанның салыстырмалы орнына қарай автоматты түрде реттейді.
Сонымен, формуланы B2 ішіне енгіземіз, оны дұрыс көшіреміз және қажетінше көп бағандар мен жолдарға дейін төмендетіп, келесі нәтижеге қол жеткізіңіз:
ЖАМА ТҮЗУГЕ КАРАУ
Көп парақтармен жұмыс істегенде, бірнеше кірістірілген деңгейлер формуланы да жасай алады. ұзақ және оқуға қиын. Әлдеқайда жақсы әдіс - динамикалық vlookup диапазонын ЖАНА көмегімен жасау:
=VLOOKUP($A2, INDIRECT(B$1&"_Sales"), 2, FALSE)
Мұнда біз мынаны қамтитын ұяшыққа сілтемені біріктіреміз.аталған ауқымның бірегей бөлігі (B1) және жалпы бөлігі (_Сату). Бұл Excel бағдарламасында түсінікті ауқым атауына DIRECT түрлендіретін "East_Sales" сияқты мәтіндік жолды жасайды.
Нәтижесінде сіз парақтардың кез келген санында әдемі жұмыс істейтін ықшам формуланы аласыз:
Міне, Excel бағдарламасындағы парақтар мен файлдар арасында Vlookup әдісі. Оқығаныңыз үшін алғыс айтамын және келесі аптада блогымызда көреміз деп үміттенемін!
Жүктеп алуға арналған жұмыс кітабы
Бірнеше парақ мысалдарын (.xlsx файлы) Vlookup
бірінші деректер ұяшығын қараңыз, ол A2. - Кесте_жиымы - қаңтар парағындағы A2:B6 ауқымы. Оған сілтеме жасау үшін диапазон сілтемесіне парақ атауынан кейін леп белгісімен префикс қойыңыз: Jan!$A$2:$B$6.
Формуланы басқа ұяшықтарға көшіру кезінде оның өзгеруін болдырмау үшін ауқымды абсолютті ұяшық сілтемелерімен құлыптайтынымызға назар аударыңыз.
Col_index_num - 2, себебі біз мәнді көшіргіміз келеді. В бағанынан, ол кесте массивіндегі 2-баған болып табылады.
- Ауқымдық_іздеу дәл сәйкестікті іздеу үшін ЖАЛҒАН мәніне орнатылған.
Аргументтерді біріктіріп, біз мына формуланы аламыз:
=VLOOKUP(A2, Jan!$A$2:$B$6, 2, FALSE)
Формуланы бағанның төменгі жағына сүйреңіз, сонда сіз мына нәтиже аласыз:
ұқсас жолмен, сіз Ақпан және Наурыз парақтарынан Vlookup жасай аласыз:
=VLOOKUP(A2, Feb!$A$2:$B$6, 2, FALSE)
=VLOOKUP(A2, Mar!$A$2:$B$6, 2, FALSE)
Кеңестер мен ескертпелер:
- Егер парақ атауында бос орындар немесе алфавиттік емес таңбалар болса, ол <сияқты жалғыз тырнақшаға алынуы керек. 1>"Қаңтардағы сатылымдар"!$A$2:$B$6 . Қосымша ақпарат алу үшін Excel бағдарламасындағы басқа параққа сілтеме жасау бөлімін қараңыз.
- Формулада парақ атауын тікелей терудің орнына, іздеу жұмыс парағына ауысып, сол жерден ауқымды таңдауға болады. Excel бағдарламасы дұрыс синтаксисі бар сілтемені автоматты түрде енгізеді, бұл атауды тексеру және ақауларды жою кезіндегі қиындықтан құтқарады.
Басқа жұмыс кітабынан дыбыс іздеу
Екі арасындағы VLOOKUP үшінжұмыс кітаптарында файл атауын төртбұрышты жақшаға, одан кейін парақ атауы мен леп белгісін қосыңыз.
Мысалы, Қаң парағындағы A2:B6 ауқымында A2 мәнін іздеу үшін Sales_reports.xlsx жұмыс кітабында мына формуланы пайдаланыңыз:
=VLOOKUP(A2, [Sales_reports.xlsx]Jan!$A$2:$B$6, 2, FALSE)
Толық мәліметтер алу үшін Excel бағдарламасындағы басқа жұмыс кітабынан VLOOKUP бөлімін қараңыз.
Vlookup. IFERROR бар бірнеше парақ
Екіден көп парақтардың арасында іздеу қажет болғанда, ең оңай шешім - VLOOKUP функциясын IFERROR-мен бірге пайдалану. Идея бірнеше жұмыс парақтарын бір-бірден тексеру үшін бірнеше IFERROR функцияларын кірістіру болып табылады: егер бірінші VLOOKUP бірінші парақта сәйкестік таппаса, келесі парақтан іздеңіз және т.б.
IFERROR(VLOOKUP(…), ҚАТЕ(VLOOKUP(…), …, " Табылмады "))Бұл тәсіл нақты өмір деректерінде қалай жұмыс істейтінін көру үшін келесі мысалды қарастырайық. Төменде Батыс және Шығыс парақтарындағы тапсырыс нөмірін іздеу арқылы элементтер атауларымен және сомаларымен толтырғымыз келетін Жиынтық кестесі берілген:
Біріншіден, біз заттарды тартамыз. Ол үшін VLOOKUP формуласына Шығыс парағындағы A2 ішінен тапсырыс нөмірін іздеуді және мәнді B бағанынан қайтаруды тапсырамыз ( кесте_массивіндегі A2:C6 2-баған). Егер дәл сәйкестік табылмаса, Батыс парағында іздеңіз. Егер Vlookup екеуі де сәтсіз болса, "Табылды" деп қайтарыңыз.
=IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 2, FALSE), "Not found"))
Сомды қайтару үшін,жай ғана баған индексінің нөмірін 3-ке өзгертіңіз:
=IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 3, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 3, FALSE), "Not found"))
Кеңес. Қажет болса, әртүрлі VLOOKUP функциялары үшін әртүрлі кесте массивтерін көрсетуге болады. Бұл мысалда екі іздеу парағында да жолдар саны бірдей (A2:C6), бірақ жұмыс парақтарыңыздың өлшемі әртүрлі болуы мүмкін.
Бірнеше жұмыс кітаптарындағы дыбысты іздеу
Екі немесе одан да көп жұмыс кітаптарының арасында дыбысты іздеу үшін жұмыс кітабының атын төртбұрышты жақшаға алып, оны парақ атауының алдына қойыңыз. Мысалы, екі түрлі файлда ( Кітап1 және Кітап2 ) бір формуламен Vlookup жасау әдісі мынада:
=IFERROR(VLOOKUP(A2, [Book1.xlsx]East!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, [Book2.xlsx]West!$A$2:$C$6, 2, FALSE),"Not found"))
Бірнеше бағандарды Vlookup үшін баған индексінің нөмірін динамикалық ету
Бірнеше бағандардан деректерді қайтару қажет болған жағдайда, col_index_num динамикалық ету уақытты үнемдеуі мүмкін. Орындалатын бірнеше түзетулер бар:
- col_index_num аргументі үшін көрсетілген массивтегі бағандар санын қайтаратын COLUMNS функциясын пайдаланыңыз: COLUMNS($A$1) :B$1). (Жол координатасы маңызды емес, ол кез келген жол болуы мүмкін.)
- іздеу_мәні аргументінде баған сілтемесін $ белгісімен ($A2) құлыптаңыз, сондықтан ол қалады. формуланы басқа бағандарға көшіру кезінде бекітіледі.
Нәтижесінде формула қай бағанға көшірілгеніне байланысты әртүрлі бағандардан сәйкес мәндерді шығаратын динамикалық формула түрін аласыз:
=IFERROR(VLOOKUP($A2, East!$A$2:$C$6, COLUMNS($A$1:B$1), FALSE), IFERROR(VLOOKUP($A2, West!$A$2:$C$6, COLUMNS($A$1:B$1), FALSE), "Not found"))
B бағанына енгізілгенде, БАҒАНДАР($A$1:B$1)2-ге бағалайды, VLOOKUP-ке кесте массивінің 2-бағанынан мәнді қайтаруды айтады.
C бағанына көшірілгенде (яғни формуланы B2-ден C2-ге сүйреп апардыңыз), B$1 C$1-ге өзгереді, себебі баған сілтемесі салыстырмалы. Демек, COLUMNS($A$1:C$1) VLOOKUP функциясын 3-бағандағы мәнді қайтаруға мәжбүрлей отырып, 3 мәнін бағалайды.
Бұл формула 2 - 3 іздеу парағы үшін тамаша жұмыс істейді. Егер сізде көбірек болса, қайталанатын IFERROR-лар тым ауыр болады. Келесі мысал біршама күрделірек, бірақ әлдеқайда талғампаз тәсілді көрсетеді.
ЖАМАМА арқылы бірнеше парақтарды іздеу
Excel бағдарламасындағы бірнеше парақтар арасында VLOOKUP және VLOOKUP комбинациясын пайдалану болып табылады. ЖАНАМА функциялар. Бұл әдіс аздап дайындықты қажет етеді, бірақ соңында электрондық кестелердің кез келген санында Vlookup үшін ықшам формулаға ие боласыз.
Беттер бойынша Vlookup функциясының жалпы формуласы төмендегідей:
VLOOKUP( іздеу_мәні , ЖАМА("'"&INDEX( Іздеу_парақтары , MATCH(1, --(COUNTIF(INDIRECT("'" & Іздеу_парақтары & "" '! іздеу_ауқымы "), іздеу_мәні )>0), 0)) & "'! кесте_жиымы "), түс_көрсеткіш_саны , FALSE)Мұндағы:
- Іздеу_парақтары - іздеу парағы атауларынан тұратын атаулы ауқым.
- Іздеу_мәні - ізделетін мән.
- Іздеу_ауқымы - іздеу парақтарындағы іздеуді іздейтін баған ауқымымән.
- Кесте_массиві - іздеу парақтарындағы деректер ауқымы.
- Тең_индекс_нөмірі - кесте массивіндегі бағанның нөмірі. мәнді қайтарыңыз.
Формуланың дұрыс жұмыс істеуі үшін келесі ескертулерді есте сақтаңыз:
- Бұл массив формуласы, оны Ctrl + пернелерін басу арқылы толтыру керек. Shift + Enter пернелері бірге.
- Барлық парақтарда бағандардың реті бірдей болуы керек.
- Барлық іздеу парақтары үшін бір кесте массивін пайдаланатындықтан, <12 мәнін көрсетіңіз>ең үлкен диапазон егер парақтарыңызда жолдар саны әртүрлі болса.
Формула арқылы парақтар бойынша дыбысты іздеу
Бір уақытта бірнеше парақтарды іздеу үшін мыналарды орындаңыз қадамдар:
- Барлық іздеу парағының атауларын жұмыс кітабыңыздың бір жеріне жазыңыз және сол ауқымды атаңыз (біздің жағдайда Іздеу_парақтары ).
- A2 мәнін ( іздеу_мәні )
- A2:A6 ( іздеу_ауқымы ) ішінде іздейміз. төрт жұмыс парағы ( Шығыс , Солтүстік , Оңтүстік және Батыс ) және
- В бағанынан сәйкес мәндерді алыңыз, ол A2:C6 ( кесте_массив ) деректер ауқымындағы 2-баған ( түс_көрсеткіш_саны ) болып табылады.
Жоғарыда келтірілген аргументтермен формула келесі пішінді алады:
=VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets&"'!$A$2:$A$6"), $A2)>0), 0)) &"'!$A$2:$C$6"), 2, FALSE)
Біз екі ауқымды да ($A$2:$A$6 және $A$2:$C$6) абсолютті ұяшық сілтемелерімен құлыптайтынымызды ескеріңіз.
Нәтижесінде біз 4 парақтан тапсырыс нөмірін іздеу және сәйкес элементті алу формуласын алдық. Арнайы тапсырыс нөмірі табылмаса, 14-жолдағыдай #N/A қатесі көрсетіледі:
Сомды қайтару үшін түтік_индекс_нөміріндегі 2-ні 3-ке ауыстырыңыз. аргументі, өйткені сомалар кесте массивінің 3-бағанында:
=VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets & "'!$A$2:$A$6"), $A2)>0), 0)) & "'!$A$2:$C$6"), 3, FALSE)
Егер стандартты #N/A қате белгісін өзіңіздің мәтініңізбен ауыстырғыңыз келсе, орап алыңыз. формуланы IFNA функциясына енгізіңіз:
=IFNA(VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets & "'!$A$2:$A$6"), $A2)>0), 0)) & "'!$A$2:$C$6"), 3, FALSE), "Not found")
Жұмыс кітаптары арасында бірнеше парақтарды іздеу
Бұл жалпы формуланы (немесе оның кез келген нұсқасын) да пайдалануға болады әр түрлі жұмыс кітабындағы бірнеше парақтарды Vlookup. Ол үшін төмендегі формулада көрсетілгендей ЖАҢА ішіндегі жұмыс кітабының атын біріктіріңіз:
=IFNA(VLOOKUP($A2, INDIRECT("'[Book1.xlsx]" & INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'[Book1.xlsx]" & Lookup_sheets & "'!$A$2:$A$6"), $A2)>0), 0)) & "'!$A$2:$C$6"), 2, FALSE), "Not found")
Парақтар арасында дыбыс іздеу және бірнеше бағандарды қайтару
Егер бірнеше деректерден деректерді алғыңыз келсе бағандарда, көп ұяшықты массив формуласы мұны бір әрекетте жасай алады. Мұндай формуланы жасау үшін түтік_көрсеткіш_саны аргументі үшін жиым тұрақтысын беріңіз.
Бұл мысалда біз элемент атауларын (В бағанасы) және сомаларды (С бағанасы) қайтарғымыз келеді. сәйкесінше кесте массивіндегі 2-ші және 3-ші бағандар. Сонымен, қажетті массив{2,3}.
=VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets &"'!$A$2:$C$6"), $A2)>0), 0)) &"'!$A$2:$C$6"), {2,3}, FALSE)
Формуланы бірнеше ұяшыққа дұрыс енгізу үшін мынаны орындау керек:
- Бірінші жолда, толтырылатын барлық ұяшықтарды таңдаңыз (біздің мысалдағы B2:C2).
- Формуланы теріп, Ctrl + Shift + Enter пернелерін басыңыз. Бұл таңдалған ұяшықтарға бірдей формуланы енгізеді, ол әр бағандағы басқа мәнді қайтарады.
- Формуланы қалған жолдарға сүйреп апарыңыз.
Бұл формула қалай жұмыс істейді
Логиканы жақсырақ түсіну үшін осы негізгі формуланы жеке функцияларға бөліп көрейік:
=VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets&"'!$A$2:$A$6"), $A2)>0), 0)) &"'!$A$2:$C$6"), 2, FALSE)
Ішінен сырттай жұмыс істейтін болсақ, формула мынаны көрсетеді:
COUNTIF және INDIRECT
Қысқаша айтқанда, INDIRECT барлық іздеу парақтары үшін сілтемелерді жасайды және COUNTIF іздеудің қайталануларын санайды. әрбір парақта мәні (A2):
--(COUNTIF( INDIRECT("'"&Lookup_sheets&"'!$A$2:$A$6"), $A2)>0)
Толығырақ:
Біріншіден, ауқым атауын (Lookup_sheets) және ауқым сілтемесін ($A$2) біріктіресіз: $A$6), сыртқы сілтеме жасау үшін дұрыс орындарға апострофтар мен леп белгісін қосып, іздеу парақтарына динамикалық сілтеме жасау үшін нәтиже мәтін жолын ЖАМАЙ функциясына беріңіз:
INDIRECT({"'East'!$A$2:$A$6"; "'South'!$A$2:$A$6"; "'North'!$A$2:$A$6"; "'West'!$A$2:$A$6"})
COUNTIF әр іздеу парағындағы A2:A6 ауқымындағы әрбір ұяшықты негізгі беттегі A2 мәнімен салыстырады. парақ және әр парақ үшін сәйкестіктер санын қайтарады. Біздің деректер жинағында A2 (101) түріндегі тапсырыс нөмірі Батыс парағында орналасқан, ол тізімде 4-шіаталған ауқым, сондықтан COUNTIF осы массивді қайтарады:
{0;0;0;1}
Кейін, жоғарыдағы массивтің әрбір элементін 0-мен салыстырасыз:
--({0; 0; 0; 1}>0)
Бұл нәтиже береді қос унарий (--) арқылы 1 және 0-ге мәжбүрлейтін TRUE (0-ден үлкен) және ЖАЛҒАН (0-ге тең) мәндерінің массиві және нәтиже ретінде келесі массивді алыңыз:
{0; 0; 0; 1}
Бұл операция іздеу парағында іздеу мәнінің бірнеше қайталануы болған жағдайды өңдеуге арналған қосымша сақтық шарасы болып табылады, бұл жағдайда COUNTIF 1-ден үлкен санды қайтарады, ал біз тек 1 және 0-ді алғымыз келеді. соңғы массив (бір сәтте неге екенін түсінесіз).
Барлық осы түрлендірулерден кейін формуламыз келесідей болады:
VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, {0;0;0;1} , 0)) &"'!$A$2:$C$6"), 2, FALSE)
INDEX және MATCH
Осы кезде классикалық INDEX MATCH комбинациясы келесіде қадам жасайды:
INDEX(Lookup_sheets, MATCH(1, {0;0;0;1}, 0))
Нақты сәйкестік үшін конфигурацияланған MATCH функциясы (соңғы аргументте 0) { массивіндегі 1 мәнін іздейді 0;0;0;1} және оның орнын қайтарады, ол 4:
INDEX(Lookup_sheets, 4)
INDEX функциясы қайтарылған санды пайдаланады MATCH бойынша жол нөмірі аргументі (жол_саны) ретінде және Батыс болып табылатын Іздеу_парақтары атты ауқымдағы 4-ші мәнді қайтарады.
Сонымен, формула одан әрі азайтады келесіге:
VLOOKUP($A2, INDIRECT("'"&" West "&"'!$A$2:$C$6"), 2, FALSE)
VLOOKUP және INDIRECT
ЖАМА функциясы оның ішіндегі мәтіндік жолды өңдейді:
INDIRECT("'"&"West"&"'!$A$2:$C$6")
Және оны түрлендіреді кесте_жиымы аргументіне баратын сілтемеге