Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 14 van 14

Onderwerp: Formule om vorige waarde te zoeken en waarde in te vullen

  1. #1
    Senior Member
    Geregistreerd
    30 december 2007
    Locatie
    Dorpje in Belgie
    Vraag is niet opgelost

    Question Formule om vorige waarde te zoeken en waarde in te vullen

    Goeieavond,

    Sjabloon importfile.xlsx

    Wie kan mijn probleem oplossen?

    In bijlage zit een exceltabel.

    Kolom D met SeqNo bevat de getallen 10, 20, 30, 40....
    Kolom C bevat de formule
    Kolom B is in dit voorbeeld niet belangrijk.
    Kolom A vul ik in met een getal 1 tot 5

    Nu wat is de bedoeling.

    Als je in kolom A het cijfer 1 invult, dan verandert de cel in kolom C in een ?
    Als je in kolom A het cijfer 2 invult, dan neemt hij de waarde over van de cel in kolom C van een rij hoger.
    Als je in kolom A het cijfer 3 invult, dan neemt hij de waarde over van de cel in kolom C van een rij hoger.
    enz

    Wat is nu mijn probleem:

    Als je in kolom A het cijfer 2 invult na een vorig cijfer 2, dan moet hij de waarde van de cel in kolom C idem nemen als de vorige celwaarde waarbij het niveau een 2 was.
    Zie rij 25, 28 en 34.
    De waarde in kolom C van rij 28 moet dezelfde waarde hebben als het vorige niveau 2. In dit geval rij 25.
    Dus in kolom C van rij 28 moet de waarde 230 staan.

    Iemand een idee hoe ik mijn probleem oplos? Ik zou moeten zoeken naar de vorige waarde uit kolom C die bij het vorige zelfde niveau 2 (of 3 of 4 of..) staat.

    Hopelijk is mijn uitleg wat duidelijk. Ik heb de cellen in geel aangeduid zodat het wat duidelijk is.
    Kan iemand mij helpen want ik zit volledig vast?

    Met dank!

  2. #2
    Giga Senior AlexCEL's avatar
    Geregistreerd
    3 april 2014
    Locatie
    Groningen
    Afstand tot server
    ±117 km
    Het was even puzzelen, maar probeer deze eens voor C2 en verder:
    Code:
    =ALS(A2=1;"?";ALS(A2>1;ALS(ALS.FOUT(ZOEKEN(A2;A$1:A1)=A2;0);ZOEKEN(2;1/(A$1:A1=A2);C$1:C1);D1);ALS(EN(A1="";A2="");C1;D1)))
    -- een (excel) voorbeeldbestandje zegt meer dan 1000 woorden --

  3. #3
    Senior Member
    Geregistreerd
    30 december 2007
    Locatie
    Dorpje in Belgie
    YEEEEEESSSSSS!!!!
    Dit lijkt te doen wat ik wou.
    Uren heb ik daar al op gezwoegd.

    DANK DANK DANK!!!!

  4. #4
    Senior Member
    Geregistreerd
    30 december 2007
    Locatie
    Dorpje in Belgie
    Toch nog iets ontdekt dat niet goed loopt.

    Sjabloon importfile2.xlsx

    Als je kijkt naar lijn 26 en 28 in de nieuwe file dan zie je bij waarde 2 het getal 10 staan in kolom C
    Hier zou ik eigenlijk getal 240 verwachten.
    Ik denk dat het probleem te maken heeft met dat hij naar het vorige getal 2 gaat zoeken. Alhoewel niveau 1 er tussen staat, zou hij naar niet naar het vorige getal 2 mogen zoeken maar de waarde van niveau 1 (kolom D) overnemen.

    Het is de bedoeling dat je niet over een hoger niveau gaat zoeken. (2 kan niet over 1, 3 kan niet over 2 enz)

    Kan iemand nog eens naar de formule kijken of dit op te lossen is?

    Alvast dank

  5. #5
    Senior Member rebmog's avatar
    Geregistreerd
    14 juli 2009
    Locatie
    Overijssel
    Misschien dat deze formule in C2 je verder helpt:
    Code:
    =ALS(A2=1;"?";ALS(A2="";ALS(A1="";C1;D1);INDEX(D$1:D1;SOMPRODUCT(GROOTSTE((A$1:A1=A2-1)*(RIJ(A$1:A1));1)))))
    rebmog


    Als iedereen hetzelfde denkt, denkt er niemand

  6. #6
    Giga Senior
    Verenigingslid

    Geregistreerd
    19 april 2007
    Locatie
    den haag
    Afstand tot server
    ±111 km
    zie kolom c
    Bijgevoegde bestanden Bijgevoegde bestanden
    groeten Sylvester Ponten

    ik gebruik Ms Windows 10 en excel 2010

  7. #7
    Senior Member
    Geregistreerd
    30 december 2007
    Locatie
    Dorpje in Belgie
    @sylvester-ponte: mooie oplossing maar op lijn 11 zou bij niveau 2 in kolom C het getal 10 moeten staan ipv 60. Als er na een niveau 3 opnieuw een niveau 2 staat, moet hij naar het vorige niveau 2 gaan zoeken.

    @rebmog: deze formule lijkt op het eerste zicht te werken. Ik test ze uit en zal nog feedback geven.

  8. #8
    Senior Member
    Geregistreerd
    30 december 2007
    Locatie
    Dorpje in Belgie
    @rebmog

    Ik heb toch nog een foutje gevonden.
    Als bijvoorbeeld niveau 2 de rij net onder niveau 1 staat, dan loopt de nummering goed.
    Als er een rij tussenzit, dan loopt de nummering verkeerd.

    Sjabloon importfile3.xlsx

    Voorbeeld in bijlage:
    niveau 2 op rij 15 heeft in kolom C de waarde 120 ipv 130
    Niveau 3 op rij 21 heeft in kolom C de waarde 170 ipv 190

  9. #9
    Giga Senior
    Verenigingslid

    Geregistreerd
    19 april 2007
    Locatie
    den haag
    Afstand tot server
    ±111 km
    en zo?
    Bijgevoegde bestanden Bijgevoegde bestanden
    groeten Sylvester Ponten

    ik gebruik Ms Windows 10 en excel 2010

  10. #10
    Senior Member
    Geregistreerd
    30 december 2007
    Locatie
    Dorpje in Belgie
    Bijna :-s

    Als er tussen niveau 1 en niveau 2 in kolom A een lege cel staat, dan neemt de rij met niveau 2 in kolom C de waarde over van de cel erboven in plaats van de cel erboven in kolom D
    Voorbeeld hieronder, zou niveau 2 de waarde 300 moeten krijgen ipv 290.
    Zelfde probleem bij niveau 3.


    1...?........290
    .....290....300
    2...290....310
    .....290....320

  11. #11
    Giga Senior
    Verenigingslid

    Geregistreerd
    19 april 2007
    Locatie
    den haag
    Afstand tot server
    ±111 km
    ik ben benieuwd:
    Bijgevoegde bestanden Bijgevoegde bestanden
    groeten Sylvester Ponten

    ik gebruik Ms Windows 10 en excel 2010

  12. #12
    Senior Member
    Geregistreerd
    30 december 2007
    Locatie
    Dorpje in Belgie
    Weeral bijna :-s

    Sjabloon importfile_svp 4a.xlsm

    voorbeeld in bijlage.

    Rij 14 geeft bij niveau 3 in kolom C de waarde 110 ipv 120 (idem als je hetzelfde opzet met niveau 2).

  13. #13
    Giga Senior
    Verenigingslid

    Geregistreerd
    19 april 2007
    Locatie
    den haag
    Afstand tot server
    ±111 km
    en nu?
    Bijgevoegde bestanden Bijgevoegde bestanden
    groeten Sylvester Ponten

    ik gebruik Ms Windows 10 en excel 2010

  14. #14
    Giga Senior
    Verenigingslid

    Geregistreerd
    19 april 2007
    Locatie
    den haag
    Afstand tot server
    ±111 km
    als hij voldoet , dan is hier de nettere versie: jouw bewoordingen gebuikt in de function en iets geoptimaliseerd
    Code:
    Function ParentSeqNo(Tabel As Range, Niveau As Range) 'Niveau is een Range object. deze wandelt tijdens de loop om hoog in de tabel
        If Niveau = 1 Then ParentSeqNo = "?": Exit Function
        startNiveau = Niveau
        ParentSeqNo = Niveau.Offset(-1, 3) 'deze waarde alvast op verdacht opslaan (Rij erboven kolom er naast)
        Do Until Niveau.Row = Tabel.Row
            Set Niveau = Niveau.Offset(-1) 'Niveau staat nu een rij hoger
            If Niveau <> "" Then
                If startNiveau = "" Then ParentSeqNo = Niveau.Offset(, 3): Exit Do 'kolom er naast
                If startNiveau = Niveau Then ParentSeqNo = Niveau.Offset(, 2): Exit Do 'gelijke waarde gevonden (waarde uit gelijke kolom toekennen
                If startNiveau > Niveau Then Exit Do 'kleinere waarde gevonden deze waarde is in de programmaRegel 4 al toegekend
                'niveau is hoger dan startniveau dus verder zoeken
            End If
        Loop
    End Function
    Bijgevoegde bestanden Bijgevoegde bestanden
    Laatst aangepast door sylvester-ponte : 21 februari 2020 om 15:36
    groeten Sylvester Ponten

    ik gebruik Ms Windows 10 en excel 2010

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren