Formula-haaste - ero viimeiseen ilmoitukseen verrattuna Palapeli

Sisällysluettelo

Konteksti

Pari viikkoa sitten minulla oli mielenkiintoinen kysymys lukijalta painonnousun tai laihtumisen seuraamisesta yksinkertaisessa taulukossa.

Ajatuksena on antaa uusi paino joka päivä ja laskea ero edelliseen päivään. Kun jokaisella päivällä on merkintä, kaava on yksinkertainen:

Ero lasketaan tällä kaavalla, syötetään kohtaan D6 ja kopioidaan taulukosta alaspäin:

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

Kuitenkin, kun yksi tai useampi päivä puuttuu, asiat menevät pieleen, eikä lasketulla tuloksella ole järkeä:

Ei, et saanut 157 kiloa päivässä

Ongelmana on, että kaava käyttää laskennassa tyhjää solua, joka arvioi nollan. Tarvitsemme tavan löytää ja käyttää viimeinen sarakkeeseen C merkitty paino.

Haaste

Mikä kaava laskee eron viimeisestä merkinnästä, vaikka päivät olisi ohitettu?

Haluttu tulos - ero edellisen edellisen merkinnän perusteella

Oletukset

  1. Yksi kaava syötetään kohtaan D6 ja kopioidaan alas (ts. Sama kaava kaikissa soluissa)
  2. Kaavan on käsiteltävä yhtä tai useampaa edellistä tyhjää merkintää
  3. Tyhjien merkintöjen (rivien) poistaminen ei ole sallittua
  4. Apusarakkeita ei sallita

Huomaa: Yksi ilmeinen polku on käyttää sisäkkäisiä IF-kaavoja. Suosittelen tätä, koska se ei skaalaa hyvin käsittelemään tuntematonta määrää peräkkäisiä tyhjiä merkintöjä.

Onko sinulla ratkaisu? Jätä kommentti ehdotetun kaavan alla.

Hakkeroin itse kaavan ja jaan ratkaisuni sen jälkeen, kun annan älykkäille lukijoille jonkin aikaa lähettää omat kaavat.

Lisäpisteet

Etsitkö lisää haasteita? Tässä on sama tulos mukautetun numeromuodon kanssa. Mikä on numeromuoto? Vihje: Pyyhkin tämän Mike Alexanderilta hänen Bacon Bits -blogissaan.

Vastaa (laajenna napsauttamalla)

Alla on todella hyviä ehdotettuja ratkaisuja, mukaan lukien Panagiotis Stathopoulosin erittäin kompakti ja tyylikäs ratkaisu. Ensin ennätys, menin LOOKUPin ja laajenevan valikoiman kanssa:

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

Tämän tyyppisen ongelman LOOKUP-mekaniikka selitetään tässä esimerkissä.

Mielenkiintoisia artikkeleita...