Formulas izaicinājums - atšķirība no pēdējā ieraksta Puzle

Satura rādītājs

Konteksts

Pirms pāris nedēļām man bija interesants lasītāja jautājums par svara pieauguma vai zaudējuma izsekošanu vienkāršā tabulā.

Ideja ir katru dienu ievadīt jaunu svaru un aprēķināt atšķirību no iepriekšējās dienas. Kad katrai dienai ir ieraksts, formula ir vienkārša:

Starpību aprēķina pēc šādas formulas, kas ievadīta D6, un nokopēta tabulā:

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

Tomēr, ja tiek izlaista viena vai vairākas dienas, viss iet greizi, un aprēķinātajam rezultātam nav jēgas:

Nē, vienā dienā jūs nepieņēmāt 157 mārciņas

Problēma ir tāda, ka formula aprēķinā izmanto tukšo šūnu, kas tiek novērtēta līdz nullei. Mums ir nepieciešams veids, kā atrast un izmantot pēdējo C slejā reģistrēto svaru.

Izaicinājums

Kāda formula aprēķinās atšķirību no pēdējā ieraksta, pat ja dienas ir izlaistas?

Vēlamais rezultāts - atšķirība, izmantojot pēdējo iepriekšējo ierakstu

Pieņēmumi

  1. D6 tiek ievadīta un nokopēta viena formula (ti, viena un tā pati formula visās šūnās)
  2. Formulai jāapstrādā viens vai vairāki iepriekšējie tukšie ieraksti
  3. Tukšu ierakstu (rindu) noņemšana nav atļauta
  4. Palīdzības kolonnas nav atļautas

Piezīme: viens acīmredzams ceļš ir izmantot Nested IF formulu. Es to atturētu, jo tas nebūs pietiekami piemērots, lai apstrādātu nezināmu skaitu secīgu tukšu ierakstu.

Vai jums ir risinājums? Atstājiet komentāru ar savu piedāvāto formulu zemāk.

Es pats uzlauzu formulu, un es dalīšos ar savu risinājumu pēc tam, kad atvēlēju viedajiem lasītājiem kādu laiku iesniegt savus formulējumus.

Papildpunkti

Vai meklējat vairāk izaicinājumu? Šis ir tas pats rezultāts, izmantojot pielāgotu ciparu formātu. Kāds ir ciparu formāts? Padoms: Es to noslaucīju no Maika Aleksandra viņa Bacon Bits emuārā.

Atbilde (noklikšķiniet, lai izvērstu)

Tālāk ir patiešām labi piedāvātie risinājumi, tostarp ļoti kompakts un elegants Panagiotis Stathopoulos risinājums. Lai iegūtu ierakstu, es devos ar meklēšanu un paplašinātu diapazonu:

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

LOOKUP mehānika šāda veida problēmai ir paskaidrota šajā piemērā.

Interesanti raksti...