Täällä mummon pitäisi tehdä Excel, johon listaisin maksettuja laskuja ja niiden päivämääriä, ja alimmalla (summarivillä) pitäisi olla summien yhteisluku ja VIIMEISIMMÄN laskun päivämäärä. Eli rivejä on vaikkapa kymmenen ja aina maksaessani merkkaan uudelle riville maksetun summan ja sen päivämäärän. Ja sitten alimmalla rivillä pitäisi näkyä, paljonko olen yhteensä maksanut ja milloin viimeksi. Kysymys kuuluukin, minkälaisen kaavan teen tuohon viimeisen päivämäärän soluun. JOs Excelini ymmärtäisi puhetta, sanoisin sille näin:
"Tähän soluun B11: jos ylempi solu on tyhjä, katso sen yläpuolella oleva, jos sekin on tyhjä, katso sen yläpuolella oleva jne. Jos solu ei ole tyhjä, kirjoita tähän sen arvo". Ei varmaan ole vaikeaa mutta kun ei tuo kone ymmärrä ääntä eikä nyrkkiä...
Kiitos etukäteen!
Viimeisen solun teksti?
4
632
Vastaukset
- paavali50
Jos nyt maksettuja A1:B8. Päivämäärä A-sarakkeessa ja eurot B-sarakkeessa.
Tee soluun A11 kaava
=SIIRTYMÄ(A11;-3;0)
ja soluun B11 kaava
=SUMMA($B$1:B10)
Nyt lisäät seuraavan laskun riville 9 ja painat Enter, B10 solu aktivoituu: Lisää -> Lisää rivejä. Summa kaavan alue kasvaa ja siirtymä näyttää edelleen kolmea solua ylempänä olevan arvon.
toinen tapa:
Jos viimeisin päivämäärä ja summa saa näkyä jossain muuhalla kuin alapuolella voi käyttää
esimerkiksi.
soluun F2 kaava
=HAKU(50000;A1:A2000)
soluun G2 kaava
=SUMMA(B4:B2000) tällä nyt vaikka alkuun
solu A10 teksti päiväys
solu b 10 teksti summa
maalaa solut A10 ja B10 ja kaavaruutuun kirjoitat tietokanta ja ENTER. Nyt pitäisi olla nimetty alue tietokanta
samoin tee esim.
solu H1 teksti lakun pvm
solu I1 teksti laskun summa
maalaa solut H2 ja I2 ja kaavaruutuun kirjoitat syöttöalue ja ENTER. Nyt pitäisi olla nimetty alue syöttöalue.
Jos ei onnistu noin niin tee lisäämällä nimi valikon kautta
lisää nappi yläriville (ennen riviä 10) ja liitä siihen makro UusiLasku
moduuliin...
Option Explicit
Sub UusiLasku()
Dim Rivi As Long
On Error GoTo virhe
If Range("Syöttö").Cells(1, 1) = "" Or _
Not OnkoPäiväys(Range("Syöttö").Cells(1, 1)) Then
Range("Syöttö").Cells(1, 1).Select
MsgBox "Anna päiväys! esim 12.2.2006 tai 12/6/2006", vbInformation
Exit Sub
End If
If Range("Syöttö").Cells(1, 2) = "" Or _
Not IsNumeric(Range("Syöttö").Cells(1, 2)) Then
Range("Syöttö").Cells(1, 2).Select
MsgBox "Anna summa!", vbInformation
Exit Sub
End If
With Range("Tietokanta") ' itse määritelty alue
Rivi = .Rows.Count 1 'lisätään tietokantaan rivi
Range("Syöttö").Copy Destination:=.Cells(Rivi, 1) ' kopioidaan tiedot
.Resize(Rivi).Name = "Tietokanta" ' päivitetään tietokanta lisäyksen jälkeen
End With
Range("Tietokanta").Offset(Range("Tietokanta").Rows.Count) = ""
Range("A10").Offset(Range("Tietokanta").Rows.Count 2, 0) = Range("Syöttö").Cells(1, 1)
Range("B10").Offset(Range("Tietokanta").Rows.Count 2, 0).FormulaLocal = "=SUMMA(B10:B" & Range("Tietokanta").Rows(2).End(xlDown).Row & ")"
Range("Syöttö") = "" 'tyhjennetään syöttöalue
virhe:
End Sub
Function OnkoPäiväys(Pvm As String) As Boolean
Dim Päiväys As Date
On Error GoTo virhe
Päiväys = DateValue(Range("Syöttö").Cells(1, 1))
OnkoPäiväys = True
Exit Function
virhe:
OnkoPäiväys = False
End Function
nyt laskee automaattisesti summan yhden tyhjän rivin päähän viimeisestä laskusta( koska helpompi käsitellä asioita näin)
Voit aivan vapaasti poistaa rivejä välistä tai lopusta ja silti ohjelma toimii oikein!
Arvot syötetään H2 ja I2 ja sen jälkeen klikkaat nappia.
Lisäsin vielä tarkistukset tyhjille arvoille sekä tarkistukset, että on päiväys sekä luku
:-)- iisipiisi
Älä säikähdä aikaisempia vastauksia. Ongelmasi on perin yksinkertainen, mutta harjaantumattomat putkiaivot tuottavat joskus sangen monimutkaisia vastauksia peruskäyttäjälle. Sori, pojat, jos ei kuitenkaan peloteta ei-tietohallintoihmisiä pois tietokoneen äärestä, ok? ;)
Jos tavoitteenasi on vain saada näkyviin viimeisin päivämäärä, syötä siihen kenttään seuraava kaava:
=MAX(I10:I12)
Tuohon I10:I12 -kohtaan maalaat alueen, josta uusin päivämäärä pitää etsiä. MAX-funktio etsii suurinta arvoa taulukosta, joten se samalla etsii myös uusimman päivämäärän.
Suoittelen, että tuon summauskohdan sijoitat taulukon yläosaan, sillä muutoin saat olla siirtelemässä sitä koko ajan sitä mukaa kuin rivien määrä taulukossa kasvaa.
Summat saat yskinkertaisesti käyttämällä SUM-funktiota (tai SUMMA suomenkielisessä) ja maalaamalla alueen, josta haluat yhteissumman laskea.- Pihtiputaan mummo
Kiits, hyvät vastaajat, ja erityisesti sinulle, iisipiisi - pakko myöntää, että nuo aiemmat vastaukset saivat niin sanoakseni luun kurkkuun :}
Mistä pääsenkin seuraavaan mummokysymykseen: mikä on VBA? Hyvä kunde, tuhannet kiitokset neuvostasi, olen varma että se on erinomainen, mutta häpeäkseni on todettava että tietotekniikkakykymme taitavat olla aika eri sfääreissä!
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
En voi jutella kanssasi
tietenkään, mutta täällä voin sanoa sinulle, että se sinun hiljaisuutesi ja herkkyytesi eivät ole heikkoutta. Ne ovat ih516976Trump ja Vance murskasivat ja nolasivat Zelenskyn tiedotusvälineiden edessä Valkoisessa talossa.
Jopa oli uskomaton tilaisuus Valkoisessa talossa. Zelensky jäi täydelliseksi lehdellä soittelijaksi suhteessa Trumpiin j6883039Kokoomus haluaa hoitaa flussat yksityisellä, jotta säästettäisiin rahaa ja aikaa
Mies hakeutui Terveystalo Kamppiin flunssaoireiden takia helmikuisena sunnuntai-iltana. Diagnoosiksi kirjattiin influens831300Mikä on kaivattusi ärsyttävin piirre?
Mun kaivattu on erittäin vastahakoinen puhumaan itsestä. Kääntää puheenaiheen aina muuhun kun hänestä tulee puhetta.981281- 841275
Anteeksi Pekka -vedätys
Apuna Ry:n somessa levinnyt Anteeksi Pakka -kampanja saa aina vaan kummallisempia piirteitä. ”Mä pyydän anteeksi. Mä611164- 891160
Rakkaus ei iloitse vääryydestä vaan iloitsee yhdessä TOTUUDEN kanssa.
Tajuatteko, että jotkut ihmiset pitävät siitä, kun toiset kaatuvat? He nauttivat siitä, kun toiset mokaavat tai käyttävä2371130- 721022
Zelenskyi ei suostunut nöyrtymään Trumpin ja Vancen edessä, siksi meni pieleen
Trumppia täytyy imarrella, silloin homma toimii aina. Tähän Zelenskyi ei suostunut.210999