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

Somproduct formule verbeteren

Status
Niet open voor verdere reacties.

HenkQ

Gebruiker
Lid geworden
14 feb 2020
Berichten
11
Goedemiddag,

Wie kan mij helpen?

Zie voorbeeld in de bijlage.

Ik zoek de waarde in kolom C waarbij de volgende voorwaarden gelden:

Kolom B Bnr moet gelijk zijn aan N9 489
Kolom F Datumtijd moet de grootste waarde zijn die kleiner is dan N10 202014021128


Let op: kolom F is tekst, ik heb niet de mogelijkheid om in deze tabel wijzigingen aan te brengen.


Als uitkomst van de formule wil ik dus graag 51200 zien verschijnen.

ik heb deze formule, echter die doet niet wat ik wil.
SOMPRODUCT(GROOTSTE((Tabel_Query_van_Productie[BNr_]=N9)*(Tabel_Query_van_Productie[DatumtijdCode als tekst]<N10)*(Tabel_Query_van_Productie[BVolgnr_]);1))


Het mag ook met VBA opgelost worden, misschien is dit zelfs wel beter.

Alvast bedankt voor het meedenken.

Groeten Henk
 

Bijlagen

  • Database.xlsx
    19,2 KB · Weergaven: 25
Volgens mij is de uitkomst niet 51200 maar 51330 als ik jouw beschrijving volg (of moet het jaartal (?) 2020/2019 er ook af?)
 
Sorry, er staat inderdaad een fout in het voorbeeld.

Bijlage is bij deze aangepast.
 

Bijlagen

  • Database_2.xlsx
    19,2 KB · Weergaven: 22
zie (lange) formule in L22
 

Bijlagen

  • Database_2.xlsx
    17,7 KB · Weergaven: 23
Beste Eric,

Deze formule doet wat hij moet doen. Super bedankt daarvoor alvast.
Waar ik nu echter tegenaan loop is dat ik deze formule via VBA in de betreffende cellen wil zetten.

PHP:
Sub Macro8()
'
' Macro8 Macro
'

Range("L23").Select
    Selection.FormulaArray = _
        "=INDEX(Tabel_Query_van_Productie[BVolgnr_],MATCH(TEXT(MAX(IF(IF(Tabel_Query_van_Productie[BNr_]=R9C14,--Tabel_Query_van_Productie[DatumtijdCode als tekst],"""")<R10C14,--Tabel_Query_van_Productie[DatumtijdCode als tekst],0)),""#""),Tabel_Query_van_Productie[DatumtijdCode als tekst],0))"
End Sub

Zelfs als ik dit met de macro-recorder opneem en onmiddelijk weer afspeel dan krijg ik deze foutmelding

2020-02-14 150927.jpg

Enig idee hoe dat komt?
 
Ja, de formuletekst is te lang (max 255 karakters)
Kort de naam van kolom F en/of de naam van de Tabel aan

Of toch gewoon een VBA oplossing ;)

met loopje in een macrootje, (een functie met argumenten kan ook/lijkt me netter):
Code:
Sub stt()
YourN09 = Blad1.Range("N9")
YourN10 = Blad1.Range("N10")
    arr = Range("Tabel_Query_van_Productie").Value
        For i = LBound(arr) To UBound(arr)
            If arr(i, 2) = YourN09 Then
                If YourCode < arr(i, 6) Then
                    YourCode = arr(i, 6)
                    YourOutCome = arr(i, 3)
                End If
         End If
    Next i
Blad1.Range("N11") = YourOutCome
End Sub
 
Laatst bewerkt:
Hoezo lange formule ?

Array formule:

PHP:
=INDEX(C2:C26;MATCH(N6&LARGE((B2:B26=N6)*(F2:F26);2);B2:B26&F2:F26;0))

Met een intelligente tabel hoef je een formule slechts 1 keer in te voeren.
 
Probleem is opgelost, allen hartelijk bedankt voor het meedenken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan