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

Functie doet het niet

  • Onderwerp starter Onderwerp starter Jemp
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Jemp

Gebruiker
Lid geworden
18 feb 2012
Berichten
145
Beste

Ik heb een probleem met de functie SOMPRODUCT.
Voor alle gemak heb ik een voorbeeldfile bijgevoegd (eigenlijke probleem is uiteraard groter en complexer).
Enkele gegevens:
- In de tabel "Uren 2017" staan een aantal gegevens ivm de gepresteerde uren van de werknemers
- "UrenNaam" en "UrenTotaal" zijn benoemde dynamische bereiken
- De functie somproduct die ik wil gebruiken om het totaal aantal gepresteerde uren te berekenen werkt zoals kan gezien worden in de cellen O3:O5
- Wanneer ik echter een functie wil schrijven (zie Module 1) werkt het niet meer (zie resultaat in cellen O7:O9)

Vermoedelijk doe ik iets doms ... maar zo zal ik nu eenmaal zijn.
Graag advies dus van de specialisten zonder al te veel te veranderen aan de benadering.

Bekijk bijlage test functie.xlsm

Groetjes
JP
 
Dat is niet makkelijk. Deze werkt wel:

Code:
Function Prestatie(naam As String, bereiknaam As Range, bereikuren As Range) As Double

    Prestatie = Evaluate("SUMPRODUCT((" & bereiknaam.Address & "=" & Chr(34) & naam & Chr(34) & ")*(" & bereikuren.Address & "))")

End Function
 
Beste Wigi

Tx voor het snelle antwoord.
Jouw voorstel kan ik perfect gebruiken.

Kan je mij eventueel ook wat uitleg geven over de benadering (of waar ik die uitleg kan vinden) want zelf had ik dit nooit gevonden.

Groetjes
JP
 
Ok Wim

Daar ga ik zeker mee aan de slag.
Nogmaals bedankt voor de moeite

JP
 
Ik dacht even dat het probleem opgelost was maar er duikt toch nog een probleem op.
De functie die Wim voorstelt werkt blijkbaar niet wanneer ik ze wil gebruiken op ander tab blad ("Synthese").
Iemand een idee hoe ik de functie moet aanpassen om dit op te lossen?

Bekijk bijlage test2 functie.xlsm
 
Je mist in dit geval de naam van de sheet in de opbouw van de formule. Overigens heb ik geen idee of er nu weer iets anders omvalt...
Code:
Function Prestatie(naam As String, bereiknaam As Range, bereikuren As Range) As Variant
    
    Prestatie = Evaluate("SUMPRODUCT(('" & bereiknaam.Parent.Name & "'!" & bereiknaam.Address & "=" & Chr(34) & naam & Chr(34) & ")*('" & bereiknaam.Parent.Name & "'!" & bereikuren.Address & "))")

End Function

[EDIT] Overigens vraag ik me wel af waarom je een formule met ingebouwde functies nog 'ns in een UDF zou willen gieten. Dit komt de performance niet ten goede....
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan