Negatiiviset positiiviseksi

Minulla taulukko, jossa yhdessä sarakkeessa on sekä positiivisiä ja negatiivisiä lukuja. Haluaisin laskea nämä yhteen niin, että negatiiviset eivät vähentäisi kokonaissummaa. Eli jos luvut esim. on 3, 2, -2 ja -1 niin yhteenlaskettu summa olisi: 8 eikä 2

Mitenköhän tämä onnistuisi Excelissä taikka oikeastaan Open Officen calcissa? ...samojahan nuo taitaa suurinpiirtein kaavoiltaan olla...
102291
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat

tämä "oikeaa" ekseliä , mutta ainakin näin. Jos nuo luvut A1:A4
=SUMMA.JOS(A1:A4;">0") ITSEISARVO(SUMMA.JOS(A1:A4;"

Äänestä
  • =SUMMA(SUMMA.JOS(A1:A4;{"0"})*{-1;1})

    matriisikaavoina CRTL SHIFT ENTER
    {=SUMMA(ITSEISARVO(A1:A4))}

    {=SUMMA(JOS(A1:A4

    Äänestä

  • kunde kirjoitti:

    =SUMMA(SUMMA.JOS(A1:A4;{"0"})*{-1;1})

    matriisikaavoina CRTL SHIFT ENTER
    {=SUMMA(ITSEISARVO(A1:A4))}

    {=SUMMA(JOS(A1:A4

    Openoffice ei ymmärrä ensimmäistä kaavaa eli tulos on väärä.

    Äänestä

  • kunde kirjoitti:

    =SUMMA(SUMMA.JOS(A1:A4;{"0"})*{-1;1})

    matriisikaavoina CRTL SHIFT ENTER
    {=SUMMA(ITSEISARVO(A1:A4))}

    {=SUMMA(JOS(A1:A4

    Jos nyt ohitetaan se seikka, että aloittaja oli ehkä vähän väärällä palstalla kysymyksineen, niin mikä kammo noin yleisimmin liittyy apusarakkeen tai välivaiheen käyttöön.

    Jos ajatellaan tässä keskustelussa esille tulleita kaavoja, niin ehkä pienellä kokeilulla olisi saanut yhden (ensimmäisenä toisaalla esitetyn) itse laadittua, mutta taas käyttämällä itseisarvoja apusarakkeessa kirjoitettavia kaavoja olisi tullut merkkimäärältään kutakuinkin saman verran ja sen olisin saanut tehtyä pähkäilemättä. Lisätyönä olisi ollut =ABS(A1) kaavan levittäminen kahvasta.

    Eräänä etuna välivaiheen käytössä on se, että virheen paikallistaminen on helpompaa. Jos tiivis ja pitkä kaava tuottaakin virheen, niin sen löytäminen on mielestäni vaikeampaa kuin välivaihein etenevässä laskennassa.

    Niin että onkos ne haitat todellakin riittävän isoja yleisesti? Ja jos niistä saisi vähän vinkkiäkinkin (-;

    Äänestä

  • old_profile_3668 kirjoitti:

    Jos nyt ohitetaan se seikka, että aloittaja oli ehkä vähän väärällä palstalla kysymyksineen, niin mikä kammo noin yleisimmin liittyy apusarakkeen tai välivaiheen käyttöön.

    Jos ajatellaan tässä keskustelussa esille tulleita kaavoja, niin ehkä pienellä kokeilulla olisi saanut yhden (ensimmäisenä toisaalla esitetyn) itse laadittua, mutta taas käyttämällä itseisarvoja apusarakkeessa kirjoitettavia kaavoja olisi tullut merkkimäärältään kutakuinkin saman verran ja sen olisin saanut tehtyä pähkäilemättä. Lisätyönä olisi ollut =ABS(A1) kaavan levittäminen kahvasta.

    Eräänä etuna välivaiheen käytössä on se, että virheen paikallistaminen on helpompaa. Jos tiivis ja pitkä kaava tuottaakin virheen, niin sen löytäminen on mielestäni vaikeampaa kuin välivaihein etenevässä laskennassa.

    Niin että onkos ne haitat todellakin riittävän isoja yleisesti? Ja jos niistä saisi vähän vinkkiäkinkin (-;

    apusarakkeethan on ihan OK.
    Mutta jos sulla on joku valmis tulostuspohja mihin tarttee tehdä uusia laskelmia, niin apusarake on sijoitettava tulostusalueen ulkopuolelle. Nähdäkseen apusarakkeen taulukkoa pitää sitten scrollata, ja useinhan se pitää myös piilottaa tulostuksissa, jos vaikka sitä apusaraketta voisikin käyttää tulostusalueella...
    Ei merkkien määrä ole ratkaiseva (vertaa koodissa rivit) vaan tehokkuus, luettavuus ja muokkauksen helppous. Jos monta apusaraketta- monta paikkaa muokattavaa.

    Toisaalta vaiheittaisen laskemisen tarkistus on helppoa...
    esim. kaavassani {=SUMMA(JOS(A1:A4

    Äänestä

  • kunde kirjoitti:

    apusarakkeethan on ihan OK.
    Mutta jos sulla on joku valmis tulostuspohja mihin tarttee tehdä uusia laskelmia, niin apusarake on sijoitettava tulostusalueen ulkopuolelle. Nähdäkseen apusarakkeen taulukkoa pitää sitten scrollata, ja useinhan se pitää myös piilottaa tulostuksissa, jos vaikka sitä apusaraketta voisikin käyttää tulostusalueella...
    Ei merkkien määrä ole ratkaiseva (vertaa koodissa rivit) vaan tehokkuus, luettavuus ja muokkauksen helppous. Jos monta apusaraketta- monta paikkaa muokattavaa.

    Toisaalta vaiheittaisen laskemisen tarkistus on helppoa...
    esim. kaavassani {=SUMMA(JOS(A1:A4

    Toivotaan, että mainiosta vastauksestasi on hyötyä mahdollisimman monelle palstan lukijalle. Lähtökohtanani oli lähinnä osaamattomuus tai huonomuistisuus, joka estää käyttämästä hienompia piirteitä, kun ei muista tai tiedä niiden olemassaolostakaan. Tätä saattaa esiintyä satunnaisemmilla käyttäjillä.

    Esimerkkinä vaikka tuo F9-näppäimen käyttö syöttörivillä. Olen melko varmasti joskus lukenut siitä (OOo Calcissa), mutta enpäs enää muistanut sitä. Sehän tosiaan auttaa välivaiheen tuloksen selvittämisessä, tehden tältä osin apusarakkeen vähemmän tarpeelliseksi. Jos vaan muistaa sen olemassaolon.

    Äänestä

Siis haluat laskea lukujen itseisarvot yhteen? =SUM(ABS(A1:A4))

Äänestä
  • lisää välilaskennasta
    valikosta
    TYÖKALUT/KAAVAN TARKISTAMINEN/KAAVAN LASKEMINEN voi testailla aktiivisen solun kaavan laskentaa
    ja jos haluaa automatisoida esim. hiirtä tuplaklikkaamalla lomake näkyviin niin

    ko. taulukon moduuliin...

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Application.Dialogs(xlDialogEvaluateFormula).Show
    Cancel = True
    End Sub

    ja jos haluaa tuplaklikkauksen toimivan normaalisti lomakkeen sulkemisen jälkeen niin hipsaa koodissa rivi Cancel = True

    edelliselle...
    kannattaisi testata kaavojen toiminta ennenkuin postaa niitä!
    Kaavasi toimii hyvin matriisikaavana ja sen olen jo aiemmin postannut tänne, mutta tavallisena kaavana ei toimi...

    Äänestä

  • kunde kirjoitti:

    lisää välilaskennasta
    valikosta
    TYÖKALUT/KAAVAN TARKISTAMINEN/KAAVAN LASKEMINEN voi testailla aktiivisen solun kaavan laskentaa
    ja jos haluaa automatisoida esim. hiirtä tuplaklikkaamalla lomake näkyviin niin

    ko. taulukon moduuliin...

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Application.Dialogs(xlDialogEvaluateFormula).Show
    Cancel = True
    End Sub

    ja jos haluaa tuplaklikkauksen toimivan normaalisti lomakkeen sulkemisen jälkeen niin hipsaa koodissa rivi Cancel = True

    edelliselle...
    kannattaisi testata kaavojen toiminta ennenkuin postaa niitä!
    Kaavasi toimii hyvin matriisikaavana ja sen olen jo aiemmin postannut tänne, mutta tavallisena kaavana ei toimi...

    Ei kun siis =ABS(A1), täyttö ja sitten =SUM(A1:A4)

    Äänestä

=SUMMA.JOS(A1:A100;">0") (-1)*SUMMA.JOS(A1:A100;"<0")
Tämä tekee sen kahdessa osassa. Ensiksi kaikki posiitiviset luvut lasketaan yhteen, jonka jälkeen kaikki negattiviset luvut lasketaan yhteen ja vaihdetaan merkki positiiviseksi. Itseisarvoa käyttämällä lausekkeesta tulee liian pitkä jos lukuja on vähänkin enemmän, koska luvut täytyy muuntaa yksitellen positiiviseksi. Eihän tuo kaunis funktio ole, mutta ajaa asiansa.

Äänestä

Kommentoi aloitusta


miKKoooo12345 kirjoitti:

Minulla taulukko, jossa yhdessä sarakkeessa on sekä positiivisiä ja negatiivisiä lukuja. Haluaisin laskea nämä yhteen niin, että negatiiviset eivät vähentäisi kokonaissummaa. Eli jos luvut esim. on 3, 2, -2 ja -1 niin yhteenlaskettu summa olisi: 8 eikä 2

Mitenköhän tämä onnistuisi Excelissä taikka oikeastaan Open Officen calcissa? ...samojahan nuo taitaa suurinpiirtein kaavoiltaan olla...

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu