auttaisko osaava?

esim.
A1 arvo on aina 4, eli jos merkintä 1=4, 2=8 jne...

A1 B1 apukenttä

1 5,73 1,73 (B1 arvon ollessa suurempi A1, pitäis saada summa C1)
4 14,81 16,00 (B1 arvon jäädessä pienemmäksi kuin A1 älä tee mitään)
2 8,14 0,14
1 11,44 7,44

jne.. kaikki tämä kaava pitäis saada tungettua soluun C1
laskettuna tästä pitäis saada tulos 9,31
11164
Äänestä

Muut lukivat myös

Vastaukset 11

Vanhimmat

C1=JOS((A1*4)>B1;"";B1-(A1*4)) - kopioi kaava alaspäin
Nyt C-solut jäävät tyhjiksi jos B < A*4
Onko siis tarkoitus että tuo SUMMA (9,31) näkyy solussa C1 ?
Ja vielä että pitääkö tuo 2 rivin vastaus 16,00 näkyä vaikkei sitä lasketakkaan mukaan, nyt se ei jää näkyviin?

Äänestä
  • laskee nyt kumulatiivisesti A ja B saraketta (molemmissa pitää olla luku, jotta arvo muuttuu soluun C1)
    kun ei tarkempaa tietoa miten käytät niin olkoon...
    nyt jos poistat arvot B sarakkeesta jättää C1 summan muistiin...
    ja
    jos poistat arvoja A sarakkeesta huomioi muutoksen


    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim vika As Long
    On Error Resume Next
    Application.EnableEvents = False
    'A- sarakkeen muutokset
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
    'A JA B ei saa olla tyhjiä
    If Not Target = "" And Not Target.Offset(0, 1) = "" Then
    ' B suurempi kuin 4*A silloin A.ID(summa-arvo) ja C soluun B-4*A
    If Target.Offset(0, 1) > Target * 4 Then
    Target.Offset(0, 2) = Target.Offset(0, 1) - Target * 4
    Target.ID = Target.Offset(0, 1) - Target * 4
    Else
    '4*A suurempi kuin B silloin A.ID =0 (summa-arvo)ja C soluun A*4
    If Target * 4 > Target.Offset(0, 1) Then
    Target.Offset(0, 2) = Target * 4
    Target.ID = 0
    End If
    End If
    End If

    End If
    'B- sarakkeen muutokset
    If Not Intersect(Target, Range("B:B")) Is Nothing Then
    'A JA B ei saa olla tyhjiä
    If Not Target = "" And Not Target.Offset(0, -1) = "" Then
    ' B suurempi kuin 4*A silloin A.ID (summa-arvo)ja C soluun = B-4*A
    If Target > Target.Offset(0, -1) * 4 Then
    Target.Offset(0, 1) = Target - Target.Offset(0, -1) * 4
    Target.Offset(0, -1).ID = Target - Target.Offset(0, -1) * 4
    Else
    '4*A suurempi kuin B silloin A.ID =0 (summa-arvo)ja C soluun A*4
    If Target.Offset(0, -1) * 4 > Target Then
    Target.Offset(0, 1) = Target.Offset(0, -1) * 4
    Target.Offset(0, -1).ID = 0
    End If
    End If
    End If

    End If
    vika = Range("A65536").End(xlUp).Row
    For Each solu In Range("A1:A" & vika)
    summa = summa CDbl(solu.ID)
    Range("C1") = summa
    Next
    Application.EnableEvents = True
    End Sub

    Keep EXCELing
    @Kunde

    Äänestä

  • vähänulalla; iso kiitos!
    juuri noin ajattelin, btw, miten tuota pitäis säätää jos soluissa A1/B1 ei ole arvoa niin se ei laskisi nollia kaavariville?

    Äänestä

  • leena s kirjoitti:

    vähänulalla; iso kiitos!
    juuri noin ajattelin, btw, miten tuota pitäis säätää jos soluissa A1/B1 ei ole arvoa niin se ei laskisi nollia kaavariville?

    C1=JOS((A1*4)>B1;"";B1-(A1*4)) - kopioi kaava alaspäin -KIITOS
    Nyt C-solut jäävät tyhjiksi jos B < A*4 -KIITOS
    Onko siis tarkoitus että tuo SUMMA (9,31) näkyy solussa C1 ? -KYLLÄ
    Ja vielä että pitääkö tuo 2 rivin vastaus 16,00 näkyä vaikkei sitä lasketakkaan mukaan, nyt se ei jää näkyviin? -EI TARVITSE

    ja vielä tuo lisäkysymys: miten tuota pitäis säätää jos soluissa A1/B1 ei ole arvoa niin se ei laskisi nollia kaavariville?

    Äänestä

  • leena s kirjoitti:

    C1=JOS((A1*4)>B1;"";B1-(A1*4)) - kopioi kaava alaspäin -KIITOS
    Nyt C-solut jäävät tyhjiksi jos B < A*4 -KIITOS
    Onko siis tarkoitus että tuo SUMMA (9,31) näkyy solussa C1 ? -KYLLÄ
    Ja vielä että pitääkö tuo 2 rivin vastaus 16,00 näkyä vaikkei sitä lasketakkaan mukaan, nyt se ei jää näkyviin? -EI TARVITSE

    ja vielä tuo lisäkysymys: miten tuota pitäis säätää jos soluissa A1/B1 ei ole arvoa niin se ei laskisi nollia kaavariville?

    EI ONNISTU MITENKÄÄN ILMAN KOODAUSTA...

    et näköjään testannut koodiani...
    ja jos lukua 16 esimerkissäsi eI tartte näyttää niin koodi on silloin

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim vika As Long
    On Error Resume Next
    Application.EnableEvents = False
    'A- sarakkeen muutokset
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
    'A JA B ei saa olla tyhjiä
    If Not Target = "" And Not Target.Offset(0, 1) = "" Then
    ' B suurempi kuin 4*A silloin A.ID(summa-arvo) ja C soluun B-4*A
    If Target.Offset(0, 1) > Target * 4 Then
    Target.Offset(0, 2) = Target.Offset(0, 1) - Target * 4
    Target.ID = Target.Offset(0, 1) - Target * 4
    Else
    '4*A suurempi kuin B silloin A.ID =0 (summa-arvo)ja C soluun A*4
    If Target * 4 > Target.Offset(0, 1) Then
    Target.Offset(0, 2) = ""
    Target.ID = 0
    End If
    End If

    End If
    If Target = "" Or Target.Offset(0, 1) = "" Then
    Target.Offset(0, 2) = ""
    End If
    End If

    'B- sarakkeen muutokset
    If Not Intersect(Target, Range("B:B")) Is Nothing Then
    'A JA B ei saa olla tyhjiä
    If Not Target = "" And Not Target.Offset(0, -1) = "" Then
    ' B suurempi kuin 4*A silloin A.ID (summa-arvo)ja C soluun = B-4*A
    If Target > Target.Offset(0, -1) * 4 Then
    Target.Offset(0, 1) = Target - Target.Offset(0, -1) * 4
    Target.Offset(0, -1).ID = Target - Target.Offset(0, -1) * 4
    Else
    '4*A suurempi kuin B silloin A.ID =0 (summa-arvo)ja C soluun A*4
    If Target.Offset(0, -1) * 4 > Target Then
    Target.Offset(0, 1) = ""
    Target.Offset(0, -1).ID = 0
    End If
    End If
    End If
    If Target = "" Or Target.Offset(0, -1) = "" Then Target.Offset(0, 1) = ""
    End If

    vika = Range("A65536").End(xlUp).Row
    For Each solu In Range("A1:A" & vika)
    summa = summa CDbl(solu.ID)
    Range("C1") = summa
    Next
    Application.EnableEvents = True
    End Sub
    Sub Reset()
    Application.EnableEvents = True
    End Sub

    Äänestä

  • kunde kirjoitti:

    EI ONNISTU MITENKÄÄN ILMAN KOODAUSTA...

    et näköjään testannut koodiani...
    ja jos lukua 16 esimerkissäsi eI tartte näyttää niin koodi on silloin

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim vika As Long
    On Error Resume Next
    Application.EnableEvents = False
    'A- sarakkeen muutokset
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
    'A JA B ei saa olla tyhjiä
    If Not Target = "" And Not Target.Offset(0, 1) = "" Then
    ' B suurempi kuin 4*A silloin A.ID(summa-arvo) ja C soluun B-4*A
    If Target.Offset(0, 1) > Target * 4 Then
    Target.Offset(0, 2) = Target.Offset(0, 1) - Target * 4
    Target.ID = Target.Offset(0, 1) - Target * 4
    Else
    '4*A suurempi kuin B silloin A.ID =0 (summa-arvo)ja C soluun A*4
    If Target * 4 > Target.Offset(0, 1) Then
    Target.Offset(0, 2) = ""
    Target.ID = 0
    End If
    End If

    End If
    If Target = "" Or Target.Offset(0, 1) = "" Then
    Target.Offset(0, 2) = ""
    End If
    End If

    'B- sarakkeen muutokset
    If Not Intersect(Target, Range("B:B")) Is Nothing Then
    'A JA B ei saa olla tyhjiä
    If Not Target = "" And Not Target.Offset(0, -1) = "" Then
    ' B suurempi kuin 4*A silloin A.ID (summa-arvo)ja C soluun = B-4*A
    If Target > Target.Offset(0, -1) * 4 Then
    Target.Offset(0, 1) = Target - Target.Offset(0, -1) * 4
    Target.Offset(0, -1).ID = Target - Target.Offset(0, -1) * 4
    Else
    '4*A suurempi kuin B silloin A.ID =0 (summa-arvo)ja C soluun A*4
    If Target.Offset(0, -1) * 4 > Target Then
    Target.Offset(0, 1) = ""
    Target.Offset(0, -1).ID = 0
    End If
    End If
    End If
    If Target = "" Or Target.Offset(0, -1) = "" Then Target.Offset(0, 1) = ""
    End If

    vika = Range("A65536").End(xlUp).Row
    For Each solu In Range("A1:A" & vika)
    summa = summa CDbl(solu.ID)
    Range("C1") = summa
    Next
    Application.EnableEvents = True
    End Sub
    Sub Reset()
    Application.EnableEvents = True
    End Sub

    EI ONNISTU MITENKÄÄN ILMAN KOODAUSTA..
    perun puheeni, kyllä toi summa ilman koodiakin onnistuu...

    Äänestä

  • leena s kirjoitti:

    C1=JOS((A1*4)>B1;"";B1-(A1*4)) - kopioi kaava alaspäin -KIITOS
    Nyt C-solut jäävät tyhjiksi jos B < A*4 -KIITOS
    Onko siis tarkoitus että tuo SUMMA (9,31) näkyy solussa C1 ? -KYLLÄ
    Ja vielä että pitääkö tuo 2 rivin vastaus 16,00 näkyä vaikkei sitä lasketakkaan mukaan, nyt se ei jää näkyviin? -EI TARVITSE

    ja vielä tuo lisäkysymys: miten tuota pitäis säätää jos soluissa A1/B1 ei ole arvoa niin se ei laskisi nollia kaavariville?

    Eikö helpoin tapa olisi muuttaa asetuksia.
    Työkalut > Asetukset > Näkymä-välilehdellä poista ruksi kohdasta "Nolla-arvot"
    Ja jos nollat pitää näkyä kuitenkin jossakin muualla taulukossa, niin voit aina muotoilla C-sarakkeen tarvittavat solut Ehdollisella muotoilulla
    Valitse solut joihin voi tulla se 0-arvo ja:
    Muotoile > Ehdollinen muotoilu --> Ikkunassa valitse "Solun arvo" - "on yhtäsuuri kuin" - "0"
    Muotoile-napista valitse fontin väriksi valkoinen (tai mikä sinulla nyt onkaan solun pohjaväri) ja OK

    Äänestä

  • kunde kirjoitti:

    EI ONNISTU MITENKÄÄN ILMAN KOODAUSTA..
    perun puheeni, kyllä toi summa ilman koodiakin onnistuu...

    "EI ONNISTU MITENKÄÄN ILMAN KOODAUSTA..
    perun puheeni, kyllä toi summa ilman koodiakin onnistuu... "

    Osaatko neuvoa miten... ilman asetuksia muuttamalla?

    Äänestä

  • leena s kirjoitti:

    "EI ONNISTU MITENKÄÄN ILMAN KOODAUSTA..
    perun puheeni, kyllä toi summa ilman koodiakin onnistuu... "

    Osaatko neuvoa miten... ilman asetuksia muuttamalla?

    C1==JOS((A1*4)>B1;"";B1-(A1*4)) SUMMA(C2:EPÄSUORA("C"& LASKE.A(C:C)))
    C2=JOS(TAI(A2="";B2="");"";JOS((A2*4)>B2;"";B2-(A2*4))) ja kopiot alaspäin...

    Keep EXCELing
    @Kunde

    Äänestä

  • kunde kirjoitti:

    C1==JOS((A1*4)>B1;"";B1-(A1*4)) SUMMA(C2:EPÄSUORA("C"& LASKE.A(C:C)))
    C2=JOS(TAI(A2="";B2="");"";JOS((A2*4)>B2;"";B2-(A2*4))) ja kopiot alaspäin...

    Keep EXCELing
    @Kunde

    tuliko tässä kokonaan yksi uusi solu vai miks tämä kaava ei aukea, ei sitten yhtään?

    Äänestä

  • leena s kirjoitti:

    tuliko tässä kokonaan yksi uusi solu vai miks tämä kaava ei aukea, ei sitten yhtään?

    ???
    soluun C1 KAAVA
    =JOS((A1*4)>B1;0;B1-(A1*4)) SUMMA(C2:EPÄSUORA("C"& LASKE.A(C:C)))

    ja soluun C2 kaava =
    JOS(TAI(A2="";B2="");"";JOS((A2*4)>B2;"";B2-(A2*4)))

    ja kopiot solusta C2 alaspäin kaavan vetämällä ...

    takuulla toimii just niinkuin pitää...

    keep EXCELing
    @Kunde

    Äänestä

Kommentoi aloitusta


leena s kirjoitti:

esim.
A1 arvo on aina 4, eli jos merkintä 1=4, 2=8 jne...

A1 B1 apukenttä

1 5,73 1,73 (B1 arvon ollessa suurempi A1, pitäis saada summa C1)
4 14,81 16,00 (B1 arvon jäädessä pienemmäksi kuin A1 älä tee mitään)
2 8,14 0,14
1 11,44 7,44

jne.. kaikki tämä kaava pitäis saada tungettua soluun C1
laskettuna tästä pitäis saada tulos 9,31

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