Cara Pencocokan Indeks ke atas dari sel yang ditentukan hingga non-kosong


3

Saya punya data dalam semacam tata letak pohon direktori (Lihat gambar)

Pada dasarnya saya ingin menggunakan satu kode pencarian sebagai titik referensi dan minta excel melihat ke atas di kolom masing-masing untuk menampilkan "direktori induk".

Saat ini saya memiliki indeks yang memberi tahu saya kode apa itu, tapi saya ingin menyiapkan alat pencarian (Lihat tabel di bawah pada gambar di bawah) yang menunjukkan semua level sekaligus. Pada gambar saya memasukkan nilai yang ingin saya kembalikan menggunakan rumus.

Jadi jika saya memasukkan kode level 4, saya ingin menggunakan rumus yang akan mengembalikan program level 4, 3, 2, dan 1. Untuk kode level 3, saya ingin mencari untuk mengembalikan program level 3, 2, dan 1.

Ada 10.000 baris data.

masukkan deskripsi gambar di sini

Tampaknya sangat sederhana bagi saya .... Mulai pada baris ini dan lihat ke atas di kolom ini sampai Anda mencapai nilai ..... Tapi sepertinya itu tidak begitu sederhana.

Bantuan / tips akan sangat dihargai!

-Alex


Ini mungkin mulai Anda ke arah yang benar (konfirmasi dengan ctrl + shift + enter): =MAX(IF(NOT(ISBLANK(OFFSET(A2,,,MATCH(H2,D2:D6,0)))),ROW(A2:A6),"")). Dengan asumsi data dalam A1: F6, mengembalikan baris sel non-kosong pertama di kolom A, mencari dari kode yang dimasukkan dalam H2. Saya kemungkinan besar dapat mengirim jawaban yang lebih lengkap besok.
Kyle

Jawaban:


3

Seperti yang Anda perhatikan, Excel tidak mendukung "melihat ke atas." Fungsi suka index()atau vlookup()bagus untuk menemukan pertandingan pertama , tetapi bukan yang terakhir .

Dengan asumsi data Anda ada di sel A1: F10, rumus ini menemukan sel non-kosong terakhir di kolom A, mulai dari kode (kolom D) yang dimasukkan dalam sel H2. Itu dapat diisi ulang secara otomatis (untuk menemukan kolom Anda yang lain) dan ke bawah (untuk mencari kode lainnya). Ini adalah formula array dan harus dikonfirmasi dengan ctrl + shift + enter.

=INDEX(A$2:A$10,MAX(IF(NOT(ISBLANK(OFFSET(A$2,,,MATCH($H2,$D$2:$D$10,0)))),ROW(OFFSET(A$2,,,MATCH($H2,$D$2:$D$10,0))),""))-1)

OFFSET(A$2,,,MATCH($H2,$D$2:$D$10,0)) digunakan untuk secara dinamis mengukur array pencarian sehingga dimulai pada A2, dan berakhir pada baris di mana kode yang diinginkan ditemukan. Jadi jika kode Anda terletak di D5, bagian ini kembaliA2:A5

MAX(IF(NOT(ISBLANK(...)),ROW(...),"")) Ini mengembalikan nomor baris sel non-kosong tertinggi dalam rentang yang kami temukan sebelumnya.

INDEX(A$2:A$10,...-1)dan akhirnya, index()menemukan nilai sebenarnya dari sel yang kami temukan. Kami kurangi satu karena rentang pencarian dimulai pada baris 2, sedangkan jumlah baris yang kami gunakan, jelas, dimulai pada 1.


Ini bekerja dengan baik . Saya telah memikirkan selama ini bahwa jika saja saya bisa menggunakan rentang dinamis saya akan menjadi jauh lebih dekat untuk bisa mengetahuinya sendiri haha. Formula dan penjelasan Anda tentang setiap bagian membantu saya mencapai apa yang saya inginkan dan juga memperoleh lebih banyak pengetahuan. Terima kasih!
Alex
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.