VLOOKUP di beberapa lembar di Excel dengan contoh

  • Bagikan Ini
Michael Brown

Tutorial menunjukkan cara menggunakan fungsi VLOOKUP untuk menyalin data dari lembar kerja atau buku kerja lain, Vlookup di beberapa lembar, dan mencari secara dinamis untuk mengembalikan nilai dari lembar yang berbeda ke dalam sel yang berbeda.

Saat mencari beberapa informasi di Excel, jarang sekali semua data berada di lembar yang sama. Lebih sering, Anda harus mencari di beberapa lembar atau bahkan buku kerja yang berbeda. Kabar baiknya adalah Microsoft Excel menyediakan lebih dari satu cara untuk melakukan ini, dan kabar buruknya adalah semua cara itu sedikit lebih rumit daripada rumus VLOOKUP standar. Tetapi hanya dengan sedikit kesabaran, kamiakan mengetahuinya :)

    Bagaimana cara VLOOKUP di antara dua lembar

    Sebagai permulaan, mari kita selidiki kasus yang paling sederhana - menggunakan VLOOKUP untuk menyalin data dari lembar kerja lain. Ini sangat mirip dengan rumus VLOOKUP biasa yang mencari di lembar kerja yang sama. Perbedaannya adalah Anda menyertakan nama lembar kerja di dalam table_array argumen untuk memberi tahu rumus Anda di lembar kerja mana rentang pencarian berada.

    Rumus umum untuk VLOOKUP dari sheet lain adalah sebagai berikut:

    VLOOKUP(lookup_value, Lembar! , col_index_num, [range_lookup])

    Sebagai contoh, mari kita tarik angka penjualan dari Jan melaporkan kepada Ringkasan Untuk ini, kita mendefinisikan argumen-argumen berikut:

    • Lookup_values berada di kolom A pada Ringkasan sheet, dan kita merujuk ke sel data pertama, yaitu A2.
    • Table_array adalah rentang A2:B6 pada lembar Jan. Untuk merujuknya, awali referensi rentang dengan nama lembar diikuti dengan tanda seru: Jan!$A$2:$B$6.

      Harap perhatikan bahwa kami mengunci rentang dengan referensi sel absolut untuk mencegahnya berubah saat menyalin rumus ke sel lain.

      Col_index_num adalah 2 karena kita ingin menyalin nilai dari kolom B, yang merupakan kolom ke-2 dalam larik tabel.

    • Range_lookup diatur ke FALSE untuk mencari kecocokan yang tepat.

    Menyatukan argumen-argumen tersebut, kita mendapatkan rumus ini:

    =VLOOKUP(A2, Jan!$A$2:$B$6, 2, FALSE)

    Seret rumus ke bawah kolom dan Anda akan mendapatkan hasil ini:

    Dengan cara yang sama, Anda bisa Vlookup data dari Feb dan Mar lembar:

    =VLOOKUP(A2, Feb!$A$2:$B$6, 2, FALSE)

    =VLOOKUP(A2, Mar!$A$2:$B$6, 2, FALSE)

    Kiat dan catatan:

    • Jika nama sheet mengandung ruang atau karakter non-alfabetis , harus diapit oleh tanda petik tunggal, seperti 'Penjualan Jan'!$A$2:$B$6 Untuk info lebih lanjut, silakan lihat Cara mereferensikan lembar lain di Excel.
    • Alih-alih mengetikkan nama sheet secara langsung dalam rumus, Anda dapat beralih ke lembar kerja pencarian dan memilih rentang di sana. Excel akan menyisipkan referensi dengan sintaks yang benar secara otomatis, sehingga Anda tidak perlu repot-repot memeriksa nama dan memecahkan masalah.

    Vlookup dari buku kerja yang berbeda

    Untuk VLOOKUP di antara dua buku kerja, sertakan nama file dalam tanda kurung siku, diikuti dengan nama sheet dan tanda seru.

    Contohnya, untuk mencari nilai A2 dalam kisaran A2:B6 pada Jan lembar di dalam Laporan_penjualan.xlsx buku kerja, gunakan rumus ini:

    =VLOOKUP(A2, [Sales_reports.xlsx]Jan!$A$2:$B$6, 2, FALSE)

    Untuk detail lengkapnya, silakan lihat VLOOKUP dari buku kerja lain di Excel.

    Vlookup di beberapa lembar dengan IFERROR

    Ketika kamu perlu mencari di antara lebih dari dua sheet, solusi termudahnya adalah dengan menggunakan VLOOKUP yang dikombinasikan dengan IFERROR. Idenya adalah dengan menyarangkan beberapa fungsi IFERROR untuk mengecek beberapa lembar kerja satu per satu: jika VLOOKUP pertama tidak menemukan kecocokan pada sheet pertama, cari di sheet berikutnya, dan seterusnya.

    IFERROR(VLOOKUP(...), IFERROR(VLOOKUP(...), ..., " Tidak ditemukan "))

    Untuk melihat bagaimana pendekatan ini bekerja pada data kehidupan nyata, mari kita perhatikan contoh berikut ini. Ringkasan tabel yang ingin kita isi dengan nama dan jumlah item dengan mencari nomor pesanan di Barat dan Timur lembar:

    Pertama, kita akan menarik itemnya. Untuk ini, kita menginstruksikan rumus VLOOKUP untuk mencari nomor pesanan di A2 pada Timur sheet dan mengembalikan nilai dari kolom B (kolom ke-2 dalam table_array A2:C6). Jika tidak ditemukan kecocokan yang tepat, maka cari di dalam Barat Jika kedua Vlookup gagal, kembalikan "Tidak ditemukan".

    =IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 2, FALSE), "Not found"))

    Untuk mengembalikan jumlahnya, cukup ubah nomor indeks kolom ke 3:

    =IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 3, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 3, FALSE), "Not found"))

    Tip. Jika diperlukan, anda bisa menentukan susunan tabel yang berbeda untuk fungsi VLOOKUP yang berbeda. Dalam contoh ini, kedua lembar pencarian memiliki jumlah baris yang sama (A2:C6), tetapi lembar kerja anda mungkin berbeda ukurannya.

    Vlookup di beberapa buku kerja

    Untuk Vlookup antara dua atau lebih buku kerja, apit nama buku kerja dalam tanda kurung siku dan letakkan sebelum nama lembar. Misalnya, berikut ini cara Anda dapat Vlookup di dua file yang berbeda ( Buku1 dan Buku2 ) dengan formula tunggal:

    =IFERROR(VLOOKUP(A2, [Book1.xlsx]East!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, [Book2.xlsx]West!$A$2:$C$6, 2, FALSE), "Tidak ditemukan")))

    Buat nomor indeks kolom dinamis untuk Vlookup beberapa kolom

    Dalam situasi ketika Anda perlu mengembalikan data dari beberapa kolom, membuat col_index_num dinamis bisa menghemat waktu Anda. Ada beberapa penyesuaian yang harus dilakukan:

    • Untuk col_index_num argumen, gunakan fungsi COLUMNS yang mengembalikan jumlah kolom dalam larik tertentu: COLUMNS($A$1:B$1). (Koordinat baris tidak terlalu penting, bisa baris apa saja).
    • Dalam lookup_value argumen, kunci referensi kolom dengan tanda $ ($ A2), sehingga tetap diperbaiki saat menyalin rumus ke kolom lain.

    Hasilnya, Anda mendapatkan semacam rumus dinamis yang mengekstrak nilai yang cocok dari kolom yang berbeda, tergantung pada kolom mana rumus tersebut disalin:

    =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), "Tidak ditemukan"))

    Ketika dimasukkan dalam kolom B, COLUMNS($A$1:B$1) dievaluasi menjadi 2 yang memberitahu VLOOKUP untuk mengembalikan nilai dari kolom ke-2 dalam larik tabel.

    Saat disalin ke kolom C (yaitu Anda telah menyeret rumus dari B2 ke C2), B $ 1 berubah menjadi C $ 1 karena referensi kolom bersifat relatif. Akibatnya, COLUMNS ($ A $ 1: C $ 1) dievaluasi menjadi 3 yang memaksa VLOOKUP untuk mengembalikan nilai dari kolom ke-3.

    Rumus ini bekerja dengan baik untuk 2 - 3 lembar pencarian. Jika kamu memiliki lebih banyak, IFERROR yang berulang-ulang akan menjadi terlalu merepotkan. Contoh berikutnya menunjukkan pendekatan yang sedikit lebih rumit namun jauh lebih elegan.

    Vlookup beberapa lembar dengan INDIRECT

    Satu lagi cara untuk Vlookup antara beberapa lembar di Excel adalah dengan menggunakan kombinasi fungsi VLOOKUP dan INDIRECT. Metode ini membutuhkan sedikit persiapan, tetapi pada akhirnya, Anda akan memiliki rumus yang lebih ringkas untuk Vlookup di sejumlah spreadsheet.

    Rumus umum untuk Vlookup di seluruh lembar adalah sebagai berikut:

    VLOOKUP( lookup_value , INDIRECT("'"&INDEX( Lookup_sheets , MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets & "'! lookup_range "), lookup_value )>0), 0)) & "'! table_array "), col_index_num (FALSE)

    Di mana:

    • Lookup_sheets - kisaran bernama yang terdiri dari nama-nama lembar pencarian.
    • Lookup_value - nilai yang akan dicari.
    • Lookup_range - rentang kolom dalam lembar pencarian tempat mencari nilai pencarian.
    • Table_array - rentang data dalam lembar pencarian.
    • Col_index_num - nomor kolom dalam larik tabel yang akan dikembalikan nilainya.

    Agar rumus berfungsi dengan benar, harap diingat peringatan berikut ini:

    • Ini adalah rumus array, yang harus diselesaikan dengan menekan Ctrl + Shift + Enter kunci bersama.
    • Semua lembaran harus memiliki urutan kolom yang sama .
    • Karena kita menggunakan satu larik tabel untuk semua lembar pencarian, tentukan jangkauan terbesar jika lembar Anda memiliki jumlah baris yang berbeda.

    Cara menggunakan rumus untuk Vlookup di seluruh lembar

    Untuk Vlookup beberapa lembar sekaligus, lakukan langkah-langkah ini:

    1. Tuliskan semua nama lembar pencarian di suatu tempat di buku kerja Anda dan beri nama rentang itu ( Lookup_sheets dalam kasus kami).

  • Sesuaikan rumus umum untuk data Anda. Dalam contoh ini, kita akan menjadi:
    • mencari nilai A2 ( lookup_value )
    • dalam kisaran A2:A6 ( lookup_range ) dalam empat lembar kerja ( Timur , Utara , Selatan dan Barat ), dan
    • menarik nilai yang cocok dari kolom B, yaitu kolom 2 ( col_index_num ) dalam rentang data A2:C6 ( table_array ).

    Dengan argumen-argumen di atas, rumusnya berbentuk seperti ini:

    =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)

    Harap perhatikan bahwa kami mengunci kedua rentang ($ A $ 2: $ A $ 6 dan $ A $ 2: $ C $ 6) dengan referensi sel absolut.

  • Masukkan rumus di sel paling atas (B2 dalam contoh ini) dan tekan Ctrl + Shift + Enter untuk menyelesaikannya.
  • Klik dua kali atau seret gagang isian untuk menyalin rumus ke bawah kolom.
  • Hasilnya, kami memiliki rumus untuk mencari nomor pesanan di 4 lembar dan mengambil item yang sesuai. Jika nomor pesanan tertentu tidak ditemukan, kesalahan # N / A ditampilkan seperti di baris 14:

    Untuk mengembalikan jumlahnya, cukup ganti 2 dengan 3 di dalam col_index_num argumen sebagai jumlah yang ada di kolom ke-3 dari array tabel:

    =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)

    Jika Anda ingin mengganti notasi kesalahan #N/A standar dengan teks Anda sendiri, bungkus rumus ke dalam fungsi 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), "Tidak ditemukan")

    Vlookup beberapa lembar di antara buku kerja

    Rumus generik ini (atau variasinya) juga bisa digunakan untuk Vlookup beberapa lembar dalam sebuah buku kerja yang berbeda Untuk ini, gabungkan nama buku kerja di dalam INDIRECT seperti yang ditunjukkan pada rumus di bawah ini:

    =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), "Tidak ditemukan")

    Vlookup antar lembar dan mengembalikan beberapa kolom

    Jika Anda ingin menarik data dari beberapa kolom, a rumus larik multi-sel dapat melakukannya sekaligus. Untuk membuat formula seperti itu, berikan konstanta array untuk col_index_num argumen.

    Dalam contoh ini, kita ingin mengembalikan nama item (kolom B) dan jumlah (kolom C), yang masing-masing merupakan kolom ke-2 dan ke-3 dalam larik tabel. Jadi, larik yang diperlukan adalah {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)

    Untuk memasukkan rumus dengan benar dalam beberapa sel, inilah yang perlu Anda lakukan:

    • Di baris pertama, pilih semua sel yang akan diisi (B2: C2 dalam contoh kita).
    • Ketik rumus dan tekan Ctrl + Shift + Enter . Ini memasukkan rumus yang sama di sel yang dipilih, yang akan mengembalikan nilai yang berbeda di setiap kolom.
    • Seret ke bawah rumus ke baris yang tersisa.

    Bagaimana formula ini bekerja

    Untuk memahami logikanya dengan lebih baik, mari kita uraikan rumus dasar ini ke masing-masing fungsi:

    =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)

    Bekerja dari dalam ke luar, inilah yang dilakukan formula ini:

    KOUNTIF dan TIDAK LANGSUNG

    Singkatnya, INDIRECT membangun referensi untuk semua lembar pencarian, dan COUNTIF menghitung kemunculan nilai pencarian (A2) dalam setiap lembar:

    --(COUNTIF( INDIRECT("'"&Lookup_sheets&"'!$A$2:$A$6"), $A2)>0)

    Secara lebih rinci:

    Pertama, Anda menggabungkan nama rentang (Lookup_sheets) dan referensi rentang ($ A $ 2: $ A $ 6), menambahkan tanda apostrof dan tanda seru di tempat yang tepat untuk membuat referensi eksternal, dan mengumpankan string teks yang dihasilkan ke fungsi INDIRECT untuk secara dinamis merujuk ke lembar pencarian:

    INDIRECT({"'East'!$A$2:$A$6"; "'South'!$A$2:$A$6"; "'North'!$A$2:$A$6"; "'West'!$A$2:$A$6"})

    COUNTIF memeriksa setiap sel dalam rentang A2:A6 pada setiap lembar pencarian terhadap nilai di A2 pada lembar utama dan mengembalikan hitungan kecocokan untuk setiap lembar. Dalam dataset kami, nomor urutan di A2 (101) ditemukan di Barat yang ke-4 dalam rentang yang disebutkan, sehingga COUNTIF mengembalikan larik ini:

    {0;0;0;1}

    Selanjutnya, Anda membandingkan setiap elemen dari larik di atas dengan 0:

    --({0; 0; 0; 0; 1}>0)

    Ini menghasilkan larik nilai TRUE (lebih besar dari 0) dan FALSE (sama dengan 0), yang Anda paksa menjadi 1 dan 0 dengan menggunakan unary ganda (--), dan mendapatkan larik berikut sebagai hasilnya:

    {0; 0; 0; 1}

    Operasi ini merupakan tindakan pencegahan ekstra untuk menangani situasi ketika lembar pencarian berisi beberapa kejadian dari nilai pencarian, dalam hal ini COUNTIF akan mengembalikan hitungan lebih besar dari 1, sementara kita hanya menginginkan 1 dan 0 dalam larik akhir (sebentar lagi, Anda akan mengerti mengapa).

    Setelah semua transformasi ini, rumus kita terlihat sebagai berikut:

    VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, {0;0;0;1} , 0)) &"'!$A$2:$C$6"), 2, FALSE)

    INDEX dan MATCH

    Pada titik ini, kombinasi INDEX MATCH klasik masuk:

    INDEX(Lookup_sheets, MATCH(1, {0;0;0;0;1}, 0))

    Fungsi MATCH yang dikonfigurasi untuk pencocokan tepat (0 di argumen terakhir) mencari nilai 1 dalam larik {0;0;0;0;1} dan mengembalikan posisinya, yaitu 4:

    INDEX(Lookup_sheets, 4)

    Fungsi INDEX menggunakan angka yang dikembalikan oleh MATCH sebagai argumen nomor baris (row_num), dan mengembalikan nilai ke-4 dalam rentang bernama Lookup_sheets yaitu Barat .

    Jadi, rumusnya lebih lanjut dikurangi menjadi:

    VLOOKUP($A2, INDIRECT("'"&" West "&"'!$A$2:$C$6"), 2, FALSE)

    VLOOKUP dan INDIRECT

    Fungsi INDIRECT memproses string teks di dalamnya:

    INDIRECT("'"& "West"&"'!$A$2:$C$6")

    Dan mengubahnya menjadi referensi yang menuju ke table_array argumen dari VLOOKUP:

    VLOOKUP($A2, 'West'!$A$2:$C$6 , 2, FALSE)

    Akhirnya, rumus VLOOKUP yang sangat standar ini mencari nilai A2 dalam kolom pertama kisaran A2:C6 pada Barat sheet dan mengembalikan kecocokan dari kolom ke-2. Itu saja!

    VLOOKUP dinamis untuk mengembalikan data dari beberapa lembar ke dalam sel yang berbeda

    Pertama-tama, mari kita definisikan apa sebenarnya arti kata "dinamis" dalam konteks ini dan bagaimana formula ini akan berbeda dari formula sebelumnya.

    Jika Anda memiliki potongan besar data dalam format yang sama yang dibagi ke dalam beberapa spreadsheet, Anda mungkin ingin mengekstrak informasi dari lembar yang berbeda ke dalam sel yang berbeda. Gambar di bawah ini mengilustrasikan konsepnya:

    Tidak seperti rumus sebelumnya yang mengambil nilai dari sheet tertentu berdasarkan pengidentifikasi unik, kali ini kita ingin mengekstrak nilai dari beberapa sheet sekaligus.

    Dalam kedua kasus tersebut, Anda perlu melakukan sedikit persiapan dan membuat rentang bernama untuk sel data di setiap lembar pencarian. Untuk contoh ini, kami mendefinisikan rentang berikut:

    • Timur_Penjualan - A2:B6 pada lembar Timur
    • Utara_Penjualan - A2:B6 pada lembar Utara
    • Selatan_Penjualan - A2:B6 pada lembar Selatan
    • Barat_Penjualan - A2:B6 pada lembar Barat

    VLOOKUP dan IF bersarang

    Jika Anda memiliki jumlah lembar yang masuk akal untuk dicari, Anda dapat menggunakan fungsi IF bersarang untuk memilih lembar berdasarkan kata kunci di sel yang telah ditentukan sebelumnya (sel B1 hingga D1 dalam kasus kami).

    Dengan nilai pencarian di A2, rumusnya adalah sebagai berikut:

    =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)

    Diterjemahkan ke dalam bahasa Inggris, bagian IF berbunyi:

    Jika B1 adalah Timur , lihat dalam rentang bernama Timur_Penjualan ; jika B1 adalah Utara , lihat dalam rentang bernama Utara_Penjualan ; jika B1 adalah Selatan , lihat dalam rentang bernama Selatan_Penjualan ; dan jika B1 adalah Barat , lihat dalam rentang bernama Barat_Penjualan .

    Rentang yang dikembalikan oleh IF menuju ke table_array dari VLOOKUP, yang menarik nilai yang cocok dari kolom ke-2 pada lembar yang sesuai.

    Penggunaan referensi campuran yang cerdas untuk nilai pencarian ($ A2 - kolom absolut dan baris relatif) dan uji logis IF (B $ 1 - kolom relatif dan baris absolut) memungkinkan penyalinan rumus ke sel lain tanpa perubahan apa pun - Excel menyesuaikan referensi secara otomatis berdasarkan posisi relatif baris dan kolom.

    Jadi, kita masukkan rumus di B2, salin ke kanan dan ke bawah ke sebanyak mungkin kolom dan baris yang diperlukan, dan dapatkan hasil berikut:

    VLOOKUP TIDAK LANGSUNG

    Ketika bekerja dengan banyak sheet, beberapa level bersarang bisa membuat formula terlalu panjang dan sulit dibaca. Cara yang jauh lebih baik adalah dengan membuat rentang vlookup dinamis dengan bantuan INDIRECT:

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

    Di sini, kami menggabungkan referensi ke sel yang berisi bagian unik dari rentang bernama (B1) dan bagian umum (_Penjualan). Ini menghasilkan string teks seperti "East_Sales", yang INDIRECT ubah menjadi nama rentang yang dapat dipahami oleh Excel.

    Hasilnya, Anda mendapatkan formula ringkas yang bekerja dengan indah pada sejumlah lembar:

    Begitulah cara Vlookup antara sheet dan file di Excel. Saya berterima kasih telah membaca dan berharap dapat melihat Anda di blog kami minggu depan!

    Buku kerja latihan untuk diunduh

    Vlookup beberapa contoh lembar (file .xlsx)

    Michael Brown adalah penggemar teknologi berdedikasi dengan hasrat untuk menyederhanakan proses kompleks menggunakan perangkat lunak. Dengan pengalaman lebih dari satu dekade di industri teknologi, dia telah mengasah keahliannya di Microsoft Excel dan Outlook, serta Google Spreadsheet dan Dokumen. Blog Michael didedikasikan untuk berbagi pengetahuan dan keahliannya dengan orang lain, memberikan tip dan tutorial yang mudah diikuti untuk meningkatkan produktivitas dan efisiensi. Apakah Anda seorang profesional berpengalaman atau pemula, blog Michael menawarkan wawasan berharga dan saran praktis untuk mendapatkan hasil maksimal dari perangkat lunak penting ini.