Formula kihívás - eltérés a legutóbbi bejegyzéstől Kirakós játék

Tartalomjegyzék

A kontextus

Pár hete érdekes kérdésem volt egy olvasótól a súlygyarapodás vagy fogyás egyszerű táblázatban történő követésével kapcsolatban.

Az ötlet az, hogy minden nap új súlyt kell megadni, és kiszámítani az előző nap különbségét. Amikor minden nap van bejegyzés, a képlet egyszerű:

A különbséget egy ilyen képlettel kell kiszámítani, be kell írni a D6-ba, és le kell másolni a táblázatot:

=IF(C6"",C6-C5,"")

Ha azonban egy vagy több nap elmarad, a dolgok rosszra fordulnak, és a számított eredménynek nincs értelme:

Nem, nem gyarapodott 157 font egy nap alatt

A probléma az, hogy a képlet az üres cellát használja a számítás során, amely nullára értékel. Amire szükségünk van, az a C oszlopban rögzített utolsó súly megtalálása és felhasználása.

A kihívás

Milyen képlet alapján lehet kiszámítani a különbséget az utolsó bejegyzéshez képest, még akkor is, ha a napok kihagyásra kerültek?

Kívánt eredmény - különbség az előző előző bejegyzés felhasználásával

Feltételezések

  1. Egyetlen képletet írunk be a D6-ba, és lemásoljuk (vagyis ugyanaz a képlet az összes cellában)
  2. A képletnek egy vagy több korábbi üres bejegyzést kell kezelnie
  3. Üres bejegyzések (sorok) eltávolítása nem megengedett
  4. Segítő oszlopok nem engedélyezettek

Megjegyzés: az egyik nyilvánvaló út a Beágyazott IF képlet használata. Ettől elkedvetleníteném, mivel ismeretlen számú egymást követő üres bejegyzés kezelése nem lesz megfelelő méretű.

Van megoldás? Hagyjon egy megjegyzést az alábbi javasolt képlettel.

Magam is feltörtem egy képletet, és megosztom a megoldásomat, miután adok egy kis időt az okos olvasóknak, hogy küldjék el saját képleteiket.

Extra hitel

További kihívást keres? Itt ugyanaz az eredmény, egyéni számformátum alkalmazásával. Mi a számformátum? Tipp: Ezt elloptam Mike Alexander-től Bacon Bits blogján.

Válasz (kattintson a kibontáshoz)

Az alábbiakban nagyon jó megoldási javaslatok találhatók, köztük egy nagyon kompakt és elegáns megoldás, amelyet Panagiotis Stathopoulos készített. Ami a feljegyzést illeti, LOOKUP-tal és bővülő választékkal mentem:

=IF(C6"",C6-LOOKUP(2,1/($C$5:C5""),$C$5:C5),"")

A LOOKUP mechanizmusát az ilyen jellegű problémákra ebben a példában ismertetjük.

érdekes cikkek...