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

Excel zoeken en hoogste datum retourneren.

Status
Niet open voor verdere reacties.

dirkmuis

Gebruiker
Lid geworden
18 jun 2018
Berichten
5
Casus:

Ik heb een sheet met meerdere tabbladen.
Tabblad 2 bevat een lijst met waarden en een datumkolom.
Tabblad 1 bevat waarden met de laatste datum.

Wat ik wil doen in tabblad 1 is zoeken naar de waarden en de hoogste datum retourneren uit tabblad 2.
Met andere woorden, in tabblad 2 kan dit vaker voorkomen.

Mijn functie nu:
=ZOEKEN(TEKST.SAMENVOEGEN(A3;" ";B3);Metingen!B:B;Metingen!A:A)

Dus ik voeg kolom A3 en B3 samen. Die waarde zoek ik op in tabblad Metingen in kolom B.
Ik resulteer dan uit kolom A de bijbehorende waarde. Echter, als ik er meerdere heb gevonden retourneert hij er maar 1.
Ik wil uiteindelijk de grootste, dus ik dacht:
=ZOEKEN(TEKST.SAMENVOEGEN(A3;" ";B3);Metingen!B:B;ALS.FOUT(GROOTSTE(Metingen!A:A;1);"Geen"))

Maar Grootste over 1 waarde gaat al niet werken.

Zie bijlage.
-Tabblad 1 kolom D zou ik het resultaat willen hebben
-Tabblad 2 kolom B wil ik doorheen zoeken
-Tabblad 3 kolom A wil ik retourneren

Bekijk bijlage Matrix_metingen.xlsx
 
Tabblad 1 D3:
Code:
=MAX(ALS(Metingen!B:B=TEKST.SAMENVOEGEN(A3;" ";B3);Metingen!A:A))
Of is dit te kort door de bocht?
 
Dat is inderdaad te kort door de bocht. Deze scant namelijk kolom B in tabblad Metingen en geeft na de eerste rij False terug. Hij pakt dus niet alle rijen die True opleveren en daarvan de datum (en dan daar weer van de hoogste).
 
Je moet de formule afsluiten met Ctrl+Shift+Enter, en niet alleen Enter (matrixformule).
Code:
=MAX(ALS(Metingen!$B$2:$B$20=A3&" "&B3;Metingen!$A$2:$A$20))
 
Het lijkt trouwens te werken met de functie als Array:
Code:
=MAX(ALS(Metingen!B:B=TEKST.SAMENVOEGEN(A7;" ";B7);Metingen!A:A;"Neej"))

Wel vreemd dat als er geen match is, hij 1-1-1900 ofwel 0 retourneert (het is een datumveld).
 
Deze werkt:
Code:
=ALS((MAX(ALS(Metingen!B:B=TEKST.SAMENVOEGEN(A2;" ";B2);Metingen!A:A;"Onwaar")))=0;"Geen";(MAX(ALS(Metingen!B:B=TEKST.SAMENVOEGEN(A2;" ";B2);Metingen!A:A;"Onwaar"))))
 
De functie 'tekst.samenvoegen' mag je ook verwijderen.
 
&-teken is gelijk aan TEKST.SAMENVOEGEN....

Maar hier nog een alternatief:
Code:
=ALS.FOUT(1/(1/MAX(ALS(SPATIES.WISSEN(LINKS(Metingen!B2:B1000;8))=A3;Metingen!A2:A1000;0)));"-")

Excel 2013 en hoger:
=ALS.FOUT(1/(1/MAX(ALS(TRIM(LINKS(Metingen!B2:B1000;8))=A3;Metingen!A2:A1000;0)));"-")
Let op: matrixfunctie, dus afsluiten met Control+Shift+Enter.

Indien geen maximum datum gevonden kan worden (uitkomst=0) resulteert het 1/(1/...) gedeelte in een foutmelding. De ALS.FOUT maakt er dan een streepje ("-") van.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan