Formeludfordring - forskel fra sidste indlæg - Gåde

Indholdsfortegnelse

Konteksten

For et par uger siden havde jeg et interessant spørgsmål fra en læser om sporing af vægtforøgelse eller tab i en simpel tabel.

Ideen er at indtaste en ny vægt hver dag og beregne forskellen fra den foregående dag. Når hver dag har en post, er formlen ligetil:

Forskellen beregnes med en formel som denne, indtastet i D6 og kopieret ned i tabellen:

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

Men når en eller flere dage går glip af, går tingene galt, og det beregnede resultat giver ikke mening:

Nej, du fik ikke 157 pund på en dag

Problemet er, at formlen bruger den tomme celle i beregningen, som evalueres til nul. Det, vi har brug for, er en måde at finde og bruge den sidste vægt registreret i kolonne C.

Udfordringen

Hvilken formel beregner en forskel fra den sidste post, selv når dage er sprunget over?

Ønsket resultat - forskel ved hjælp af sidste forrige post

Antagelser

  1. En enkelt formel indtastes i D6 og kopieres ned (dvs. samme formel i alle celler)
  2. Formlen skal håndtere en eller flere tidligere tomme poster
  3. Fjernelse af tomme poster (rækker) er ikke tilladt
  4. Ingen hjælpekolonner tilladt

Bemærk: en åbenbar sti er at bruge en Nested IF-formel. Jeg vil afskrække dette, da det ikke skaleres godt til at håndtere et ukendt antal på hinanden følgende blanke poster.

Har du en løsning? Efterlad en kommentar med din foreslåede formel nedenfor.

Jeg hackede selv en formel sammen, og jeg deler min løsning, når jeg har givet de smarte læsere tid til at indsende deres egne formler.

Ekstra kredit

Leder du efter mere udfordring? Her er det samme resultat med et tilpasset nummerformat anvendt. Hvad er nummerformatet? Tip: Jeg fejede dette fra Mike Alexander på hans Bacon Bits-blog.

Svar (klik for at udvide)

Der er virkelig gode foreslåede løsninger nedenfor, herunder en meget kompakt og elegant løsning af Panagiotis Stathopoulos. For ordens skyld gik jeg med en LOOKUP og et voksende sortiment:

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

Mekanikken i LOOKUP til denne slags problemer forklares i dette eksempel.

Interessante artikler...