Formula challenge - differenza dall'ultima voce - Puzzle

Sommario

Il contesto

Un paio di settimane fa, ho ricevuto una domanda interessante da un lettore sul monitoraggio dell'aumento o della perdita di peso in una semplice tabella.

L'idea è di inserire un nuovo peso ogni giorno e calcolare la differenza rispetto al giorno precedente. Quando ogni giorno ha una voce, la formula è semplice:

La differenza può essere calcolata con una formula come questa, inserita in D6 e copiata nella tabella:

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

Tuttavia, quando mancano uno o più giorni, le cose vanno storte e il risultato calcolato non ha senso:

No, non hai guadagnato 157 libbre in un giorno

Il problema è che la formula utilizza la cella vuota nel calcolo, che restituisce zero. Ciò di cui abbiamo bisogno è un modo per individuare e utilizzare l'ultimo peso registrato nella colonna C.

La sfida

Quale formula calcolerà una differenza dall'ultima voce, anche se i giorni sono stati saltati?

Risultato desiderato - differenza utilizzando l'ultima voce precedente

Presupposti

  1. Una singola formula viene inserita in D6 e copiata (ovvero la stessa formula in tutte le celle)
  2. La formula deve gestire una o più voci vuote precedenti
  3. La rimozione di voci vuote (righe) non è consentita
  4. Non sono consentite colonne helper

Nota: un percorso ovvio consiste nell'usare una formula IF annidata. Lo scoraggerei, poiché non scalerà bene per gestire un numero sconosciuto di voci vuote consecutive.

Hai una soluzione? Lascia un commento con la formula proposta qui sotto.

Ho hackerato insieme una formula da solo e condividerò la mia soluzione dopo aver concesso ai lettori intelligenti di inviare le proprie formule.

Credito extra

Cerchi altre sfide? Ecco lo stesso risultato, con un formato numerico personalizzato applicato. Qual è il formato del numero? Suggerimento: l'ho copiato da Mike Alexander sul suo blog Bacon Bits.

Rispondi (fai clic per espandere)

Ci sono davvero buone soluzioni proposte di seguito, inclusa una soluzione molto compatta ed elegante di Panagiotis Stathopoulos. Per la cronaca, sono andato con una RICERCA e una gamma in espansione:

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

I meccanismi di RICERCA per questo tipo di problema sono spiegati in questo esempio.

Articoli interessanti...