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

verschil in functie

Status
Niet open voor verdere reacties.

ronsom

Gebruiker
Lid geworden
6 mrt 2012
Berichten
232
Hallo allemaal,

Misschien een stomme vraag maar is de somproduct functie sneller dan een functie met vertikaal zoeken.
 
Denk het niet, SOMPRODUCT bekijkt een hele lijst en VERT.ZOEKEN stopt bij de eerst gevonden waarde.

Maar hangt van je toepassing af wat handiger is. SOMPRODUCT biedt meer mogelijkheden.
 
Hallo Alex,

Bedankt voor je reactie.
Mijn vraag komt voort uit een vorige topic waarin ik geholpen ben met de VERTIKAAL.ZOEKEN functie.
Deze functie heb ik in VBA gezet en deze rekent in mijn originele bestand verschillende kollommen door en schrijft ze dan als waardes weg.
Mijn vraag is of ik sneller ben en of ik hetzelfde resultaat bereik met de SOMPRODUCT functie.
Het bestand uit de vorige topic heb ik als bijlage toegevoegd.
Is het ook van beland dat ik het stukje VBA toevoeg?
 

Bijlagen

Laatst bewerkt:
Wat denk je zelf? Zou het van belang zijn als je een vraag over VBA stelt en de code niet plaatst? Mits goed gebruikt zijn ingebouwde functies sneller dan VBA.
 
Hallo Vena,

In de bijlage het bestand met de VBA code erin.
Mijn vraag is of dit evt. met een andere formule sneller kan.
 

Bijlagen

Met een macro kom ik op zoiets uit:
Code:
Sub VenA()
  With Sheets("Blad1").ListObjects(1)
    ar = .DataBodyRange
    ar1 = .Parent.Cells(1, 15).CurrentRegion
    For j = 1 To UBound(ar)
      If ar(j, 9) = "Totaal" Then
        For jj = 2 To UBound(ar1)
          If ar(j, 6) = ar1(jj, 1) Then
            ar(j, 11) = ar1(jj, 2)
            Exit For
          End If
        Next jj
      End If
    Next j
    .DataBodyRange = ar
  End With
End Sub

Of het sneller is dan met formules heb ik niet getest.
 
Code:
Sub hsv()
sv = Cells(1, 15).CurrentRegion
Sheets(1).ListObjects(1).DataBodyRange.Columns(6).Name = "br"
  For i = 2 To UBound(sv)
   [br].Offset(, 5) = Evaluate("if((br=" & CLng(sv(i, 1)) & ")*(offset(br,,3)=""Totaal"")," & sv(i, 2) & ",offset(br,,5))")
  Next i
End Sub
 
Laatst bewerkt:
Vena en HSV,

Dank jullie wel voor de reacties, ik ga ermee aan de slag.
In ieder geval werken ze allebei prima.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan