Fungsi Excel / VBA untuk menemukan nilai berdasarkan waktu tanggal dan dua kriteria

0

Saya telah mengukur data yang berisi data hunian untuk bangunan. Ada beberapa kamar dan beberapa area kamar dalam setiap kamar di setiap lantai. Nomor kamar berisi lantai di dalamnya sehingga saya tidak perlu mencari berdasarkan lantai.

Dan data hunian memiliki cap waktu yang direkam setiap kali ada kegiatan di daerah itu.

Pada dasarnya, saya ingin Excel untuk melihat dan melihat apakah nomor kamar dan area kamar cocok dengan waktu dan kemudian melaporkan apakah area tersebut ditempati atau tidak.

Saya hanya dapat menemukan INDEX MATCH di mana mereka mencari beberapa kriteria yang tepat, yang tidak berlaku di sini karena saya memerlukan kecocokan terdekat untuk nilai waktu.

Setiap bantuan sangat dihargai! Saya akan sangat tertarik dengan suatu Fungsi yang dapat mencapai ini, tetapi saya terbuka untuk solusi VBA juga.

Terima kasih!

Berikut ini tautan ke datanya

http://jmp.sh/v/D907ef9W3055ThlR1ssa

| Date / Time    | DATE     | TIME  | FLOOR | LAB    | LAB AREA | Occupancy (0 = unoccupied) |
|----------------|----------|-------|-------|--------|----------|----------------------------|
| 9/3/2015 10:30 | 9/3/2015 | 10:30 | 9     | 99400  | A        | 0                          |
| 9/3/2015 10:30 | 9/3/2015 | 10:30 | 10    | 109400 | D        | 0                          |
| 9/3/2015 10:30 | 9/3/2015 | 10:30 | 8     | 89400  | A        | 0                          |
| 9/3/2015 10:31 | 9/3/2015 | 10:31 | 10    | 109400 | D        | 1                          |
| 9/3/2015 10:36 | 9/3/2015 | 10:36 | 8     | 89400  | B        | 0                          |
| 9/3/2015 10:38 | 9/3/2015 | 10:38 | 8     | 89400  | A        | 1                          |
| 9/3/2015 10:40 | 9/3/2015 | 10:40 | 10    | 109410 | A        | 1                          |
| 9/3/2015 10:41 | 9/3/2015 | 10:41 | 15    | 159400 | A        | 1                          |
| 9/3/2015 10:52 | 9/3/2015 | 10:52 | 8     | 89400  | B        | 1                          |
| 9/3/2015 10:57 | 9/3/2015 | 10:57 | 8     | 89400  | E        | 1                          |
| 9/3/2015 11:20 | 9/3/2015 | 11:20 | 10    | 109410 | A        | 0                          |
| 9/3/2015 11:21 | 9/3/2015 | 11:21 | 17    | 179400 | D        | 1                          |
| 9/3/2015 11:21 | 9/3/2015 | 11:21 | 12    | 129400 | E        | 1                          |
| 9/3/2015 11:23 | 9/3/2015 | 11:23 | 10    | 109410 | A        | 1                          |
| 9/3/2015 11:26 | 9/3/2015 | 11:26 | 8     | 89400  | E        | 0                          |
| 9/3/2015 11:54 | 9/3/2015 | 11:54 | 8     | 89400  | C        | 0                          |
| 9/3/2015 14:10 | 9/3/2015 | 14:10 | 17    | 179400 | E        | 0                          |
| 9/3/2015 14:16 | 9/3/2015 | 14:16 | 12    | 129410 | B        | 0                          |
| 9/3/2015 14:17 | 9/3/2015 | 14:17 | 14    | 149410 | A        | 0                          |
| 9/3/2015 14:31 | 9/3/2015 | 14:31 | 17    | 179400 | E        | 1                          |
| 9/3/2015 14:38 | 9/3/2015 | 14:38 | 9     | 99400  | A        | 0                          |
| 9/3/2015 14:43 | 9/3/2015 | 14:43 | 14    | 149410 | A        | 1                          |
| 9/3/2015 14:47 | 9/3/2015 | 14:47 | 17    | 179400 | D        | 1                          |
| 9/3/2015 14:51 | 9/3/2015 | 14:51 | 9     | 99400  | A        | 1                          |
| 9/3/2015 14:56 | 9/3/2015 | 14:56 | 14    | 149410 | A        | 0                          |
| 9/3/2015 15:01 | 9/3/2015 | 15:01 | 10    | 109410 | A        | 0                          |
| 9/3/2015 15:04 | 9/3/2015 | 15:04 | 10    | 109410 | A        | 1                          |
| 9/3/2015 15:07 | 9/3/2015 | 15:07 | 14    | 149410 | A        | 1                          |
| 9/3/2015 15:15 | 9/3/2015 | 15:15 | 8     | 89400  | C        | 1                          |
| 9/3/2015 15:18 | 9/3/2015 | 15:18 | 12    | 129400 | E        | 1                          |
| 9/3/2015 15:22 | 9/3/2015 | 15:22 | 8     | 89400  | E        | 1                          |
| 9/3/2015 15:27 | 9/3/2015 | 15:27 | 17    | 179400 | D        | 0                          |
| 9/3/2015 15:27 | 9/3/2015 | 15:27 | 17    | 179400 | E        | 0                          |
Prevost
sumber
Berikan sampel data. Pencocokan dapat mengembalikan pencocokan perkiraan jika data diurutkan. Setiap saran yang lebih rinci akan membutuhkan pengetahuan tentang struktur data Anda. Oleh karena itu, berikan sampel data.
teylyn
Tidak masalah. Bagaimana / di mana saya dapat memposting sampel data?
Prevost
Gunakan layanan berbagi file, edit pertanyaan Anda dan rekatkan tautannya. Poskan komentar saat Anda sudah melakukannya.
teylyn
Diposting data.
Prevost

Jawaban:

0

Perhatikan tangkapan layar di bawah ini. Untuk memudahkan pemahaman, rumus ini telah dipecah menjadi beberapa sel pembantu, tetapi dapat dibangun untuk bekerja semua dalam satu sel (atau dengan rentang bernama).

Urutkan data terlebih dahulu menurut Tanggal / Waktu, lalu area Lab, lalu Lab.

firstRow       =MATCH(lab&Area,INDEX(FullTable[LAB]&FullTable[LAB AREA],0),0)
lastRow        =COUNTIFS(FullTable[LAB],lab,FullTable[LAB AREA],Area)+firstRow
TimeMatchRow   =MATCH(time,INDEX(FullTable[Date / Time],firstRow):INDEX(FullTable[Date / Time],lastRow),1)
occupancyValue =IF(INDEX(FullTable[Occupancy (0 = unoccupied)],firstRow+TimeMatchRow-1),"occupied","not occupied")

firstRow menetapkan baris pertama tempat kombinasi lab dan area ditemukan. Menambahkan hitungan lab dan kombo area membantu menetapkan baris terakhir rentang yang akan digunakan untuk perkiraan pencarian pada nilai waktu. Dengan 1 sebagai parameter terakhir, Pencocokan akan mengembalikan nilai terkecil berikutnya jika tidak ada kecocokan yang pasti ditemukan. Itu adalah baris tempat pertandingan ditemukan. Terakhir, menggunakan Indeks pada kolom hunian, menambahkan Baris pertama dan baris waktu yang cocok dan sesuaikan dengan satu.

enter image description here

teylyn
sumber
Itu hebat. Apakah Anda dapat menjelaskan apa yang Anda lakukan sedikit lebih baik? Saya terhubung dengan angka-angka dan semuanya berfungsi, tetapi bagaimana Anda menemukan ini? Dan apakah akan ada cara yang setara untuk melakukan tugas ini jika tanggal tidak berurutan secara kronologis?
Prevost