Follow along with the video below to see how to install our site as a web app on your home screen.
Huomio: This feature may not be available in some browsers.
Internetti löysi mulle tuommosen:
Osaisko joku kertoo kaavan tämmöiseen tarkoitukseen.
Eli haluan tietää jokaisen kohdalla A-D lukujen yhteisarvon. Mutta siten, että se laskee vaan 5 viimeistä solua (keltaiset) joissa on arvo enemmän kuin nolla ja antaa niiden summan. Eli kyseessä on nelivuorojärjestelmä ja luku nolla on kun vuoro on vapaalla. Tuossa on 2 esimerkkiä, mutta ne voi myös olla muunkinlaisia.
Kiitos avusta.
Internetti löysi mulle tuommosen:
Try this formula for the sum of the last 5 positive (>0) values in cells A1:A100:
=SUMPRODUCT(--(COUNTIF(OFFSET(A$1,,,ROW($1:$100)),">0")>COUNTIF(A$1:A$100,">0")-5),A$1:A$100)
varsin mielenkiintoinen härpätys eikä aavistustakaan toimiiko se.
Jos laitat sen R7 niin ne solut a1:a100 on esimerkkitaulussas e7: p7 se on pystysuuntaiselle tarkoitettu kaavaEn osaa edes tuota kaavaa sijoittaa oikein. Eli kun laitan sen johonkin soluun, niin se ilmoittaa että se ensimmäinen A1 on väärä. Mutta ei mitään hajua mikä solu siihen pitäisi laittaa.
jos pitäis veikata niin tuo row(...) funktio on väärä, ja mahdollisesti väärässä kohdassa offset()ssa kun mennään riviä eikä saraketta pitkin
Sit se herjaa sitä R7. Onneks nyt tuli helppo kysymys multa [emoji23]
Edit: Tein exelin jossa oli arvot soluissa A1:A100 ja laitoin tuon kaavan soluun B1, niin siltikin se herjaa tuota A1.
Siinä A1 ja B2 summa. Vaakaan en saanut käännettyä vaikka muutokset mielestäni ovatkin oikein. aina tulee kehäviittaus.
se virhe minkä sait johtui vanhasta pilkkuerottelusta kun nykyexcel vaatii puolipisteen.
=TULOJEN.SUMMA(--(LASKE.JOS(SIIRTYMÄ(A$2;;;RIVI($1:$7));">0")>LASKE.JOS(A$2:A$8;">0")-5);A$2:A$8)
=TULOJEN.SUMMA(--(LASKE.JOS(SIIRTYMÄ(B$2;;;RIVI($1:$7));">0")>LASKE.JOS(B$2:B$8;">0")-5);B$2:B$8)
Osaisko joku kertoo kaavan tämmöiseen tarkoitukseen. Eli haluan tietää jokaisen kohdalla A-D lukujen yhteisarvon. Mutta siten, että se laskee vaan 5 viimeistä solua (keltaiset)....
Public Function mySumFunc3(data1 As Range, countmax As Integer) As Double
' Sum countmax non-zero cell values
Dim sum As Double
Dim row As Long
Dim col As Long
Dim curval As Double
sum = 0
For row = 1 To data1.Rows.Count
For col = data1.Columns.Count To 1 Step -1
curval = toDouble(data1.Cells(row, col))
If (curval > 0) Then
sum = sum + curval
countmax = countmax - 1
If countmax <= 0 Then Exit For
End If
Next col
If countmax <= 0 Then Exit For
Next row
mySumFunc3 = sum
End Function
=datevalue(left( x ,find(",", x )+5)))
tai jotakin tuohon suuntaan, jos ei datevalue() suoraan osaa?
Moro,
Milläs saan väännettyä sellaisen kaavan, että jokaista tuhatta kiloa kohti arvoon lisätään 2%?
Esim. Paino 50 000kg, hinta 10 000€ (referenssi)
Seuraavan viikon kuorma on 48 400kg, jolloin hinta 10 000€ * 1,02 = 10 200€
Seuraavaksi saattaisi olla vaikka 45 500kg, jolloin hinta olisikin 10 000€ * 1,08 (koska neljä kertaa ollaan menty tuon yli tuhannen kilon thresholdin) = 10 800€
Menevät pääsääntöisesti tuolla alueella, mutta on myös tapauksia että täytyy saada venytettyä alueita molempiin suuntaan tarvittaessa aika pitkällekin.. Sillä tarvisikin looppimaisen rakenteenJos arvot pyörii vain jossain 45-50t välillä, niin itse vääntäisin varmaan ihan perus IF kaavalla, ja kun en parempaankaan näillä näppäimillä heti pystyisi
Moro,
Milläs saan väännettyä sellaisen kaavan, että jokaista tuhatta kiloa kohti arvoon lisätään 2%?
Esim. Paino 50 000kg, hinta 10 000€ (referenssi)
Seuraavan viikon kuorma on 48 400kg, jolloin hinta 10 000€ * 1,02 = 10 200€
Seuraavaksi saattaisi olla vaikka 45 500kg, jolloin hinta olisikin 10 000€ * 1,08 (koska neljä kertaa ollaan menty tuon yli tuhannen kilon thresholdin) = 10 800€
Ei oo Exceliä just nyt koneella, eli saattaa olla joku syntaksivirhe, mutta joku tällanen saattais toimia (kun esim. A1:ssä on tuo viikon kuorma):
=10000*(1+(FLOOR((ABS((50000-A1)/1000),1)*0,02)
Ei ihan vielä uppoa mun ikinvanhaan exceliin tolla kaavalla. Käänsin ton FLOOR:n suomen kieliselle funktiolle että sain Excelin tyytyväiseksi
Tuolla menee läpi, mutta vastaus on vielä suurehko (2,000000000000E+04)Varmaan tuo ABS pitää suomenkielisessä Excelissä olla myös joku "ITSEISARVO" tms.
EDIT: Näköjään sulut ei mee ihan oikein, hetki pieni.
EDIT2: Oisko näin:
=10000*(1+PYÖRISTÄ.KERR.ALAS(ITSEISARVO((50000-A1)/1000);1)*0,02)
Nyt alkaa näyttään hyvältä.Varmaan tuo ABS pitää suomenkielisessä Excelissä olla myös joku "ITSEISARVO" tms.
EDIT: Näköjään sulut ei mee ihan oikein, hetki pieni.
EDIT2: Oisko näin:
=10000*(1+PYÖRISTÄ.KERR.ALAS(ITSEISARVO((50000-A1)/1000);1)*0,02)
pyöristys ylös vois auttaaNyt alkaa näyttään hyvältä.
Vielä olisi kuitenkin yksi "ongelma":
Kun paino alittaa referenssipainon, se ei vielä laske hintaa 2% kertoimella, vaan aloittaa tekemään sen vasta kun paino on esim. 45000:n alle. Toki tuon voisi "huijata" lisäämällä referenssipainoon tuhat kiloa, mutta saisiko sen tuohon kaavaan muutettua jotenkin? Itsellä vähän monttu auki
Nyt alkaa näyttään hyvältä.
Vielä olisi kuitenkin yksi "ongelma":
Kun paino alittaa referenssipainon, se ei vielä laske hintaa 2% kertoimella, vaan aloittaa tekemään sen vasta kun paino on esim. 45000:n alle. Toki tuon voisi "huijata" lisäämällä referenssipainoon tuhat kiloa, mutta saisiko sen tuohon kaavaan muutettua jotenkin? Itsellä vähän monttu auki
Joo, nyt kun luin uudemmin, niin saatoin johtaa harhaan. Eli tosiaan, jokaista tuhatta kiloa kohti tuo hinnan korotus kasvaa 2%:lla.Alkuperäisessä esimerkissä 48400kg painolla kertoimen piti olla 1.02, luulin että siis painovälillä 48001-49000 tuon pitää olla 1.02 ja tuolla 49001-50000 se on vaan 1.
Eli tosiaan pyöritys ylöspäin on se millä saat heti tuon 1.02 kertoimen kun kilonkin mennään sivuun referenssipainosta, mutta silloin nuo sun aiemmat kuvaukset on virheellisiä kyllä.
Joo, nyt kun luin uudemmin, niin saatoin johtaa harhaan. Eli tosiaan, jokaista tuhatta kiloa kohti tuo hinnan korotus kasvaa 2%:lla.
Alustavien tietojen mukaan sillä ei pitäisi olla väliä. Kyseessä siis raskaan liikenteen ongelma, kun joskus joutuu viemään ”pieniä/vajaita” kuormia ja jokaista tuhatta kiloa saa korottaa laskutushintaa kahdella prosentilla.Eli siis painovälillä 49000-49999 pitäisi kertoimen olla 1.02? Entä sitten se painoväli 48000-48999kg?
Edit2: eli jos referenssipaino on 50k, niin 49000-49999 on sillä 1.02 kertoimella. 48999-48000 painoset kuormat vastaavasti 1.04, jne. Aina 2% pomppu kun vietävä lasti on x-tuhatta kg kevyempi kuin referenssipaino
Joo, sainkin sen sillä. Kiitokset vaivannäöstä. Täytyy lähteä ”esittelemään” taulukkoa ja katsoa onko se yhtään sellainen kuin itse alunperin ymmärsin. Palaan asiaan jos loppuu taas ideat!No sit se onnistuu kun vaan muuttaa pyöristyksen menemään ylöspäin.
En ole varma ymmärsinkö kysymystä oikein, mutta kokeillaan.Kuinkas sais semmossen komennon tehtyä että käytetään joko kaavasta tulevaa arvoa seuraavassa kaavassa tai itsesyötettyä arvoa? Joku näppäin makro tms.
No jokin logiikkahan sinulla täytyy olla, jonka perusteella se valikoituu käytätkö laskettua arvoa vai käsin syötettyä? Jos teet itse päätöksen asian suhteen, eli päätät mielivaltaisesti milloin käytät jompaa kumpaa, niin merkkaa vaikka aina rivin loppuun omaan soluun arvo 1.eli mitäs laitan tuohon haluamasi ehto kohtaan? Kaava jota haluaisin, että käytetään on esim. =1/8*C12*(C8/1000)^2 tuossa haluaisin korvata joskus tuon C12 arvon suoraan kirjoitetulla numerolla. tuo c12 kaava on =C9*C10/1000.
Jos excelissä on esimerkiksi sarakkeessa A lista nimikkeistä, niin miten saisin sarakkeeseen B listauksen kaikista nimikkeistä, joita sarakkeessa A esiintyy? Sarakkeeseen C sitten haluaisin määrän siitä, kuinka monta kertaa kyseinen nimike esiintyy sarakkeessa A.
Jeesatkaas vähän.
Millä kaavalla suomenkielisessä ekselissä saa tehtyä näin:
mikäli soluissa A1, A2, A3, B6 on joissakin numero 1, värjää solu D10 punaiseksi.
mikäli soluissa A1, A2, A3, B6 on kaikissa numero 2, värjää solu D10 vihreäksi.
Mä en löydä yhtään toimivaa kaavaa vaikka olen näitä nyt muutaman kymmenen googlen avulla kokeillut.
ykkösiä haetaan alueelta yksi tai useampi
kakkosille
=LASKE.JOS(AC2:AE2;"=2")=LASKE(AC2:AE2)