
Isi
Beberapa minggu yang lalu, saya mendapat pertanyaan menarik dari seorang pembaca tentang melacak kenaikan atau penurunan berat badan dalam tabel sederhana.
Idenya adalah memasukkan bobot baru setiap hari, dan menghitung selisihnya dari hari sebelumnya. Ketika setiap hari ada entri, rumusnya langsung:
Selisihnya dihitung dengan rumus seperti ini, dimasukkan di D6, dan disalin ke bawah tabel:
=IF(C6"",C6-C5,"")
Namun, ketika satu hari atau lebih terlewat, semuanya menjadi kacau, dan hasil yang dihitung tidak masuk akal:
Tidak, berat badan Anda tidak bertambah 157 pound dalam satu hari
Masalahnya adalah rumus menggunakan sel kosong dalam penghitungan, yang mengevaluasi ke nol. Yang kita butuhkan adalah cara untuk mencari dan menggunakan bobot terakhir yang dicatat di kolom C.
Tantangan
Rumus apa yang akan menghitung selisih dari entri terakhir, bahkan ketika hari-hari telah dilewati?
Hasil yang diinginkan - perbedaan menggunakan entri sebelumnya yang terakhir
Asumsi
- Formula tunggal dimasukkan di D6 dan disalin (yaitu rumus yang sama di semua sel)
- Rumus harus menangani satu atau banyak entri kosong sebelumnya
- Menghapus entri kosong (baris) tidak diperbolehkan
- Tidak ada kolom pembantu yang diperbolehkan
Catatan: satu jalur yang jelas adalah menggunakan rumus IF bersarang. Saya akan mencegah hal ini, karena tidak akan diskalakan dengan baik untuk menangani sejumlah entri kosong berturut-turut yang tidak diketahui.
Punya solusi? Tinggalkan komentar dengan rumus yang Anda usulkan di bawah ini.
Saya sendiri meretas rumus, dan saya akan membagikan solusi saya setelah saya memberikan waktu kepada pembaca yang cerdas untuk mengirimkan rumus mereka sendiri.
Kredit tambahan
Mencari lebih banyak tantangan? Berikut hasil yang sama, dengan format angka kustom diterapkan. Apa format angka? Petunjuk: Saya mengambil ini dari Mike Alexander di blog Bacon Bits-nya.
Ada solusi yang sangat bagus yang diusulkan di bawah ini, termasuk solusi yang sangat kompak dan elegan oleh Panagiotis Stathopoulos. Sebagai catatan, saya menggunakan LOOKUP dan rentang yang berkembang:
=IF(C6"",C6-LOOKUP(2,1/($C$5:C5""),$C$5:C5),"")
Mekanisme LOOKUP untuk jenis masalah ini dijelaskan dalam contoh ini.