
Contextul
Acum câteva săptămâni, am avut o întrebare interesantă de la un cititor despre urmărirea creșterii sau pierderii în greutate într-un tabel simplu.
Ideea este să introduceți o nouă greutate în fiecare zi și să calculați diferența față de ziua precedentă. Când fiecare zi are o intrare, formula este simplă:
Diferența se calculează cu o formulă ca aceasta, introdusă în D6 și copiată tabelul:
=IF(C6"",C6-C5,"")
Cu toate acestea, atunci când una sau mai multe zile sunt ratate, lucrurile se strică, iar rezultatul calculat nu are sens:
Nu, nu ai câștigat 157 de lire sterline într-o singură zi
Problema este că formula folosește celula goală în calcul, care se evaluează la zero. Avem nevoie de o modalitate de localizare și utilizare a ultimei greutăți înregistrate în coloana C.
Provocarea
Ce formulă va calcula o diferență față de ultima intrare, chiar și când s-au omis zile?
Rezultatul dorit - diferență utilizând ultima intrare anterioară
Ipoteze
- O singură formulă este introdusă în D6 și copiată (adică aceeași formulă în toate celulele)
- Formula trebuie să gestioneze una sau mai multe intrări goale anterioare
- Eliminarea intrărilor goale (rânduri) nu este permisă
- Nu sunt permise coloane de ajutor
Notă: o cale evidentă este utilizarea unei formule IF imbricate. Aș descuraja acest lucru, deoarece nu va scara bine pentru a gestiona un număr necunoscut de intrări goale consecutive.
Ai o soluție? Lasă un comentariu cu formula propusă mai jos.
Am piratat împreună o formulă și voi împărtăși soluția mea după ce voi da cititorilor inteligenți de ceva timp să-și prezinte propriile formule.
Credit suplimentar
Căutați mai multe provocări? Iată același rezultat, cu un format de număr personalizat aplicat. Care este formatul numerelor? Sugestie: Am șters acest lucru de la Mike Alexander pe blogul său Bacon Bits.
Există soluții foarte bune propuse mai jos, inclusiv o soluție foarte compactă și elegantă de la Panagiotis Stathopoulos. Pentru înregistrare, am mers cu o căutare și o gamă extinsă:
=IF(C6"",C6-LOOKUP(2,1/($C$5:C5""),$C$5:C5),"")
Mecanica căutării pentru acest tip de problemă este explicată în acest exemplu.