• 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.

worksheetfunction.sumifs

Status
Niet open voor verdere reacties.

koster1984

Gebruiker
Lid geworden
4 jul 2012
Berichten
337
Goedemorgen,

In Excel heb ik een formule:
PHP:
=SOM(SOMMEN.ALS(F3:F8;H3:H8;"a";G3:G8;I2:I3))
Hierbij is het laatste argument een range met meerdere condities in één.

Dit wil ik ook toepassen in vba, maar ik krijg het maar niet voor elkaar, ik heb nu dit maar krijg het niet werkend:
Code:
Sub test()
Dim a As Variant
a = Array("a", "b")
[K2] = WorksheetFunction.Sum(WorksheetFunction.SumIfs([F3:F8], [H3:H8], "a", [G3:G8], a))
End Sub

Zou iemand mij op weg willen helpen?
 

Bijlagen

probeer dit eens:


Code:
Range("K2").FormulaArray = "=SUM(SUMIFS(F3:F8, H3:H8, ""a"", G3:G8, I2:I3))"
 
Bedankt voor de suggestie, maar dat zoek ik niet. Ik zoek echt een vba code die dat doet, niet een code die vervolgens alsnog een excel-formule in een cel zet.

Als dat niet via sumifs kan, is op een andere manier overigens ook gewoon prima hoor. Maar omdat ik dat toepas over een groot bereik liefst wel zo 'elegant' mogelijk.
 
Of een werkboekfunktie gebruiken nu de beste methode is laat ik in het midden, maar is loopen door jouw a-array een oplossing?

Code:
Sub test()
Dim a As Variant, y
a = Array("a", "b")
For i = LBound(a) To UBound(a)
    y = y + WorksheetFunction.Sum(WorksheetFunction.SumIfs([F3:F8], [H3:H8], "a", [G3:G8], a(i)))
Next i

[K2] = y
End Sub
 
Hoi Eric,

Dat zou inderdaad een manier kunnen zijn om er omheen te werken, ik had die voor nu even gemeden omdat ik overtuigd was dat het, net zoals in een excel-formule, op de een of andere manier tóch moest kunnen.

Ik wacht nog heel even af of er iemand toch nog iets dichter in de buurt komt van het idee in mijn hoofd en anders werk ik er gewoon om heen.

Dank voor je suggestie!



ps. de workbookfunction is geen must
 
Selecteer de cel met de formule, dan Alt-F11, dan ctrl-g, en type: ? activecell.Formula en enter.
Het resultaat kun je direct overnemen in je code:
[K2] = [SUM(SUMIFS(F3:F8,H3:H8,"a",G3:G8,I2:I3))]
Als je in vba context iets anders wilt met die I2:I3 dan gebruik je de gewone versie van Evaluate en niet de teksthaken:
[K2] = Evaluate("SUM(SUMIFS(F3:F8,H3:H8,""a"",G3:G8," & jouwding & "))")
jouwding zal een join zijn van je array.
 
yep, dan
Code:
jouwding  = "{""a"",""b""}"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan