Vzorec výzva - rozdíl od posledního záznamu - Hádanka

Obsah

Kontext

Před pár týdny jsem měl od čtenáře zajímavou otázku o sledování přírůstku nebo úbytku hmotnosti v jednoduché tabulce.

Myšlenkou je každý den zadat novou váhu a vypočítat rozdíl oproti předchozímu dni. Když má každý den záznam, vzorec je přímočarý:

Rozdíl se vypočítá pomocí vzorce, jako je tento, zadaného v D6 a zkopírovaného do tabulky:

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

Když se však zmešká jeden nebo více dní, situace se zhoršuje a vypočítaný výsledek nedává smysl:

Ne, nezískali jste 157 liber za jeden den

Problém je v tom, že vzorec používá ve výpočtu prázdnou buňku, která se vyhodnotí na nulu. Potřebujeme způsob, jak vyhledat a použít poslední hmotnost zaznamenanou ve sloupci C.

Výzva

Jaký vzorec vypočítá rozdíl oproti poslední položce, i když byly dny vynechány?

Požadovaný výsledek - rozdíl při použití posledního předchozího záznamu

Předpoklady

  1. Jeden vzorec je zadán v D6 a zkopírován dolů (tj. Stejný vzorec ve všech buňkách)
  2. Vzorec musí zpracovat jednu nebo více předchozích prázdných položek
  3. Odebírání prázdných položek (řádků) není povoleno
  4. Nejsou povoleny žádné pomocné sloupce

Poznámka: Jedna zřejmá cesta je použít vzorec vnořeného IF. Odradil bych to, protože nebude dobře fungovat, aby zvládl neznámý počet po sobě jdoucích prázdných záznamů.

Máte řešení? Níže zadejte komentář k navrhovanému vzorci.

Sám jsem hackl vzorec a já se podělím o své řešení poté, co dám chytrým čtenářům nějaký čas, aby předložili své vlastní vzorce.

Kredit navíc

Hledáte další výzvu? Tady je stejný výsledek s použitým vlastním formátem čísel. Jaký je formát čísla? Tip: Toto jsem přetáhl od Mika Alexandra na jeho blogu Bacon Bits.

Odpověď (kliknutím rozbalíte)

Níže jsou uvedena opravdu dobrá navrhovaná řešení, včetně velmi kompaktního a elegantního řešení od společnosti Panagiotis Stathopoulos. Pro záznam jsem šel s LOOKUP a rozšiřujícím se rozsahem:

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

Mechanika VYHLEDÁVÁNÍ pro tento druh problému je vysvětlena v tomto příkladu.

Zajímavé články...