VLOOKUP lanjutan dalam Excel: berbilang, berganda, bersarang

  • Berkongsi Ini
Michael Brown

Contoh ini akan mengajar anda cara untuk Vlookup berbilang kriteria, mengembalikan contoh tertentu atau semua padanan, melakukan Vlookup dinamik dalam berbilang helaian dan banyak lagi.

Ia adalah bahagian kedua daripada siri yang akan membantu anda memanfaatkan kuasa Excel VLOOKUP. Contoh menunjukkan bahawa anda tahu cara fungsi ini berfungsi. Jika tidak, adalah wajar untuk bermula dengan penggunaan asas VLOOKUP dalam Excel.

Sebelum melangkah lebih jauh, izinkan saya mengingatkan anda secara ringkas sintaks:

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup] )

Sekarang semua orang berada di halaman yang sama, mari kita lihat dengan lebih dekat contoh formula VLOOKUP lanjutan:

    Cara Vlookup berbilang kriteria

    Excel Fungsi VLOOKUP sangat membantu apabila ia datang untuk mencari merentasi pangkalan data untuk nilai tertentu. Walau bagaimanapun, ia tidak mempunyai ciri penting - sintaksnya membenarkan hanya satu nilai carian. Tetapi bagaimana jika anda ingin mencari dengan beberapa syarat? Terdapat beberapa penyelesaian berbeza untuk anda pilih.

    Formula 1. VLOOKUP dengan dua kriteria

    Andaikan anda mempunyai senarai pesanan dan ingin mencari kuantiti berdasarkan 2 kriteria, Nama pelanggan dan Produk . Faktor yang merumitkan ialah setiap pelanggan memesan berbilang produk, seperti yang ditunjukkan dalam jadual di bawah:

    Formula VLOOKUP biasa tidak akan berfungsi dalam situasi ini kerana ia mengembalikan yang pertama ditemui perlawanan berdasarkan awilayah:

    Seperti dalam contoh sebelumnya, kita mulakan dengan mentakrifkan beberapa nama:

    • Julat A2:B5 dalam helaian CA dinamakan CA_Sales .
    • Julat A2:B5 dalam helaian FL dinamakan FL_Sales .
    • Julat A2:B5 dalam helaian KS dinamakan KS_Sales .

    Seperti yang anda lihat, semua julat yang dinamakan mempunyai bahagian yang sama ( Jualan ) dan bahagian unik ( CA , FL , KS ). Sila pastikan anda menamakan julat anda dengan cara yang sama kerana ia penting untuk formula yang akan kami bina.

    Formula 1. VLOOKUP TIDAK LANGSUNG untuk menarik data secara dinamik daripada helaian yang berbeza

    Jika tugas anda adalah untuk mendapatkan data daripada berbilang helaian, formula VLOOKUP INDIRECT ialah penyelesaian terbaik – padat dan mudah difahami.

    Untuk contoh ini, kami menyusun jadual ringkasan dengan cara ini:

    • Masukkan produk yang diminati dalam A2 dan A3. Itu adalah nilai carian kami.
    • Masukkan bahagian unik julat yang dinamakan dalam B1, C1 dan D1.

    Dan kini, kami menggabungkan sel yang mengandungi bahagian unik (B1) dengan bahagian biasa ("_Sales"), dan suapkan rentetan yang terhasil kepada INDIRECT:

    INDIRECT(B$1&"_Sales")

    Fungsi INDIRECT mengubah rentetan itu menjadi nama yang Excel boleh faham dan anda masukkannya argumen table_array VLOOKUP:

    =VLOOKUP($A2, INDIRECT(B$1&"_Sales"), 2, FALSE)

    Formula di atas pergi ke B2, dan kemudian anda menyalinnya ke bawah dan ke kanan.

    Sila perhatikan bahawa, dalam nilai carian ($A2),kami telah mengunci koordinat lajur dengan rujukan sel mutlak supaya lajur kekal tetap apabila formula disalin ke kanan. Dalam rujukan B$1, kami mengunci baris kerana kami mahu koordinat lajur berubah dan membekalkan bahagian nama yang sesuai kepada TIDAK LANGSUNG bergantung pada lajur di mana formula disalin:

    Jika jadual utama anda disusun secara berbeza, nilai carian dalam baris dan bahagian unik nama julat dalam lajur, maka anda harus mengunci koordinat baris dalam nilai carian (B$1) dan koordinat lajur dalam bahagian nama ($A2):

    =VLOOKUP(B$1, INDIRECT($A2&"_Sales"), 2, FALSE)

    Formula 2. VLOOKUP dan IF bersarang untuk mencari berbilang helaian

    Dalam situasi apabila anda mempunyai hanya dua atau tiga helaian carian, anda boleh menggunakan formula VLOOKUP yang agak mudah dengan fungsi IF bersarang untuk memilih helaian yang betul berdasarkan nilai kunci dalam sel tertentu:

    =VLOOKUP($A2, IF(B$1="CA", CA_Sales, IF(B$1="FL", FL_Sales, IF(B$1="KS", KS_Sales,""))), 2, FALSE)

    Di mana $A2 ialah nilai carian (nama item) dan B$1 ialah nilai kunci (keadaan):

    Dalam kes ini, anda tidak semestinya perlu mentakrifkan nama dan boleh menggunakan luaran rujukan untuk merujuk kepada helaian atau buku kerja lain.

    Untuk lebih banyak formula exa mples, sila lihat Cara VLOOKUP merentas berbilang helaian dalam Excel.

    Begitulah cara menggunakan VLOOKUP dalam Excel. Saya mengucapkan terima kasih kerana membaca dan berharap dapat berjumpa anda di blog kami minggu hadapan!

    Berlatih buku kerja untuk muat turun

    Contoh formula VLOOKUP lanjutan (.xlsxfail)

    nilai carian tunggal yang anda tentukan.

    Untuk mengatasinya, anda boleh menambah lajur pembantu dan menggabungkan nilai daripada dua lajur carian ( Pelanggan dan Produk ) di sana. Adalah penting bahawa lajur pembantu mestilah lajur paling kiri dalam tatasusunan jadual kerana di situlah Excel VLOOKUP sentiasa mencari nilai carian.

    Jadi, tambahkan lajur di sebelah kiri anda jadual dan salin formula di bawah merentas lajur itu. Ini akan mengisi lajur pembantu dengan nilai dari lajur B dan C (karakter ruang disatukan di antara untuk kebolehbacaan yang lebih baik):

    =B2&" "&C2

    Dan kemudian, gunakan formula dan letakkan standard VLOOKUP kedua-dua kriteria dalam argumen lookup_value , dipisahkan dengan ruang:

    =VLOOKUP("Jeremy Sweets", A2:D11, 4, FALSE)

    Atau, masukkan kriteria dalam sel berasingan (G1 dan G2 dalam kes kami) dan gabungkan kriteria tersebut sel:

    =VLOOKUP(G1&" "&G2, A2:D11, 4, FALSE)

    Memandangkan kami ingin mengembalikan nilai daripada lajur D, yang keempat dalam tatasusunan jadual, kami menggunakan 4 untuk col_index_num . Argumen range_lookup ditetapkan kepada FALSE kepada Vlookup padanan tepat. Tangkapan skrin di bawah menunjukkan keputusan:

    Sekiranya jadual carian anda berada dalam helaian lain , masukkan nama helaian dalam formula VLOOKUP anda. Contohnya:

    =VLOOKUP(G1&" "&G2, Orders!A2:D11, 4, FALSE)

    Sebagai alternatif, buat julat bernama untuk jadual carian (katakan, Pesanan ) untuk menjadikan formula lebih mudah dibaca:

    =VLOOKUP(G1&" "&G2, Orders, 4, FALSE)

    Untuk maklumat lanjut, sila lihat Bagaimana untukLihat dari helaian lain dalam Excel.

    Nota. Untuk formula berfungsi dengan betul, nilai dalam lajur pembantu hendaklah digabungkan dengan cara yang sama seperti dalam argumen lookup_value . Sebagai contoh, kami menggunakan aksara ruang untuk memisahkan kriteria dalam kedua-dua lajur pembantu (B2&" "&C2) dan formula VLOOKUP (G1&" "&G2).

    Formula 2. Excel VLOOKUP dengan berbilang syarat

    Secara teori, anda boleh menggunakan pendekatan di atas untuk Vlookup lebih daripada dua kriteria. Walau bagaimanapun, terdapat beberapa kaveat. Pertama, nilai carian dihadkan kepada 255 aksara dan kedua, reka bentuk lembaran kerja mungkin tidak membenarkan penambahan lajur pembantu.

    Mujurlah, Microsoft Excel selalunya menyediakan lebih daripada satu cara untuk melakukan perkara yang sama. Untuk Vlookup berbilang kriteria, anda boleh menggunakan sama ada gabungan INDEX MATCH atau fungsi XLOOKUP yang diperkenalkan baru-baru ini dalam Office 365.

    Sebagai contoh, untuk mencari berdasarkan 3 nilai berbeza ( Tarikh , Nama pelanggan dan Produk ), gunakan salah satu daripada formula berikut:

    =INDEX(D2:D11, MATCH(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), 0))

    =XLOOKUP(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), D2:D11)

    Di mana:

    • G1 ialah kriteria 1 (tarikh)
    • G2 ialah kriteria 2 (nama pelanggan)
    • G3 ialah kriteria 3 (produk)
    • A2:A11 ialah carian julat 1 (tarikh)
    • B2:B11 ialah julat carian 2 (nama pelanggan)
    • C2:C11 ialah julat carian 3 (produk)
    • D2:D11 ialah pulangan julat (kuantiti)

    Nota. Dalam semua versi kecuali Excel 365, INDEXMATCH hendaklah dimasukkan sebagai formula tatasusunan CSE dengan menekan Ctrl + Shift + Enter. Dalam Excel 365 yang menyokong tatasusunan dinamik ia juga berfungsi sebagai formula biasa.

    Untuk mendapatkan penjelasan terperinci tentang formula, sila lihat:

    • XLOOKUP dengan berbilang kriteria
    • Formula PADANAN INDEKS dengan berbilang kriteria

    Cara untuk gunakan VLOOKUP untuk mendapatkan padanan ke-2, ke-3 atau ke-1

    Seperti yang anda sedia maklum, Excel VLOOKUP boleh mengambil hanya satu nilai padanan, lebih tepat lagi, ia mengembalikan padanan pertama yang ditemui. Tetapi bagaimana jika terdapat beberapa padanan dalam tatasusunan carian anda dan anda ingin mendapatkan contoh ke-2 atau ke-3? Tugas itu kelihatan agak rumit, tetapi penyelesaiannya memang wujud!

    Formula 1. Contoh Vlookup Nth

    Andaikan anda mempunyai nama pelanggan dalam satu lajur, produk yang mereka beli dalam lajur lain dan anda sedang mencari untuk mencari produk ke-2 atau ke-3 yang dibeli oleh pelanggan tertentu.

    Cara paling mudah ialah menambah lajur pembantu di sebelah kiri jadual seperti yang kita lakukan dalam contoh pertama. Tetapi kali ini, kami akan mengisinya dengan nama pelanggan dan nombor kejadian seperti " John Doe1 ", " John Doe2 ", dll.

    Untuk mendapatkan kejadian, gunakan fungsi COUNTIF dengan rujukan julat bercampur (rujukan pertama adalah mutlak dan yang kedua adalah relatif seperti $B$2:B2). Oleh kerana rujukan relatif berubah berdasarkan kedudukan sel tempat formula disalin, dalam baris 3 ia akan menjadi $B$2:B3, dalam baris 4 -$B$2:B4 dan seterusnya.

    Digabungkan dengan nama pelanggan (B2), formula mengambil borang ini:

    =B2&COUNTIF($B$2:B2, B2)

    Formula di atas pergi ke A2 , dan kemudian anda menyalinnya ke seberapa banyak sel yang diperlukan.

    Selepas itu, masukkan nama sasaran dan nombor kejadian dalam sel berasingan (F1 dan F2), dan gunakan formula di bawah untuk Vlookup kejadian tertentu:

    =VLOOKUP(F1&F2, A2:C11, 3, FALSE)

    Formula 2. Kejadian kedua Vlookup

    Jika anda sedang mencari contoh kedua bagi nilai carian, maka anda boleh lakukan tanpa lajur pembantu. Sebaliknya, cipta tatasusunan jadual secara dinamik dengan menggunakan fungsi INDIRECT bersama-sama dengan MATCH:

    =VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11"), 2, FALSE)

    Di mana:

    • E1 ialah nilai carian
    • A2:A11 ialah julat carian
    • B11 ialah sel terakhir (kanan bawah) jadual carian

    Sila ambil perhatian bahawa formula di atas ditulis untuk kes tertentu di mana sel data dalam jadual carian bermula pada baris 2. Jika jadual anda berada di suatu tempat di tengah helaian, gunakan formula universal ini, dengan A1 ialah sel kiri atas jadual carian yang mengandungi pengepala lajur:

    =VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+1+ROW(A1))&":B11"), 2, FALSE)

    Cara formula ini berfungsi

    Berikut ialah bahagian penting formula yang mencipta julat vlookup dinamik :

    INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11")

    Fungsi MATCH yang dikonfigurasikan untuk padanan tepat (0 dalam hujah terakhir) membandingkan nama sasaran (E1) dengan senarai nama (A2:A11) dan mengembalikan kedudukan yang pertama ditemui perlawanan, iaitu 3dalam kes kita. Nombor ini akan digunakan sebagai koordinat baris permulaan untuk julat vlookup, jadi kami menambah 2 padanya (+1 untuk mengecualikan contoh pertama dan +1 untuk mengecualikan baris 1 dengan pengepala lajur). Sebagai alternatif, anda boleh menggunakan 1+ROW(A1) untuk mengira pelarasan yang diperlukan secara automatik berdasarkan kedudukan baris pengepala (A1 dalam kes kami).

    Hasilnya, kami mendapat rentetan teks berikut, yang INDIRECT menukar kepada rujukan julat:

    INDIRECT("A"&5&":B11") -> A5:B11

    Julat ini pergi ke argumen table_array VLOOKUP yang memaksanya mula mencari dalam baris 5, meninggalkan contoh pertama nilai carian:

    VLOOKUP(E1, A5:B11, 2, FALSE)

    Cara untuk Vlookup dan mengembalikan berbilang nilai dalam Excel

    Fungsi Excel VLOOKUP direka untuk mengembalikan hanya satu padanan. Adakah terdapat cara untuk Vlookup berbilang contoh? Ya, ada, walaupun tidak mudah. Ini memerlukan penggunaan gabungan beberapa fungsi seperti INDEX, SMALL dan ROW ialah formula tatasusunan.

    Sebagai contoh, di bawah boleh menemui semua kejadian nilai carian F2 dalam julat carian B2:B16 dan mengembalikan berbilang padanan dari lajur C:

    {=IFERROR(INDEX($C$2:$C$11, SMALL(IF($F$1=$B$2:$B$11, ROW($C$2:$C$11)-1,""), ROW()-1)),"")}

    Terdapat 2 cara untuk memasukkan formula dalam lembaran kerja anda:

    1. Taip formula dalam sel pertama, tekan Ctrl + Shift + Enter , dan kemudian seret ke bawah ke beberapa sel lagi.
    2. Pilih beberapa sel bersebelahan dalam satu lajur (F1:F11 dalam tangkapan skrin di bawah), taip formula dan tekan Ctrl +Shift + Enter untuk melengkapkannya.

    Sama ada cara, bilangan sel yang anda masukkan formula hendaklah sama atau lebih besar daripada bilangan maksimum padanan yang mungkin.

    Untuk penjelasan terperinci tentang logik formula dan lebih banyak contoh, sila lihat Cara VLOOKUP berbilang nilai dalam Excel.

    Cara Vlookup dalam baris dan lajur (carian dua hala)

    Pencarian dua hala (aka pencarian matriks atau pencarian 2 dimensi ) ialah perkataan yang menarik untuk mencari nilai di persimpangan baris dan lajur tertentu. Terdapat beberapa cara berbeza untuk melakukan carian dua dimensi dalam Excel, tetapi memandangkan tumpuan tutorial ini adalah pada fungsi VLOOKUP, kami akan menggunakannya secara semula jadi.

    Untuk contoh ini, kami akan mengambil perkara di bawah jadual dengan jualan bulanan dan buat formula VLOOKUP untuk mendapatkan semula angka jualan bagi item tertentu dalam bulan tertentu.

    Dengan nama item dalam A2:A9, nama bulan dalam B1:F1, item sasaran dalam I1 dan bulan sasaran dalam I2, formulanya adalah seperti berikut:

    =VLOOKUP(I1, A2:F9, MATCH(I2, A1:F1, 0), FALSE)

    Cara formula ini berfungsi

    Inti formula ialah fungsi VLOOKUP standard yang mencari padanan tepat dengan nilai carian dalam I1. Tetapi kerana kami tidak tahu di mana betul-betul lajur jualan untuk bulan tertentu, kami tidak boleh membekalkan nombor lajur terus ke argumen col_index_num . Untuk mencari lajur itu, kami menggunakan MATCH berikutfungsi:

    MATCH(I2, A1:F1, 0)

    Diterjemahkan ke dalam bahasa Inggeris, formula mengatakan: cari nilai I2 dalam A1:F1 dan kembalikan kedudukan relatifnya dalam tatasusunan. Dengan membekalkan 0 kepada argumen ke-3, anda mengarahkan MATCH untuk mencari nilai yang betul-betul sama dengan nilai carian (ia seperti menggunakan FALSE untuk argumen range_lookup VLOOKUP).

    Sejak Mac berada dalam lajur ke-4 dalam tatasusunan carian, fungsi MATCH mengembalikan 4, yang pergi terus ke col_index_num argumen VLOOKUP:

    VLOOKUP(I1, A2:F9, 4, FALSE)

    Sila perhatikan bahawa walaupun nama bulan bermula dalam lajur B, kami menggunakan A1:I1 untuk tatasusunan carian. Ini dilakukan agar nombor yang dikembalikan oleh MATCH sepadan dengan kedudukan lajur dalam table_array VLOOKUP.

    Untuk mengetahui lebih banyak cara untuk melakukan carian matriks dalam Excel, sila lihat INDEX MATCH MATCH dan formula lain untuk carian 2 dimensi.

    Cara melakukan berbilang Vlookup dalam Excel (Vlookup bersarang)

    Kadangkala mungkin berlaku bahawa jadual utama dan jadual carian anda tidak mempunyai satu lajur dalam biasa, yang menghalang anda daripada melakukan Vlookup antara dua jadual. Walau bagaimanapun, terdapat satu lagi jadual, yang tidak mengandungi maklumat yang anda cari tetapi mempunyai satu lajur biasa dengan jadual utama dan satu lagi lajur biasa dengan jadual carian.

    Dalam imej di bawah menggambarkan situasi:

    Matlamatnya adalah untuk menyalin harga ke jadual utama berdasarkan ID Item . Masalahnya ialah jadual yang mengandungi harga tidak mempunyai ID Item , bermakna kita perlu melakukan dua Vlookup dalam satu formula.

    Demi kemudahan, mari kita buat beberapa julat dinamakan dahulu:

    • Jadual carian 1 dinamakan Produk (D3:E10)
    • Jadual carian 2 dinamakan Harga ( G3:H10 )

    Jadual boleh berada dalam lembaran kerja yang sama atau berbeza.

    Dan sekarang, kami akan melakukan apa yang dipanggil double Vlookup , aka bersarang Vlookup .

    Pertama, buat formula VLOOKUP untuk mencari nama produk dalam jadual Carian 1 (bernama Produk ) berdasarkan item id (A3):

    =VLOOKUP(A3, Products, 2, FALSE)

    Seterusnya, letakkan formula di atas dalam hujah lookup_value fungsi VLOOKUP lain untuk menarik harga daripada jadual Lookup 2 (bernama Harga ) berdasarkan nama produk yang dikembalikan oleh VLOOKUP bersarang:

    =VLOOKUP(VLOOKUP(A3, Products, 2, FALSE), Prices, 2, FALSE)

    Tangkapan skrin di bawah menunjukkan formula Vlookup bersarang kami dalam tindakan:

    Cara untuk Vlookup berbilang helaian secara dinamik

    Kadangkala, y anda mungkin mempunyai data dalam format yang sama yang dibahagikan kepada beberapa lembaran kerja. Dan matlamat anda adalah untuk menarik data daripada helaian tertentu bergantung pada nilai kunci dalam sel tertentu.

    Ini mungkin lebih mudah difahami daripada contoh. Katakan, anda mempunyai beberapa laporan jualan serantau dalam format yang sama dan anda ingin mendapatkan angka jualan untuk produk tertentu dalam

    Michael Brown ialah peminat teknologi yang berdedikasi dengan semangat untuk memudahkan proses kompleks menggunakan alat perisian. Dengan lebih sedekad pengalaman dalam industri teknologi, beliau telah mengasah kemahirannya dalam Microsoft Excel dan Outlook, serta Helaian Google dan Dokumen. Blog Michael berdedikasi untuk berkongsi pengetahuan dan kepakarannya dengan orang lain, menyediakan petua dan tutorial yang mudah diikuti untuk meningkatkan produktiviti dan kecekapan. Sama ada anda seorang profesional berpengalaman atau pemula, blog Michael menawarkan pandangan berharga dan nasihat praktikal untuk memanfaatkan sepenuhnya alatan perisian penting ini.