Forum » Programska oprema » [Excel] SumIf - Uporabi prejšnjo vrednost
[Excel] SumIf - Uporabi prejšnjo vrednost
mrsmoke ::
Zdravo,
imam spodnjo tabelo z nekaj tisoč vrsticami.
Rad bi v formuli seštel vrednosti po datumih.
Težavo predstavljajo prazne vrstice, kjer bi moral uporabiti zadnjo ne-prazno vrednost. Mora pa biti rešitev s formulo, ne pa z vmesno tabela na nekem drugem listu. Nikakor ne pridem do rešitve brez VBA.
Ima kdo mogoče kaksno idejo?
imam spodnjo tabelo z nekaj tisoč vrsticami.
Rad bi v formuli seštel vrednosti po datumih.
Težavo predstavljajo prazne vrstice, kjer bi moral uporabiti zadnjo ne-prazno vrednost. Mora pa biti rešitev s formulo, ne pa z vmesno tabela na nekem drugem listu. Nikakor ne pridem do rešitve brez VBA.
Ima kdo mogoče kaksno idejo?
1.12.2019 10 5 5 15.12.2019 2 2 2 Rezultat: 1.12.2019 20 15.12.2019 6
smetko ::
druga možnost z kombinacijo sum in index funkcijo:
https://exceljet.net/formula/sum-range-...
https://www.excel-bytes.com/use-offset-...
https://exceljet.net/formula/sum-range-...
https://www.excel-bytes.com/use-offset-...
No comment
showsover ::
Vzemi si cas, napravi si uporabnisko funkcijo, ki ga lahko spimpas po svojih potrebah (glede na strukturo podatkov in uporabljene funkcije) - da jemlje vrednosti iz sosednjih celic (v 1-8 smereh) v primeru praznih. Imas Range object in ("") funkcijo pa zanke pa Cells(r,c).Value itn.
Zgodovina sprememb…
- spremenilo: showsover ()
sajmon ::
Če ti ustreza rešitev, da dodaš poleg datuma dodatni stolpec, je sledeča rešitev: link
V dodatni stolpec se s pomočjo formule doda datum v prazne celice, potem pa s pivot tabelo izračunaš vsoto po dnevih.
V dodatni stolpec se s pomočjo formule doda datum v prazne celice, potem pa s pivot tabelo izračunaš vsoto po dnevih.
Zgodovina sprememb…
- spremenil: sajmon ()
reeves ::
Tak način zapisa je precej nepraktičen za obdelavo podatkov.
Svetujem, da stolpec z datumi zapolniš do konca (vpišeš vse datume). Tega ti ni potrebno delati za vsak dan posebej. Naredi, kot v spodnjem videu in nato samo še vstavi pivot table.
Svetujem, da stolpec z datumi zapolniš do konca (vpišeš vse datume). Tega ti ni potrebno delati za vsak dan posebej. Naredi, kot v spodnjem videu in nato samo še vstavi pivot table.
free_rider ::
Recimo da imaš podatke v 15-ih vrsticah, potem si pa sam nastavi točno.
Potem pa imaš od celice A19 dol datume
V B19 potem vnesi zgornjo formulo, seveda priredi naslove sklicev, kolikor imaš veliko bazo - A$1:A$15, A19 in A20.
Na kratko - formula gre gledat, kje se zgoraj pojavi datum (A19), vzame intervalni stolpec, ki je eno celico desno, do naslednjega datuma, ki je vrstico nižje(A20) ter sešteje vrednosti znotraj stolpca.
Formulo si potem skopiraš dol za preostale datume.
A B 1.12.2019 10 5 5 15.12.2019 2 2 2 30.12.2019 4 5 1.01.2020 6 5 4 3 konec
Potem pa imaš od celice A19 dol datume
A B 1.12.2019 =SUMPRODUCT(OFFSET($A$1;MATCH(A19;A$1:A$15;0)-1;1;MATCH(A20;A$1:A$15;0)-MATCH(A19;A$1:A$15;0);1)) 15.12.2019 30.12.2019 1.01.2020 konec
V B19 potem vnesi zgornjo formulo, seveda priredi naslove sklicev, kolikor imaš veliko bazo - A$1:A$15, A19 in A20.
Na kratko - formula gre gledat, kje se zgoraj pojavi datum (A19), vzame intervalni stolpec, ki je eno celico desno, do naslednjega datuma, ki je vrstico nižje(A20) ter sešteje vrednosti znotraj stolpca.
Formulo si potem skopiraš dol za preostale datume.
smetko ::
Čeprav je rešitev od free_rider že zelo dobra, ti podajam še malo spremenjeno formulo.
V tem primeru se funkcija SUMPRODUCT lahko zamenja z SUM.
Prej ali slej se najde tudi kakšen čistun, kateri ne mara funkcije OFFSET, katro se da zamenjati z INDEX.
In tako dobiš spodnjo formulo.
=SUM(INDEX($B$1:$B$15;MATCH(A19;A$1:A$15;0)):INDEX($B$1:$B$15;MATCH(A20;A$1:A$15;0)-1))
Pa ne pozabi, beseda "konec" v obeh tabelah od free_rider nista tam samo za okras.
Vsekakor, pa uporabi idejo z dodatno kolono in vrtilno tabelo, če ti to tvoja zasnova dopušča.
V tem primeru se funkcija SUMPRODUCT lahko zamenja z SUM.
Prej ali slej se najde tudi kakšen čistun, kateri ne mara funkcije OFFSET, katro se da zamenjati z INDEX.
In tako dobiš spodnjo formulo.
=SUM(INDEX($B$1:$B$15;MATCH(A19;A$1:A$15;0)):INDEX($B$1:$B$15;MATCH(A20;A$1:A$15;0)-1))
Pa ne pozabi, beseda "konec" v obeh tabelah od free_rider nista tam samo za okras.
Vsekakor, pa uporabi idejo z dodatno kolono in vrtilno tabelo, če ti to tvoja zasnova dopušča.
No comment
mirator ::
Napisal si da imaš nekaj tisoč vrstic. Datume in vrednosti vpisuješ verjetno sproti in verjetno potrebuješ statisko za celo leto.
Jaz bi ti predlagal, da si namesto po stolpcih urediš po vrsticah. Potem v vrstici v 1. stolpec (n.pr. A1) vneseš formulu SUM(C1:C100), v celico B1 vneseš datum in v celice desno od datuma posamezne vrednosti). Vse vrstice preprosto skopiraš za 365 dni ali manj. Boš pa pri vsakem datumu, ki ga boš zapisal samo enkrat, takoj imel že tudi vsoto. Prvi in drugi stolpec potem zamrzneš, tako da ga pri vpisu v oddaljene celice še vedno vidiš.
Pač ideja.
Jaz bi ti predlagal, da si namesto po stolpcih urediš po vrsticah. Potem v vrstici v 1. stolpec (n.pr. A1) vneseš formulu SUM(C1:C100), v celico B1 vneseš datum in v celice desno od datuma posamezne vrednosti). Vse vrstice preprosto skopiraš za 365 dni ali manj. Boš pa pri vsakem datumu, ki ga boš zapisal samo enkrat, takoj imel že tudi vsoto. Prvi in drugi stolpec potem zamrzneš, tako da ga pri vpisu v oddaljene celice še vedno vidiš.
Pač ideja.
Zgodovina sprememb…
- spremenil: mirator ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | pomoč excel (strani: 1 2 )Oddelek: Programska oprema | 7942 (3519) | -JM- |
» | pomoč excelOddelek: Pomoč in nasveti | 3527 (2251) | sax8er |
» | EXCEL vgnezdenje dveh vlookup funkcij?Oddelek: Programska oprema | 1891 (1590) | prtenjam |
» | excelOddelek: Programska oprema | 4767 (3376) | xtrat |
» | Excel Težava - fukncijaOddelek: Pomoč in nasveti | 2500 (2193) | smetko |