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

terugwaarts in verschillende matrixen zoeken (geavanceerd)

Status
Niet open voor verdere reacties.

dragon2feed

Nieuwe gebruiker
Lid geworden
24 dec 2017
Berichten
4
Ok, toch maar eens een account hier aangemaakt.
Ik zit al jaren (ja jaren...) met het onderstaande probleem wat ik in de titel als "terugwaarts zoeken in Excel" heb genoemd, maar het ligt iets gecompliceerder.
Nou kan ik redelijk met Excel overweg, maar onderstaande wil me toch echt niet lukken


Voorbeeld Tabel:
ABCD
1CriteriumKlant nr.CodeResultaat van de formule
2A10100... (B)
3B10250... (B)
4C20100... (D)
5D20250... (D)


Ik ben op zoek naar een formule die ik kan doortrekken in kolom D, die het volgende doet in deze volgorde:
Stap 1) verifieer het klantnummer op dezelfde regel in kolom B
Stap 2) Pas de matrix aan op alle regels die dat klantnummer omvatten
Stap 3) Zoek in kolom C bij het desbetreffende klantnummer naar gegeven "0250" (is tekst in dit geval, niet numeriek)
Stap 4) Haal vanaf de positie in stap 3 het gegeven op uit de cel 2 cellen links ervan

Als ik bovenstaand stappenplan voor de formule in cel D2 zou uitwerken dan zouden de volgende uitkomsten daarbij horen:
Stap 1) Klant nr. 1
Stap 2) De regels 2 en 3, want die hebben klantnummer 1. (Resultaat = een matrix voor: A2:C3)
Stap 3) Cel C3 (resultaat = "0250")
Stap 4) Cel C1 (resultaat = "B")

Ik heb al allerlei combinaties van (voornamelijk) de horizontaal/verticaal zoeken, index en vergelijken functies gebruikt.
But... here I am, it dind't work so far.
Ik hoop dat iemand me hier bij kan helpen :)


Het liefst geen matrix formules a.u.b. als het kan.
 
In D3 en doorvoeren.
Code:
=ZOEKEN("0250";C2:C3;A2:A3)
 
Laatst bewerkt:
met 2 hulpkolommen
 

Bijlagen

  • dragon (2).xlsx
    8,8 KB · Weergaven: 38
Wat een drukte:d

Ook een poging zonder hulpkolommen en sortering onafhankelijk.

Code:
=INDEX($A$1:$A$8;SUMPRODUCT(($B$2:$B$8=B2)*($C$2:$C$8="0250")*ROW($A$2:$A$8)))
 
Zet er nog een rijtje onder met E, klant 2 en 0250 en waarschijnlijk moet het dan E zijn.
Voor 1 formule kan het net zo goed een matrixformule zijn.
Code:
=INDEX($A$1:$A$8;MAX(($B$2:$B$8=B2)*($C$2:$C$8="0250")*(RIJ($A$2:$A$8))))
 
Laatst bewerkt:
Wat een drukte:d

Ook een poging zonder hulpkolommen en sortering onafhankelijk.

Code:
=INDEX($A$1:$A$8;SUMPRODUCT(($B$2:$B$8=B2)*($C$2:$C$8="0250")*ROW($A$2:$A$8)))


Wow, snelle reacties allemaal, thnx!
@HSV: die formule is te simpel en rechtlijnig, een klant kan bijvoorbeeld verschillende regels bevatten.
@cow18: Dat is een optie, maar daarmee zoek je niet terugwaarts. Ik gebruik ook vaak hulp kolommen zoals je hier doet. Je oplossing is zeker bruikbaar, maar niet hetgene wat ik in dit geval zoek.
@VenA: Dat is dus wel wat ik zoek :) En het werkt ook lijkt het! Ik heb een praktijkcase waarop ik het kan uitproberen en in hoofdlijnen gaat dat goed. Alleen als het gegeven "0250" niet voorkomt bij een klant dan krijg ik allerlei andere resultaten, terwijl ik daar dan liever niets zie staan. Ik ben er nog mee aan het rommelen, maar dit is zeker bruikbaar! Thnx!
 
Plaats een voorbeeldbestand of zie #5.
 
Het quoten is niet nodig.

Zonder er een matrixformule van te maken lukt het mij niet om om de controle in te bakken. Dus een matrixformule

Code:
=IF(ISNUMBER(MATCH(B2&"0250";$B$2:$B$8&$C$2:$C$8;0));INDEX($A$1:$A$8;SUMPRODUCT(($B$2:$B$8=B2)*($C$2:$C$8="0250")*ROW($A$2:$A$8)));"")
 
Als er twee maal klant 2 staat met 0250 krijg je met somproduct een groot getal wat verwijzing op zal leveren (index;5+6) = rij 11.

Daarom is een voorbeeldbestand gewenst. ;)
 
Moment jongens, ik probeer een voorbeeldbestand klaar te zetten, maar mijn laptop heeft ruzie met Excel :p
 
Ok I think this should work:
Bekijk bijlage Voorbeeld helpmij.xlsx

Klant 1 en 3 zijn al juist in principe, Klant 2 daar wil ik een leeg veld zien.
@HSV, ik heb geloof ik in dit voorbeeld geen klanten die 2x de code hebben die ik wil zien, maar dat zou bij andere bestanden wel het geval kunnen zijn ja.
Uiteindelijk gooi ik er nog de DEEL formule overheen om extra gegevens uit kolom A te halen (die ik vanwege privacy uit dit voorbeeld gehaald heb)
 
Laatst bewerkt:
@V en A
arrayformula is voldoende in het eerste voorbeeld.

PHP:
=INDEX($A$1:$A$5;MAX(($B$1:$B$5=B2)*($C$1:$C$5="0250")*ROW($1:$5));0;1)
of
PHP:
=INDEX($A$1:$A$5;sum(($B$1:$B$5=B2)*($C$1:$C$5="0250")*ROW($1:$5));0;1)

In het echte voorbeeld zou ik gebruiken de matrixformule:

PHP:
=IFERROR(INDEX($A$1:$A$200;MATCH(B2&"0500";$B$1:$B$200&$C$1:$C$200;0);1);"")
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan