• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

optelling met speciale voorwaarden

Status
Niet open voor verdere reacties.

noci

Gebruiker
Lid geworden
15 jun 2016
Berichten
8
Hoi, een leuke uitdaging.

ik ben opzoek naar een formule met speciale voorwaarden die ik kan door copyeren naar de laatste regel in kolom C.

ik ben opzoek naar een formule die waardes kan optellen tot dat het zelfde getal in kolom A is bereik , maar niet verder op telt. Zie tekst kolom G.
De uitkomst dient dan te worden zoals ik heb vermeld in kolom E.
Ik heb nu maar 15 regels in het voorbeeld vermeld staan maar het kan er ook 1000 regels worden daarom graag een formule die ik over de gehele kolom C kan gebruiken.
Een VBA programma mag ook.

Ik blijf in blij afwachting naar de formule.

Voorbeeld in bijlage.
 

Bijlagen

  • berekening met speciale voorwaarde.xlsx
    10,3 KB · Weergaven: 30
Waarom zet je dit niet meteen in de excel sectie nu heb ik het maar verplaatst naar excel.
 
Hoi, ik ben opzoek naar 1 formule, nu kost het mij zeer veel tijd om deze actie te doen.
 
Ik snap niet hoe je aan je uitkomsten komt
 
Laatst bewerkt:
Ik moest ook 2x kijken, maar kolom A bevat een soort besteksposten. Dus je moet optellen tot de volgende keer dat het getal in A voorkomt. Misschien dat mijn bijlage iets verduidelijkt. Heb geen tijd meer om naar formule te speuren...
 

Bijlagen

  • berekening met speciale voorwaarde.xlsx
    11,5 KB · Weergaven: 23
Ik zie niet waarom de eerste 3 16,00 moet zijn.
Bij andere drieën zie ik vooralsnog ook geen logica.
 
Waarom 16,00? Er staat een hoger niveau onder. Dat betekent een nieuwe "paragraaf" o.i.d. Doornummeren zou duidelijker zijn.

Ik heb lopen kleuren, misschien maakt dat het duidelijker. Elke kleur is een paragraaf die steeds verder wordt opgedeeld. Elk niveau is een optelling van de ondergeschikte nummers. Op het laagste niveau is de optelling het bedrag zelf.

Ik snap het systeem, kan er alleen nog geen formule bij bedenken...
 

Bijlagen

  • berekening met speciale voorwaarde (2).xlsx
    13,2 KB · Weergaven: 20
Laatst bewerkt:
@Alex, ik denk dat ik het begrijp..een draak van een formule(matrix). Misschien dat het nog wel korter kan maar ik ben er klaar mee

Code:
=ALS(((MAX(INDEX($A$2:$D$19;RIJ(A1)+1;)))>(MAX(INDEX($A$2:$D$19;RIJ(A1);))))*((MAX(INDEX($A$2:$D$19;RIJ(A1);)))<>(MAX(INDEX($A$2:$D$19;RIJ(A1)+1;))));SOM(VERSCHUIVING($A2;;4;ALS.FOUT(VERGELIJKEN(1;--(VERSCHUIVING($A3:$A$16;;VERGELIJKEN(1;--(A2:D2<>"");0)-1)<>"");0);RIJEN($A3:$A$16))+ALS(RIJ(A1)=1;1;0)));INDEX($A2:$E2;0;5))
 
Laatst bewerkt:
inderdaad. Lijkt simpel maar oplossing via formules is complex....

Misschien dat VBA hier uitkomst gaat bieden.
 
TS kijkt wel mee maar reageert alleen niet. Dus elke poging is er mogelijk 1 te veel.:d
 
toch nog eentje met ook de gewone korte excel formules
rode rijen kloppen niet met de waarden van de TS misschien kan hij de logica verklappen.
 

Bijlagen

  • berekening met speciale voorwaarde svp met bereik met vba (1) en gewone formule.xlsm
    18,6 KB · Weergaven: 22
Laatst bewerkt:
Hoi sylvester-ponte,

ik zie dat je een VBA programma hebt gemaakt, kan je dit met me delen, dan kan ik dit in mijn eigenlijke werkbestand kopiëren.

Ik heb inderdaad een foute waarde en bereik opgegeven ( betreffende rood. ), dus niet alles goed gecontroleerd. Dit was alleen voor de verduidelijking en als voorbeeld.
 
doe alt F11 dan zie je deze:
deze doet het beter dan de gewone excel functie (daar zit nog een foutje in.)
Code:
Function Mijnsom(Niveaus As Range, Waarden As Range, Optional Adressen As Boolean)
  Dim Nivo, Aantal, N, Flag As Boolean
  Aantal = Niveaus.Rows.Count
  Nivo = Niveaus(1)
  Mijnsom = Waarden(1)
  For N = 2 To Aantal
    temp = Niveaus(N)
    If temp > Nivo Then
      Mijnsom = Mijnsom + Waarden(N)
    Else
      Exit For
    End If
  Next
  If Adressen = True Then Mijnsom = Niveaus.Row & " : " & Niveaus.Row + N - 2
End Function
deze function kan ook de startrij en de eindrij van de som aangeven , dan moet je adressen op waar (engelse versie true) zetten

ps het de functie kan korter maar het gaat om het principe.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan