Mündəricat
Təlimat başqa iş vərəqindən və ya iş kitabından məlumatları kopyalamaq üçün VLOOKUP funksiyasından necə istifadə olunacağını göstərir. 0>Excel-də bəzi məlumatları axtararkən, bütün məlumatların eyni vərəqdə olması nadir haldır. Daha tez-tez birdən çox vərəq və ya hətta müxtəlif iş kitabları arasında axtarış aparmalı olacaqsınız. Yaxşı xəbər odur ki, Microsoft Excel bunu etmək üçün birdən çox yol təqdim edir və pis xəbər odur ki, bütün yollar standart VLOOKUP düsturundan bir az daha mürəkkəbdir. Ancaq bir az səbirlə onları anlayacağıq :)
İki vərəq arasında VLOOKUP necə
Başlanğıclar üçün ən sadə hadisəni araşdıraq - VLOOKUP-dan istifadə edərək başqa iş vərəqindən məlumatları kopyalayın. Eyni iş vərəqində axtarış aparan adi VLOOKUP düsturuna çox bənzəyir. Fərq ondadır ki, siz axtarış diapazonunun hansı iş vərəqində yerləşdiyini düsturunuza bildirmək üçün vərəq adını cədvəl_massivi arqumentinə daxil edirsiniz.
Başqa vərəqdən VLOOKUP üçün ümumi düstur aşağıdakı kimidir:
VLOOKUP(axtarma_dəyəri, Cədvəl!aralıq, col_index_num, [aralıq_axtar]) Nümunə olaraq, Yanvar hesabatından Xülasə
- Axtarma_dəyərləri Xülasə vərəqində A sütunundadır və bizVLOOKUP:
VLOOKUP($A2, 'West'!$A$2:$C$6 , 2, FALSE)
Nəhayət, bu çox standart VLOOKUP düsturu Qərb vərəqindəki A2:C6 diapazonunun birinci sütununda A2 dəyərini axtarır və geri qaytarır 2-ci sütundan uyğun gəlir. Budur!
Birdən çox vərəqdən verilənləri müxtəlif xanalara qaytarmaq üçün Dinamik VLOOKUP
İlk olaraq "dinamik" sözünün bu kontekstdə tam olaraq nə demək olduğunu və bu formulun necə olacağını müəyyən edək. əvvəlkilərdən fərqlidir.
Birdən çox cədvələ bölünmüş eyni formatda böyük məlumat hissələriniz varsa, müxtəlif vərəqlərdən məlumatı müxtəlif xanalara çıxarmaq istəyə bilərsiniz. Aşağıdakı şəkil konsepti göstərir:
Unikal identifikator əsasında xüsusi vərəqdən dəyər əldə edən əvvəlki düsturlardan fərqli olaraq, bu dəfə biz bir neçə vərəqdən dəyərlər çıxarmaq istəyirik. vaxt.
Bu tapşırığın iki fərqli həlli var. Hər iki halda, bir az hazırlıq işləri görməli və hər bir axtarış vərəqində məlumat hüceyrələri üçün adlandırılmış diapazonlar yaratmalısınız. Bu misal üçün biz aşağıdakı diapazonları müəyyən etdik:
- Şərq_Satışları - Şərq vərəqində A2:B6
- Şimal_Satışları - A2: Şimal vərəqində B6
- Cənub_Satışları - Cənub vərəqində A2:B6
- Qərb_Satışları - Qərb vərəqində A2:B6
VLOOKUP və iç içə IF-lər
Axtarmaq üçün kifayət qədər vərəqiniz varsa, iç içə IF funksiyalarından istifadə edə bilərsinizəvvəlcədən təyin edilmiş xanalardakı açar sözlər əsasında vərəqi seçmək üçün (bizim halda B1-dən D1-ə qədər xanalar).
A2-də axtarış dəyəri ilə düstur belədir:
=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)
İngilis dilinə tərcümə edilmiş IF hissəsi belədir:
Əgər B1 Şərq -dirsə, East_Sales adlı diapazona baxın; əgər B1 Şimal -dirsə, Şimal_Satışları adlı aralığa baxın; əgər B1 Cənub -dirsə, Cənub_Satışları adlı aralığa baxın; və əgər B1 Qərb -dirsə, Qərb_Satışlar adlı diapazona baxın.
IF tərəfindən qaytarılan diapazon VLOOKUP-un cədvəl_massivi -nə keçir, hansı ki müvafiq vərəqdə 2-ci sütundan uyğun dəyər.
Axtarış dəyəri ($A2 - mütləq sütun və nisbi sətir) və IF (B$1 - nisbi sütun) üçün məntiqi test üçün qarışıq istinadların ağıllı istifadəsi və mütləq sətir) heç bir dəyişiklik etmədən düsturu başqa xanalara köçürməyə imkan verir - Excel sətir və sütunun nisbi mövqeyinə əsasən istinadları avtomatik tənzimləyir.
Beləliklə, biz B2-də düsturu daxil edirik, onu sağa köçürür və lazım olduğu qədər sütun və cərgəyə qədər azaldın və aşağıdakı nəticəni əldə edin:
DOLAYI VLOOKUP
Bir çox vərəqlərlə işləyərkən çoxlu iç-içə səviyyələr düsturu da yarada bilər. uzun və çətin oxunur. DOLAYI:
=VLOOKUP($A2, INDIRECT(B$1&"_Sales"), 2, FALSE)
Bunun köməyi ilə dinamik vlookup diapazonu yaratmaq daha yaxşı yoldur.adlandırılmış diapazonun unikal hissəsi (B1) və ümumi hissə (_Satış). Bu, DOLAYI Excel tərəfindən başa düşülən diapazon adına çevirən "East_Sales" kimi mətn sətrini yaradır.
Nəticədə siz istənilən sayda vərəqdə gözəl işləyən yığcam düstur əldə edirsiniz:
Excel-də vərəqlər və fayllar arasında Vlookup etmək belədir. Oxuduğunuz üçün sizə təşəkkür edirəm və sizi gələn həftə bloqumuzda görməyə ümid edirəm!
Endirmək üçün məşq iş dəftəri
Birdən çox vərəq nümunələri (.xlsx faylı) axtarın
A2 olan ilk məlumat xanasına müraciət edin. - Cədvəl_massivi Yanvar vərəqindəki A2:B6 diapazonudur. Ona istinad etmək üçün sıra arayışına vərəq adı və ardınca nida işarəsi qoyun: Yanvar!$A$2:$B$6.
Lütfən, düsturun digər xanalara kopyalanması zamanı dəyişməsinin qarşısını almaq üçün diapazonu mütləq xana istinadları ilə kilidlədiyimizə diqqət yetirin.
Col_index_num 2-dir, çünki biz dəyəri kopyalamaq istəyirik. Cədvəl massivinin 2-ci sütunu olan B sütunundan.
- Dəqiq uyğunluğu axtarmaq üçün
- Aralıq_axtar YANLIŞ olaraq təyin edilib.
Arqumentləri bir araya gətirərək bu düsturu əldə edirik:
=VLOOKUP(A2, Jan!$A$2:$B$6, 2, FALSE)
Düsulu sütunun aşağısına çəkin və bu nəticəni əldə edəcəksiniz:
oxşar şəkildə, siz Fevral və Mar vərəqlərindən Vlookup məlumatları əldə edə bilərsiniz:
=VLOOKUP(A2, Feb!$A$2:$B$6, 2, FALSE)
=VLOOKUP(A2, Mar!$A$2:$B$6, 2, FALSE)
Məsləhətlər və qeydlər:
- Əgər vərəq adında boşluq və ya əlifbadan kənar simvollar varsa, o,
'Yanvar Satışları'!$A$2:$B$6 . Ətraflı məlumat üçün lütfən, Excel-də başqa vərəqə necə istinad etmək olar bölməsinə baxın. - Cədvəlin adını birbaşa düsturda yazmaq əvəzinə, axtarış iş vərəqinə keçib oradan aralığı seçə bilərsiniz. Excel avtomatik olaraq düzgün sintaksisi olan arayış daxil edəcək, bu da sizi adı yoxlamaq və problemləri həll etmək problemindən xilas edəcək.
Fərqli iş kitabından səsə baxmaq
İki kitab arasında VLOOKUP etməkiş kitablarında fayl adını kvadrat mötərizədə, ardınca vərəq adı və nida işarəsi daxil edin.
Məsələn, Yanvar vərəqində A2:B6 diapazonunda A2 dəyərini axtarmaq üçün Sales_reports.xlsx iş kitabında bu düsturdan istifadə edin:
=VLOOKUP(A2, [Sales_reports.xlsx]Jan!$A$2:$B$6, 2, FALSE)
Tam təfərrüatlar üçün Excel-də başqa iş kitabından VLOOKUP-a baxın.
Vlookup. IFERROR ilə çoxlu vərəq
İkidən çox vərəq arasında baxmaq lazım olduqda, ən asan həll VLOOKUP-dan IFERROR ilə birlikdə istifadə etməkdir. İdeya çoxlu iş vərəqlərini bir-bir yoxlamaq üçün bir neçə IFERROR funksiyasını yerləşdirməkdir: əgər ilk VLOOKUP ilk vərəqdə uyğunluq tapmırsa, növbəti vərəqdə axtarın və s.
IFERROR(VLOOKUP(…), IFERROR(VLOOKUP(…), …, " Tapılmadı "))Bu yanaşmanın real həyat məlumatlarında necə işlədiyini görmək üçün aşağıdakı nümunəyə nəzər salaq. Aşağıda Qərb və Şərq vərəqlərində sifariş nömrəsinə baxmaqla element adları və məbləğləri ilə doldurmaq istədiyimiz Xülasə cədvəlidir:
Əvvəlcə əşyaları çəkəcəyik. Bunun üçün VLOOKUP düsturuna göstəriş veririk ki, Şərq vərəqində A2-də sifariş nömrəsini axtarsın və dəyəri B sütunundan qaytarsın ( cədvəl_massivi A2:C6-da 2-ci sütun). Dəqiq uyğunluq tapılmadıqda, Qərb vərəqində axtarın. Hər iki Vlookup uğursuz olarsa, "Tapılmadı"nı qaytarın.
=IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 2, FALSE), "Not found"))
Məbləği qaytarmaq üçün,sadəcə sütun indeks nömrəsini 3-ə dəyişdirin:
=IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 3, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 3, FALSE), "Not found"))
İpucu. Lazım gələrsə, müxtəlif VLOOKUP funksiyaları üçün müxtəlif cədvəl massivlərini təyin edə bilərsiniz. Bu misalda hər iki axtarış vərəqində eyni sayda cərgə var (A2:C6), lakin iş vərəqlərinizin ölçüsü fərqli ola bilər.
Birdən çox iş dəftərində səs axtarışı
İki və ya daha çox iş dəftəri arasında Vlookup etmək üçün iş kitabının adını kvadrat mötərizələrə daxil edin və vərəq adından əvvəl qoyun. Məsələn, iki müxtəlif faylda ( Kitab1 və Kitab2 ) tək bir düsturla Vlookup edə bilərsiniz:
=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 birdən çox sütun üçün sütun indeks nömrəsini dinamik edin
Bir neçə sütundan məlumatı qaytarmaq lazım olduğu halda, col_index_num dinamiki etmək sizə bir qədər vaxta qənaət edə bilər. Bir neçə düzəliş edilməlidir:
- col_index_num arqumenti üçün müəyyən massivdəki sütunların sayını qaytaran SÜTUNLAR funksiyasından istifadə edin: COLUMNS($A$1 :B$1). (Sətrin koordinatının heç bir əhəmiyyəti yoxdur, o, sadəcə hər hansı sətir ola bilər.)
- baxma_dəyəri arqumentində, sütun istinadını $ işarəsi ($A2) ilə kilidləyin, beləliklə, o, qalır. düsturun digər sütunlara kopyalanması zamanı düzəldilir.
Nəticədə, formulanın hansı sütuna kopyalandığından asılı olaraq, müxtəlif sütunlardan uyğun dəyərlər çıxaran bir növ dinamik düstur alırsınız:
=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 sütununa daxil edildikdə, SÜTUNLAR($A$1:B$1)2-yə qiymətləndirir və VLOOKUP-a cədvəl massivindəki 2-ci sütundan dəyər qaytarmağı əmr edir.
C sütununa kopyalandıqda (yəni, siz düsturu B2-dən C2-yə çəkmisiniz), B$1 C$1-ə dəyişir, çünki sütun istinadı nisbidir. Beləliklə, COLUMNS($A$1:C$1) VLOOKUP-u 3-cü sütundan dəyər qaytarmağa məcbur edərək 3-ə kimi qiymətləndirir.
Bu düstur 2 - 3 axtarış vərəqi üçün əla işləyir. Əgər sizdə daha çox varsa, təkrarlanan İFERROR-lar çox çətin olur. Növbəti misal bir az daha mürəkkəb, lakin daha zərif yanaşma nümayiş etdirir.
DOLAYI ilə çoxlu vərəqləri axtarın
Excel-də çoxlu vərəqlər arasında Vlookup aparmağın başqa bir yolu VLOOKUP və VLOOKUP birləşməsindən istifadə etməkdir. DOLAYI funksiyalar. Bu üsul bir az hazırlıq tələb edir, lakin sonda istənilən sayda elektron cədvəldə Vlookup üçün daha yığcam düsturunuz olacaq.
Cədvəllər arasında Vlookup üçün ümumi düstur aşağıdakı kimidir:
VLOOKUP( axtarma_dəyəri , DOLAYI("'"&INDEX( Axtarış_vərəqləri , MATCH(1, --(COUNTIF(DOLAYI("'" & Axtarış_vərəqləri & " '! axtarış_aralığı "), axtarış_dəyəri )>0), 0)) & "'! cədvəl_massivi "), col_index_num , FALSE)Burada:
- Axtarış_vərəqləri - axtarış vərəqi adlarından ibarət adlandırılmış diapazon.
- Axtarma_dəyəri - axtarmaq üçün dəyər.
- Axtarma_aralığı - axtarış vərəqlərində axtarışın axtarılacağı sütun diapazonudəyər.
- Cədvəl_massivi - axtarış vərəqlərindəki məlumat diapazonu.
- Col_index_num - cədvəl massivindəki sütunun nömrəsi. dəyəri qaytarın.
Düsturun düzgün işləməsi üçün aşağıdakı xəbərdarlıqları yadda saxlayın:
- Bu, Ctrl + düymələri ilə tamamlanmalı olan massiv düsturudur. Shift + Enter düymələri birlikdə.
- Bütün vərəqlər sütunların eyni sırasına malik olmalıdır .
- Bütün axtarış vərəqləri üçün bir cədvəl massivindən istifadə etdiyimiz üçün <12-ni təyin edin>ən böyük diapazon vərəqlərinizin müxtəlif sayda cərgələri varsa.
Cədvəllər arasında Vlookup üçün düsturdan necə istifadə etmək olar
Birdən çox vərəqdə eyni vaxtda araşdırma aparmaq üçün bunları yerinə yetirin addımlar:
- İş kitabınızın bir yerinə bütün axtarış vərəqlərinin adlarını yazın və həmin diapazonu adlandırın (bizim halda Axtarış_vərəqləri ).
- A2 dəyərini ( axtarma_dəyəri )
- A2:A6 ( aralıq_aralıq ) daxilində axtaracağıq. dörd iş vərəqi ( Şərq , Şimal , Cənub və Qərb ) və
- uyğun dəyərləri B sütunundan çıxarın, A2:C6 ( cədvəl_massivi ) verilənlər diapazonunda 2-ci sütundur ( col_index_num ).
Yuxarıdakı arqumentlərlə formula bu formanı alır:
=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)
Nəzərə alın ki, biz hər iki aralığı ($A$2:$A$6 və $A$2:$C$6) mütləq xana istinadları ilə kilidləyirik.
nəticədə 4 vərəqdə sifariş nömrəsini axtarmaq və müvafiq elementi əldə etmək üçün düsturumuz var. Xüsusi sifariş nömrəsi tapılmadıqda, 14-cü sətirdə olduğu kimi #N/A xətası göstərilir:
Məbləği qaytarmaq üçün col_index_num-da 2-ni 3 ilə əvəz edin. arqument, çünki məbləğlər cədvəl massivinin 3-cü sütunundadır:
=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)
Standart #N/A xəta qeydini öz mətninizlə əvəz etmək istəyirsinizsə, sarın düsturu IFNA funksiyasına daxil edin:
=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")
İş dəftərləri arasında çoxlu vərəqləri axtarın
Bu ümumi düstur (və ya onun hər hansı variantı) da istifadə edilə bilər müxtəlif iş kitabında çoxlu vərəqləri Vlookup etmək. Bunun üçün aşağıdakı düsturda göstərildiyi kimi DOLAYI daxilində iş kitabının adını birləşdirin:
=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")
Cədvəllər arasında səs axtarışı və çoxlu sütunları qaytarın
Bir neçə yerdən məlumat çıxarmaq istəyirsinizsə sütunlarda, çox hüceyrəli massiv düsturu bunu bir gedişdə edə bilər. Belə bir düstur yaratmaq üçün col_index_num arqumenti üçün massiv sabitini təmin edin.
Bu nümunədə biz element adlarını (sütun B) və məbləğləri (C sütunu) qaytarmaq istəyirik. cədvəl massivində müvafiq olaraq 2-ci və 3-cü sütunlardır. Beləliklə, tələb olunan massivdir{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)
Düsulu bir neçə xanaya düzgün daxil etmək üçün bunu etməlisiniz:
- Birinci cərgədə, doldurulacaq bütün xanaları seçin (bizim nümunəmizdə B2:C2).
- Düsulu yazın və Ctrl + Shift + Enter düymələrini basın. Bu, seçilmiş xanalara eyni düstur daxil edir və bu, hər bir sütunda fərqli dəyər qaytaracaq.
- Düsulu qalan sətirlərə dartın.
Bu düstur necə işləyir
Məntiqi daha yaxşı başa düşmək üçün bu əsas düsturu fərdi funksiyalara bölək:
=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)
Daxildən xaricdən işləməklə, düsturun yerinə yetirdiyi budur:
COUNTIF və DOLAYI
Bir sözlə, INDIRECT bütün axtarış vərəqləri üçün istinadlar qurur və COUNTIF axtarışın baş vermələrini hesablayır. hər vərəqdə dəyər (A2):
--(COUNTIF( INDIRECT("'"&Lookup_sheets&"'!$A$2:$A$6"), $A2)>0)
Ətraflı məlumat üçün:
Əvvəla, siz diapazon adını (Axtarma_vərəqləri) və diapazon arayışını ($A$2) birləşdirirsiniz: $A$6), xarici istinad etmək üçün düzgün yerlərdə apostrof və nida işarəsi əlavə edin və axtarış vərəqlərinə dinamik olaraq istinad etmək üçün nəticədə yaranan mətn sətirini DOLAYI funksiyaya ötürün:
INDIRECT({"'East'!$A$2:$A$6"; "'South'!$A$2:$A$6"; "'North'!$A$2:$A$6"; "'West'!$A$2:$A$6"})
COUNTIF hər axtarış vərəqində A2:A6 diapazonunda olan hər bir xananı əsas səhifədəki A2 dəyəri ilə yoxlayır vərəq və hər vərəq üçün uyğunluqların sayını qaytarır. Verilənlər dəstimizdə A2 (101) içərisindəki sifariş nömrəsi Qərb vərəqində yerləşir, bu da 4-cü yerdədir.adlı diapazondur, buna görə də COUNTIF bu massivi qaytarır:
{0;0;0;1}
Sonra yuxarıdakı massivin hər bir elementini 0 ilə müqayisə edirsiniz:
--({0; 0; 0; 1}>0)
Bu nəticə verir DOĞRU (0-dan böyük) və YANLIŞ (0-a bərabər) dəyərlərinin massivini ikiqat birlikdən (--) istifadə edərək 1 və 0-a məcbur edirsiniz və nəticədə aşağıdakı massivi əldə edin:
{0; 0; 0; 1}
Bu əməliyyat axtarış vərəqində axtarış dəyərinin bir neçə təkrarı olduğu vəziyyətin idarə edilməsi üçün əlavə tədbirdir, bu halda COUNTIF 1-dən böyük bir say qaytaracaq, halbuki biz yalnız 1 və 0-ları istəyirik. final massivi (bir anda, bunun səbəbini başa düşəcəksiniz).
Bütün bu çevrilmələrdən sonra düsturumuz aşağıdakı kimi görünür:
INDEX(Lookup_sheets, MATCH(1, {0;0;0;1}, 0))
İNDEKS və MATCH
Bu nöqtədə klassik INDEX MATCH kombinasiyası addımlayır:
INDEX(Lookup_sheets, MATCH(1, {0;0;0;1}, 0))
Dəqiq uyğunluq üçün konfiqurasiya edilmiş MATCH funksiyası (son arqumentdə 0) { massivində 1 dəyərini axtarır. 0;0;0;1} və öz mövqeyini qaytarır, bu 4:
INDEX(Lookup_sheets, 4)
INDEX funksiyası qaytarılan nömrədən istifadə edir sətir nömrəsi arqumenti (sətir_sayı) kimi MATCH ilə və Qərb olan Axtarış_vərəqləri adlı diapazonda 4-cü dəyəri qaytarır.
Beləliklə, düstur daha da azaldır to:
VLOOKUP($A2, INDIRECT("'"&" West "&"'!$A$2:$C$6"), 2, FALSE)
VLOOKUP və DOLAYI
DOLAYI funksiyası daxilindəki mətn sətirini emal edir:
INDIRECT("'"&"West"&"'!$A$2:$C$6")
Və onu çevirir -nin cədvəl_massivi arqumentinə gedən istinada