Isi kandungan
Tutorial ini menunjukkan cara menggunakan INDEX dan MATCH dalam Excel dan cara ia lebih baik daripada VLOOKUP.
Dalam beberapa artikel baru-baru ini, kami berusaha keras untuk menerangkan asas fungsi VLOOKUP kepada pemula dan menyediakan contoh formula VLOOKUP yang lebih kompleks kepada pengguna yang berkuasa. Dan sekarang, saya akan cuba jika tidak mahu memberitahu anda supaya tidak menggunakan VLOOKUP, kemudian sekurang-kurangnya menunjukkan kepada anda cara alternatif untuk melakukan carian menegak dalam Excel.
"Untuk apa saya memerlukannya?" anda mungkin tertanya-tanya. Kerana VLOOKUP mempunyai banyak batasan yang boleh menghalang anda daripada mendapat hasil yang diinginkan dalam banyak situasi. Sebaliknya, gabungan INDEX MATCH adalah lebih fleksibel dan mempunyai banyak ciri hebat yang menjadikannya lebih baik daripada VLOOKUP dalam banyak aspek.
Excel INDEX dan fungsi MATCH - asas
Memandangkan tujuan tutorial ini adalah untuk menunjukkan cara alternatif untuk melakukan vlookup dalam Excel dengan menggunakan gabungan fungsi INDEX dan MATCH, kami tidak akan memikirkan sintaksnya dan kegunaan. Kami akan merangkumi hanya minimum yang diperlukan untuk memahami idea umum dan kemudian melihat secara mendalam pada contoh formula yang mendedahkan semua kelebihan menggunakan INDEX MATCH dan bukannya VLOOKUP.
Fungsi INDEKS - sintaks dan penggunaan
Fungsi Excel INDEX mengembalikan nilai dalam tatasusunan berdasarkan nombor baris dan lajur yang anda tentukan. Sintaks fungsi INDEX adalah mudah:
( kriteria1= julat1) * ( kriteria2= julat2), 0))}Nota. Ini ialah formula tatasusunan yang mesti dilengkapkan dengan pintasan Ctrl + Shift + Enter.
Dalam jadual sampel di bawah, andaikan anda ingin mencari amaun berdasarkan 2 kriteria, Pelanggan dan Produk .
Formula INDEX MATCH berikut berfungsi dengan baik:
=INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))
Di mana C2:C10 ialah julat untuk mengembalikan nilai, F1 ialah kriteria1, A2:A10 ialah julat untuk dibandingkan dengan kriteria1, F2 ialah kriteria 2, dan B2:B10 ialah julat untuk dibandingkan dengan kriteria2.
Ingat untuk memasukkan formula dengan betul dengan menekan Ctrl + Shift + Enter , dan Excel akan melampirkannya secara automatik kurungan kerinting seperti yang ditunjukkan dalam tangkapan skrin:
Jika anda lebih suka tidak menggunakan formula tatasusunan dalam lembaran kerja anda, tambahkan satu lagi fungsi INDEX pada formula dan lengkapkannya dengan tekan Enter biasa:
Cara formula ini berfungsi
Formula menggunakan pendekatan yang sama seperti fungsi INDEX MATCH asas yang melihat melalui satu lajur. Untuk menilai berbilang kriteria, anda membuat dua atau lebih tatasusunan nilai BENAR dan SALAH yang mewakili padanan dan bukan padanan untuk setiap kriteria individu, dan kemudian darabkan elemen sepadan tatasusunan ini. Operasi pendaraban menukar TRUE dan FALSE kepada 1 dan 0, masing-masing, dan menghasilkan tatasusunan di mana 1 sepadan dengan baris yang sepadan dengan semua kriteria.Fungsi MATCH dengan nilai carian 1 mencari "1" pertama dalam tatasusunan dan menghantar kedudukannya kepada INDEX, yang mengembalikan nilai dalam baris ini daripada lajur yang ditentukan.
Formula bukan tatasusunan bergantung pada keupayaan fungsi INDEX untuk mengendalikan tatasusunan secara asli. INDEX kedua dikonfigurasikan dengan 0 row_num supaya ia akan menghantar keseluruhan tatasusunan lajur kepada MATCH.
Itu adalah penjelasan peringkat tinggi bagi logik formula. Untuk butiran penuh, sila lihat PADAN INDEX Excel dengan berbilang kriteria.
PADAN INDEKS Excel dengan PURATA, MAX, MIN
Microsoft Excel mempunyai fungsi khas untuk mencari nilai minimum, maksimum dan purata dalam julat. Tetapi bagaimana jika anda perlu mendapatkan nilai daripada sel lain yang dikaitkan dengan nilai tersebut? Dalam kes ini, gunakan fungsi MAX, MIN atau AVERAGE bersama-sama INDEX MATCH.
INDEX MATCH dengan MAX
Untuk mencari nilai terbesar dalam lajur D dan mengembalikan nilai daripada lajur C dalam baris yang sama, gunakan formula ini:
=INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))
PADAN INDEKS dengan MIN
Untuk mencari nilai terkecil dalam lajur D dan tarik nilai yang berkaitan daripada lajur C, gunakan yang ini :
=INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))
PADANAN INDEKS dengan PURATA
Untuk menentukan nilai yang paling hampir dengan purata dalam D2:D10 dan mendapatkan nilai yang sepadan daripada lajur C, ini ialah formula untuk digunakan:
=INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))
Bergantung pada cara data anda disusun, bekalkan sama ada 1 atau -1 kepada argumen ketiga (match_type) daripadafungsi MATCH:
- Jika lajur carian anda (lajur D dalam kes kami) diisih menaik , letakkan 1. Formula akan mengira nilai terbesar iaitu kurang daripada atau sama dengan nilai purata.
- Jika lajur carian anda diisih menurun , masukkan -1. Formula akan mengira nilai terkecil yang lebih besar daripada atau sama dengan nilai purata.
- Jika tatasusunan carian anda mengandungi nilai tepat sama dengan purata, anda boleh masukkan 0 untuk padanan tepat. Tiada pengisihan diperlukan.
Dalam contoh kami, populasi dalam lajur D diisih dalam tertib menurun, jadi kami menggunakan -1 untuk jenis padanan. Hasilnya, kita mendapat "Tokyo" kerana penduduknya (13,189,000) adalah padanan terdekat yang lebih besar daripada purata (12,269,006).
Anda mungkin ingin tahu untuk mengetahuinya VLOOKUP juga boleh melakukan pengiraan sedemikian, tetapi sebagai formula tatasusunan: VLOOKUP dengan AVERAGE, MAX, MIN.
Menggunakan INDEX MATCH dengan IFNA / IFERROR
Seperti yang anda mungkin perasan, jika INDEX MATCH formula dalam Excel tidak dapat mencari nilai carian, ia menghasilkan ralat #N/A. Jika anda ingin menggantikan tatatanda ralat standard dengan sesuatu yang lebih bermakna, bungkus formula PADANAN INDEX anda dalam fungsi IFNA. Contohnya:
=IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No match is found")
Dan sekarang, jika seseorang memasukkan jadual carian yang tidak wujud dalam julat carian, formula akan memberitahu pengguna secara jelas bahawa tiada padananfound:
Jika anda ingin menangkap semua ralat, bukan sahaja #N/A, gunakan fungsi IFERROR dan bukannya IFNA:
=IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, something went wrong!")
Sila ingat bahawa dalam banyak situasi, mungkin tidak bijak untuk menyembunyikan semua ralat kerana ia memberitahu anda tentang kemungkinan ralat dalam formula anda.
Begitulah cara menggunakan INDEX dan MATCH dalam Excel. Saya harap contoh formula kami akan membantu anda dan tidak sabar untuk berjumpa anda di blog kami minggu hadapan!
Berlatih buku kerja untuk muat turun
Contoh PADANAN INDEX Excel (fail.xlsx)
INDEX(array, row_num, [column_num])Berikut ialah penjelasan yang sangat mudah bagi setiap parameter:
- array - julat sel yang anda ingin pulangkan nilai daripada.
- row_num - nombor baris dalam tatasusunan yang anda mahu kembalikan nilai. Jika diabaikan, bilangan_lajur diperlukan.
- nombor_lajur - nombor lajur dalam tatasusunan yang anda mahu kembalikan nilai. Jika ditinggalkan, row_num diperlukan.
Untuk mendapatkan maklumat lanjut, sila lihat fungsi Excel INDEX.
Dan berikut ialah contoh formula INDEX dalam bentuk paling ringkas:
=INDEX(A1:C10,2,3)
Formula mencari dalam sel A1 hingga C10 dan mengembalikan nilai sel dalam baris ke-2 dan lajur ke-3, iaitu sel C2.
Sangat mudah, bukan? Walau bagaimanapun, apabila bekerja dengan data sebenar anda tidak akan pernah tahu baris dan lajur yang anda inginkan, di situlah fungsi MATCH berguna.
Fungsi MATCH - sintaks dan penggunaan
Fungsi Excel MATCH mencari nilai carian dalam julat sel dan mengembalikan kedudukan relatif nilai tersebut dalam julat.
Sintaks fungsi MATCH adalah seperti berikut:
MATCH(lookup_value , lookup_array, [match_type])- lookup_value - nombor atau nilai teks yang anda cari.
- lookup_array - julat sel sedang dicari.
- jenis_padan - menentukan sama ada untuk mengembalikan padanan tepat atau padanan terdekat:
- 1 atau ditinggalkan - mencari nilai terbesar yang kurang daripada atau sama dengan nilai carian. Memerlukan mengisih tatasusunan carian dalam tertib menaik.
- 0 - mencari nilai pertama yang betul-betul sama dengan nilai carian. Dalam gabungan INDEX / MATCH, anda hampir selalu memerlukan padanan tepat, jadi anda menetapkan argumen ketiga bagi fungsi MATCH anda kepada 0.
- -1 - mencari nilai terkecil yang lebih besar daripada atau sama dengan lookup_value. Memerlukan mengisih tatasusunan carian dalam tertib menurun.
Contohnya, jika julat B1:B3 mengandungi nilai "New-York", "Paris", "London", formula di bawah mengembalikan nombor 3, kerana "London" ialah entri ketiga dalam julat:
=MATCH("London",B1:B3,0)
Untuk maklumat lanjut, sila lihat fungsi Excel MATCH.
Di pandangan pertama, kegunaan fungsi MATCH mungkin kelihatan meragukan. Siapa yang mengambil berat tentang kedudukan nilai dalam julat? Apa yang kami ingin tahu ialah nilai itu sendiri.
Biar saya ingatkan anda bahawa kedudukan relatif bagi nilai carian (iaitu nombor baris dan lajur) ialah perkara yang anda perlukan untuk bekalkan kepada nombor_baris dan column_num argumen fungsi INDEX. Seperti yang anda ingat, Excel INDEX boleh mencari nilai pada persimpangan baris dan lajur tertentu, tetapi ia tidak dapat menentukan baris dan lajur yang betul-betul anda inginkan.
Cara menggunakan fungsi INDEX MATCH dalam Excel
Sekarang anda tahu asasnya, saya percaya ia adasudah mula memahami cara MATCH dan INDEX berfungsi bersama. Secara ringkasnya, INDEX mencari nilai carian mengikut nombor lajur dan baris, dan MATCH menyediakan nombor tersebut. Itu sahaja!
Untuk carian menegak, anda menggunakan fungsi MATCH sahaja untuk menentukan nombor baris dan membekalkan julat lajur terus kepada INDEX:
INDEX ( lajur untuk mengembalikan nilai daripada, MATCH ( nilai carian, lajur untuk dicari dengan, 0))Masih menghadapi kesukaran untuk memikirkannya? Ia mungkin lebih mudah difahami daripada contoh. Katakan anda mempunyai senarai ibu negara dan penduduknya:
Untuk mencari penduduk ibu kota tertentu, katakan ibu negara Jepun, gunakan formula PADANAN INDEKS berikut:
=INDEX(C2:C10, MATCH("Japan", A2:A10, 0))
Sekarang, mari kita analisis perkara yang sebenarnya dilakukan oleh setiap komponen formula ini:
- Fungsi MATCH mencari nilai carian "Jepun" dalam julat A2: A10 dan mengembalikan nombor 3, kerana "Jepun" adalah ketiga dalam tatasusunan carian.
- Nombor baris pergi terus ke argumen row_num INDEX yang mengarahkannya untuk mengembalikan nilai daripada itu baris.
Jadi, formula di atas bertukar menjadi INDEX(C2:C,3) ringkas yang mengatakan untuk mencari dalam sel C2 hingga C10 dan tarik nilai dari sel ke-3 dalam julat itu, i.e. C4 kerana kita mula mengira dari baris kedua.
Tidak mahu kod keras bandar dalam formula? Masukkannya dalam beberapa sel, katakan F1, bekalkan selrujukan kepada MATCH, dan anda akan mendapat formula carian dinamik:
=INDEX(C2:C10, MATCH(F1,A2:A10,0))
Nota penting! Bilangan baris dalam array argumen INDEX harus sepadan dengan bilangan baris dalam lookup_array argumen MATCH, jika tidak, formula akan menghasilkan hasil yang salah.
Tunggu, tunggu… mengapa tidak Bukankah kita hanya menggunakan formula Vlookup berikut? Apa gunanya membuang masa cuba memikirkan kelainan misteri Excel MATCH INDEX?
=VLOOKUP(F1, A2:C10, 3, FALSE)
Dalam kes ini, tiada gunanya :) Contoh mudah ini adalah untuk tujuan demonstrasi sahaja, supaya anda dapat merasakan bagaimana fungsi INDEX dan MATCH berfungsi bersama. Contoh lain yang mengikuti di bawah akan menunjukkan kepada anda kuasa sebenar gabungan ini yang mudah mengatasi banyak senario kompleks apabila VLOOKUP tersandung.
Petua:
- Dalam Excel 365 dan Excel 2021, anda boleh menggunakan formula INDEX XMATCH yang lebih moden.
- Untuk Helaian Google, lihat contoh formula dengan INDEX MATCH dalam artikel ini.
INDEX MATCH lwn. VLOOKUP
Bila memutuskan fungsi mana yang hendak digunakan untuk carian menegak, kebanyakan guru Excel bersetuju bahawa INDEX MATCH jauh lebih baik daripada VLOOKUP. Walau bagaimanapun, ramai orang masih kekal dengan VLOOKUP, pertama, kerana ia lebih mudah dan, kedua, kerana mereka tidak memahami sepenuhnya semua faedah menggunakan formula INDEX MATCH dalam Excel. Tanpa pemahaman sebegitu tiada siapa yang sanggup meluangkan masa untuk belajarsintaks yang lebih kompleks.
Di bawah, saya akan menunjukkan kelebihan utama MATCH INDEX berbanding VLOOKUP, dan anda memutuskan sama ada ia adalah tambahan yang layak kepada senjata Excel anda.
4 sebab utama untuk digunakan PADANAN INDEX bukannya VLOOKUP
- Pencarian kanan ke kiri. Seperti mana-mana pengguna terpelajar tahu, VLOOKUP tidak boleh melihat ke kirinya, bermakna nilai carian anda hendaklah sentiasa berada dalam lajur paling kiri meja. INDEX MATCH boleh melakukan carian kiri dengan mudah! Contoh berikut menunjukkannya dalam tindakan: Cara Vlookup nilai ke kiri dalam Excel.
- Sisipkan atau padam lajur dengan selamat. Formula VLOOKUP rosak atau menyampaikan hasil yang salah apabila lajur baharu dipadamkan daripada atau ditambahkan pada jadual carian kerana sintaks VLOOKUP memerlukan menentukan nombor indeks lajur yang anda ingin keluarkan data daripadanya. Sememangnya, apabila anda menambah atau memadam lajur, nombor indeks berubah.
Dengan INDEX MATCH, anda menentukan julat lajur pulangan, bukan nombor indeks. Hasilnya, anda bebas untuk memasukkan dan mengalih keluar seberapa banyak lajur yang anda mahu tanpa perlu risau tentang mengemas kini setiap formula yang berkaitan.
- Tiada had untuk saiz nilai carian. Apabila menggunakan fungsi VLOOKUP, jumlah panjang kriteria carian anda tidak boleh melebihi 255 aksara, jika tidak, anda akan mempunyai #VALUE ! ralat. Jadi, jika set data anda mengandungi rentetan panjang, INDEX MATCH adalah satu-satunya yang berfungsipenyelesaian.
- Kelajuan pemprosesan yang lebih tinggi. Jika jadual anda agak kecil, hampir tidak akan terdapat sebarang perbezaan yang ketara dalam prestasi Excel. Tetapi jika lembaran kerja anda mengandungi ratusan atau beribu-ribu baris, dan akibatnya ratusan atau ribuan formula, MATCH INDEX akan berfungsi lebih cepat daripada VLOOKUP kerana Excel perlu memproses hanya carian dan mengembalikan lajur berbanding keseluruhan tatasusunan jadual.
Kesan VLOOKUP pada prestasi Excel mungkin amat ketara jika buku kerja anda mengandungi formula tatasusunan yang kompleks seperti VLOOKUP dan SUM. Intinya ialah menyemak setiap nilai dalam tatasusunan memerlukan panggilan berasingan bagi fungsi VLOOKUP. Jadi, lebih banyak nilai yang terkandung dalam tatasusunan anda dan lebih banyak formula tatasusunan yang anda ada dalam buku kerja, prestasi Excel yang lebih perlahan.
PADAN INDEKS Excel - contoh formula
Mengetahui sebab untuk mempelajari fungsi MATCH INDEX, mari kita ke bahagian yang paling menarik dan lihat bagaimana anda boleh menggunakan pengetahuan teori dalam amalan.
Formula PADANAN INDEKS untuk melihat dari kanan ke kiri
Sebagaimana telah disebutkan, VLOOKUP tidak boleh melihat ke kirinya. Jadi, melainkan nilai carian anda ialah lajur paling kiri, tiada kemungkinan formula Vlookup akan membawakan hasil yang anda inginkan. Fungsi INDEX MATCH dalam Excel adalah lebih serba boleh dan tidak begitu peduli di mana lajur carian dan pemulangan berada.
Untuk contoh ini,kami akan menambah lajur Kedudukan di sebelah kiri jadual sampel kami dan cuba memikirkan bagaimana ibu negara Rusia, Moscow, berada pada kedudukan dari segi populasi.
Dengan nilai carian dalam G1, gunakan formula berikut untuk mencari dalam C2:C10 dan kembalikan nilai yang sepadan daripada A2:A10:
=INDEX(A2:A10,MATCH(G1,C2:C10,0))
Petua. Jika anda merancang untuk menggunakan formula INDEX MATCH anda untuk lebih daripada satu sel, pastikan anda mengunci kedua-dua julat dengan rujukan sel mutlak (seperti $A$2:$A$10 dan $C$2:4C$10) supaya ia tidak akan diherotkan apabila menyalin formula.
INDEX MATCH MATCH untuk mencari dalam baris dan lajur
Dalam contoh di atas, kami menggunakan INDEX MATCH sebagai pengganti VLOOKUP klasik untuk mengembalikan nilai daripada satu lajur yang dipratentukan julat. Tetapi bagaimana jika anda perlu mencari dalam berbilang baris dan lajur? Dalam erti kata lain, bagaimana jika anda ingin melakukan carian yang dipanggil matriks atau dua hala ?
Ini mungkin terdengar rumit, tetapi formulanya sangat serupa kepada fungsi Excel INDEX MATCH asas, dengan hanya satu perbezaan. Cuba teka?
Cuma, gunakan dua fungsi MATCH – satu untuk mendapatkan nombor baris dan satu lagi untuk mendapatkan nombor lajur. Dan saya ucapkan tahniah kepada anda yang telah meneka dengan tepat :)
INDEX (array, MATCH ( nilai vlookup, lajur untuk dicari dengan, 0), MATCH ( nilai hlookup, baris untuk mencari lawan, 0))Dan sekarang, sila lihat jadual di bawah dan mari bina PERLAWANAN INDEXformula untuk mencari penduduk (dalam berjuta-juta) di negara tertentu untuk tahun tertentu.
Dengan negara sasaran dalam G1 (nilai vlookup) dan tahun sasaran dalam G2 (nilai hlookup), formula mengambil bentuk ini :
=INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))
Cara formula ini berfungsi
Setiap kali anda perlu memahami formula Excel yang kompleks, pecahkannya kepada bahagian yang lebih kecil dan lihat apa yang dilakukan oleh setiap fungsi individu:
MATCH(G1,A2:A11,0)
– mencari melalui A2:A11 untuk nilai dalam sel G1 ("China") dan mengembalikan kedudukannya, iaitu 2.
MATCH(G2,B1:D1,0))
– mencari melalui B1:D1 untuk mendapatkan kedudukan nilai dalam sel G2 ("2015"), iaitu 3.
Nombor baris dan lajur di atas pergi ke argumen yang sepadan bagi fungsi INDEX:
INDEX(B2:D11, 2, 3)
Hasilnya, anda mendapat nilai di persimpangan baris ke-2 dan lajur ke-3 dalam julat B2:D11, iaitu nilai dalam sel D3. mudah? Ya!
EXEL INDEX MATCH untuk mencari berbilang kriteria
Jika anda berpeluang membaca tutorial Excel VLOOKUP kami, anda mungkin telah menguji formula untuk Vlookup dengan berbilang kriteria. Walau bagaimanapun, had ketara pendekatan itu ialah keperluan untuk menambah lajur pembantu. Berita baiknya ialah fungsi INDEX MATCH Excel boleh mencari dengan dua atau lebih kriteria juga, tanpa mengubah suai atau menstruktur semula data sumber anda!
Berikut ialah formula INDEX MATCH generik dengan berbilang kriteria:
{=INDEX(( julat_pulangan, MATCH(1,