@Gdran...
Jadi gini gan. Formulanya khan begini :
=IFERROR(INDEX(rgTanggal;1;INT(SMALL(ARRAYFORMULA(IF(rgData=$A3;COLUMN(rgData);""));1)/6)*6+1);"~ NO DATA ~")
dari formula tersebut,
--- notasi 1) itu bagian dari fungsi SMALL, yakni argumen posisi indeks nilai terkecil yang ingin diambil atau dikembalikan, dalam hal ini indeks ke-1 (yang paling kecil)
--- notasi /6) merupakan bagian dari fungsi INT, yang berfungsi untuk membulatkan nilai ke bilangan bulat terdekat. Misalkan fungsi SMALL menghasilkan nilai 2, maka 2/6 = 0.33333, sehingga INT(0.33333) = 0.
Angka 6 sendiri digunakan karena untuk setiap blok tanggal pada baris ke-1 itu terdiri dari 6 kolom.
--- notasi *6 bertujuan mengalikan nilai hasil dari fungsi INT dengan jumlah kolom per blok tanggal pada baris ke-1 tadi. Jadi, jika hasil sebelumnya adalah 0 (nol), maka 0*6 = 0.
--- notasi +1 berguna untuk menambahkan hasil dari perkalian fungsi INT dengan angka 6 di atas, agar merujuk ke kolom yang tepat, karena fungsi di atas akan menghasilkan nilai 0 (nol) untuk indeks kolom terkecil. Karena aktualnya tidak ada kolom 0, maka harus ditambahkan dengan 1 agar bisa merujuk ke kolom 1 (kolom A).
Jadi, jika misalnya nilai yang dicari ditemukan di baris ke-4 kolom ke-8, maka :
=INT(SMALL(ARRAYFORMULA(IF(rgData=$A3;COLUMN(rgData);""));1)/6)*6+1
=INT(SMALL(8)/6)*6+1
=INT(1.33333)*6+1
=INT(1)*6+1
=6+1
=7
Sehingga fungsi INDEX akan mengambil nilai pada range A1:DJ1 pada baris ke-1 kolom ke-7 (blok tanggal ke 2).
Demikian.