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

vergelijken in database

Status
Niet open voor verdere reacties.

stefano

Gebruiker
Lid geworden
22 mei 2004
Berichten
865
Ik beschik over een aantal gegevens die met elkaar dienen vergeleken te worden. Als aan elke voorwaarde van reeks 1 voldaan is , dan wordt een naam toegekend als eindresultaat, als aan de voorwaarden van reeks 2 voldaan wordt, dan volgt een tweede naam, enz...

De vraag is nu : welke formule kan ik nu makkelijkst/best gebruiken voor het oplossen van mijn probleem ?

zie bijlage aub
 

Bijlagen

echt niemand ?

Echt niemand die kan helpen, of is er geen oplossing ?
 
Je kunt de formule wat vereenvoudige door gebruik te maken van een matrix

=ALS(B8:E8>=B3:E3;A3;0)

in bovenstaand voorbeeld wordt de reeks cellen B8 t/m E8 met B3 t/m E3 vergeleken.

succes
 
misschien wel, maar ...

ik heb je formule overgenomen en uitgetest en wanneer ik volgende gegevens gebruik, dan lijkt het niet altijd te lukken.

..............a..............b.........c..........d........e.......
1
2
3.......klasse 1.......10.......10.......10.......10
4
5
6
7
8.........................10.......10.......10.......10
9
10....................................{=ALS(B8:E8>=B3:E3;A3;0)}

Wanneer b8 = 11 ==> klasse1 en b8 = 9 ==> 0 dus ok
Wanneer c8 = 11 ==> klasse1 en c8 = 9 ==> klasse 1 wat dus niet ok is. Blijkbaar kijkt de formule enkel naar het eerste datapunt ?

zie bijlage voor voorbeeld in excel
 

Bijlagen

Het was inderdaad niet alleen maar een voorbeeld hoe je delen van de formule kunt vereenvoudige ik heb niet de gehele formule herschreven.

ik wil er straks nog wel even naar kijken
 
Sorry Stefano,

Ik kan geen kortere formule bedenken.

de oplossing die ik bedacht had blijkt inderdaad niet juist te werken.
 
Hoi Stefano,

geen makkelijk probleem he?

Je kan het oplossen met een 'simpele' matrix-formule:

=VERSCHUIVING(A1;MIN(RIJ(A3:A5)*((B8>=B3:B5)*(C8>=C3:C5)*(D8>=D3:D5)*(E8>=E3:E5)))-1;0;1;1)

Invoeren en afsluiten met de toetsencombinatie CTRL Shift Enter.

Luc
 
Luc volgens mij gaat dit niet goed -als de bedragen lager worden dan krijg je een foutmelding

Wat wel werkt is

=ALS(EN(B8>=B3;C8>=C3;D8>=D3;E8>=E3);"Klasse 1";ALS(EN(B8>=B4;C8>=C4;D8>=D4;E8>=E4);"Klasse 2";"Klasse 3"))

mvg Imod
 
Als die mogelijkheid bestaat dat er lagere getallen komen, moet je ergens een klasse zetten die dit opvangt:

Bijvoorbeeld: Zonder klasse... met allemaal 0 waarden.

De andere formules die hier gegeven zijn, zijn wel mogelijk indien je slechts enkele klasses hebt. Maar als je effe een lijstje hebt van pakweg 7 klassen, dan worden dat onmogelijk lange formules, terwijl mijn formule altijd even lang blijft. Voorwaarde is wel dat de klasses gesorteerd zijn.

Luc
 
werkt toch niet

Luc,

Het werkt niet als ik in mijn rijtje 10 10 10 10 10 één tien verander naar 9. Zie bijlage aub

dbv,

Stefano
 

Bijlagen

Hoi Stefano,

Is inderdaad een probleem, vermits ik de minimum rij neem... maar vergeten dat er een 0 kan zijn.

Draai de zaak 's om. Begin je tabel dus met Klasse 3, en eindig met klasse 1.

Gebruik vervolgens deze matrixformule:

=VERSCHUIVING(A1;MAX(RIJ(A3:A5)*((B8>=B3:B5)*(C8>=C3:C5)*(D8>=D3:D5)*(E8>=E3:E5)))-1;0;1;1)

Luc
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan