Periksa apakah nilai sel ada di kolom, lalu dapatkan nilai sel berikutnya

89

Setelah memeriksa apakah nilai sel ada di kolom, saya perlu mendapatkan nilai sel di sebelah sel yang cocok . Misalnya, saya memeriksa apakah nilai cell A1ada di column B, dan menganggapnya cocok B5, maka saya ingin nilainya masuk cell C5.

Untuk mengatasi paruh pertama masalah, saya melakukan ini ...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")

... dan berhasil. Kemudian, berkat jawaban sebelumnya di SO , saya juga bisa mendapatkan nomor baris dari sel yang cocok:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match on Row " & MATCH(A1,B:B, 0))

Jadi wajar saja, untuk mendapatkan nilai sel berikutnya, saya mencoba ...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", C&MATCH(A1,B:B, 0))

... dan itu tidak berhasil.

Apa yang saya lewatkan? Bagaimana cara menambahkan nomor kolom ke nomor baris yang dikembalikan untuk mencapai hasil yang diinginkan?

Merobek
sumber

Jawaban:

99

Gunakan fungsi yang berbeda, seperti VLOOKUP:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))
CustomX
sumber
1
Terima kasih! Ini bekerja juga! Dan saya pikir akan lebih baik menggunakan VLOOKUP(A1, B:C, 2, FALSE)daripada menggunakan rentang tetap (untuk mengakomodasi array pencarian yang berkembang)?
SNag
1
Ya, baru saja menggunakan rentang tetap ini sebagai ujian. Diedit dalam jawaban saya.
CustomX
Anda tidak perlu di IFERRORsini. Ini berfungsi dengan baik tanpa itu, karena VLOOKUP hanya dijalankan jika ada kecocokan.
SNag
Ups! Sepertinya saya telah menguji di kolom yang salah: P Memang tanpa IFERROR, ini berfungsi dengan baik juga: P
CustomX
3
Ini lebih tua dari yang lama, tetapi saya hanya ingin mengatakan bahwa saya telah menggunakan ini selama bertahun-tahun dan itu benar-benar mengganggu saya bahwa Anda tidak pernah diberi jawaban terbaik. Saya suka itu membuat tabel skalabel untuk membandingkan beberapa kolom.
DuffDuff
37

Setelah jawaban t.thielemans , saya mengerjakannya saja

=VLOOKUP(A1, B:C, 2, FALSE) 

berfungsi dengan baik dan melakukan apa yang saya inginkan, kecuali bahwa ia kembali #N/Auntuk yang tidak cocok; jadi cocok untuk kasus di mana diketahui bahwa nilai pasti ada di kolom pencarian.

Edit (berdasarkan komentar t.thielemans):

Untuk menghindari #N/Anon-pertandingan, lakukan:

=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")
Merobek
sumber
3
Gunakan ini sebagai gantinya IFERROR(VLOOKUP(A1, B:C, 2, FALSE),0). Saya juga menambahkan ini ke jawaban saya. 0 menjadi nilai apa pun yang Anda inginkan :) (gunakan ini dalam kode akan menyebabkan Tidak Ada Kecocokan jika tidak ada kecocokan;)
CustomX
7

Bagaimana dengan ini?

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", INDIRECT(ADDRESS(MATCH(A1,B:B, 0), 3)))

Angka "3" pada akhirnya berarti kolom C.

Vincent Tan
sumber
2
Fantastis! Saya baru saja mencoba persis seperti itu (berdasarkan Excel: dapatkan konten sel yang diberi nomor baris dan kolom ), dan hendak menjawab pertanyaan saya sendiri, tetapi Anda mengalahkan saya! Terima kasih, ini berfungsi dengan baik!
SNag