Je kan de functie vergelijken (NL) of match gebruiken.
Voor elke rij kan je met deze functie in die rij zoeken of de waarde voorkomt en op welke kolom. Komt deze waarde meerder keren voor, krijg je meerdere kolom nummers, 1 per rij.
Doe hetzelfde voor de kolommen, en je vind de rij.
Als het niet wordt gevonden geeft de functie #N/B, dat kan je afvangen met de constructie als(niet(isnb(vergelijking));vergelijking;""). (dit kan efficiënter )
Dus als ik jou voorbeeld matrix in A1:G7 zet, dan zet ik in $K$1 de zoek max waarde 46 neer en in i2 =ALS(NIET(ISNB(VERGELIJKEN($K$1;A2:G2;0)));VERGELIJKEN($K$1;A2:G2;0);""). Dit trek je door naar i2:i7
NB dit kan efficiënter door ALS.FOUT(VERGELIJKEN($K$1;A1:G1;0);"")
De uitkomst is 4, of te wel kolom D (de schaal begint bij 1, als je een schaal vanaf 0 wilt, trek er 1 af).
(NB de getallen zijn relatief ten opzicht van de kolom waar je in zoekt, zoek je niet vanuit A1, krijg je getallen relatief daaraan)
Doe dit zelfde truukje voor de rijen.
B9 =ALS(NIET(ISNB(VERGELIJKEN($K$1;B1:B7;0)));VERGELIJKEN($K$1;B1:B7;0);"") en door trekken naar G9. Uitkomst 3
Zet naast I2 in J2 =ALS(I2<>"";RIJ();""). Idem voor J3:J7
Voor B10 =ALS(B9<>"";KOLOM();""). Idem voor C10:G10
Dan heb je in alle situaties de locaties, alleen het staat op twee verschillende plekken, namelijk als de waarde dubbel voorkomt in een rij of kolom staat het op een andere plek, zie de voorbeelden beneden
Met 1 waarde krijg je dit kolom 4, rij 3 (je moet er 1 aftrekken om op de waarde uit de eerste rij/kolom ui te komen)
0 | 1 | 2 | 3 | 4 | 5 | 6 | | | | 46 |
1 | 2 | 2 | 9 | 0 | 2 | 1 | | | | |
2 | 5 | 32 | 46 | 2 | 2 | | | 4 | 3 | |
3 | 7 | 7 | 7 | 0 | 2 | | | | | |
4 | 10 | 4 | 6 | 6 | 3 | 0 | | | | |
5 | 11 | 2 | 1 | 2 | 3 | 2 | | | | |
6 | 1 | 32 | 2 | 1 | 2 | | | | | |
| | | | | | | | | | |
| | | 3 | | | | | | | |
| | | 4 | | | | | | | |
En met twee waarden kolom 5, rij 2 en kolom 4 en rij 3
0 | 1 | 2 | 3 | 4 | 5 | 6 | | | | 46 |
1 | 2 | 2 | 9 | 46 | 2 | 1 | | 5 | 2 | |
2 | 5 | 32 | 46 | 2 | 2 | | | 4 | 3 | |
3 | 7 | 7 | 7 | 0 | 2 | | | | | |
4 | 10 | 4 | 6 | 6 | 3 | 0 | | | | |
5 | 11 | 2 | 1 | 2 | 3 | 2 | | | | |
6 | 1 | 32 | 2 | 1 | 2 | | | | | |
| | | | | | | | | | |
| | | 3 | 2 | | | | | | |
| | | 4 | 5 | | | | | | |
En met twee waarden waarvan 1 in dezelfde kolom (in het voorbeeld kolom D de 4 de kolom)
0 | 1 | 2 | 3 | 4 | 5 | 6 | | | | 46 |
1 | 2 | 2 | 9 | 0 | 2 | 1 | | | | |
2 | 5 | 32 | 46 | 2 | 2 | | | 4 | 3 | |
3 | 7 | 7 | 7 | 0 | 2 | | | | | |
4 | 10 | 4 | 6 | 6 | 3 | 0 | | | | |
5 | 11 | 2 | 46 | 2 | 3 | 2 | | 4 | 6 | |
6 | 1 | 32 | 2 | 1 | 2 | | | | | |
| | | | | | | | | | |
| | | 3 | | | | | | | |
| | | 4 | | | | | | | |
Twee waarden in de zelfde rij (3de rij)
0 | 1 | 2 | 3 | 4 | 5 | 6 | | | | 46 |
1 | 2 | 2 | 9 | 0 | 2 | 1 | | | | |
2 | 5 | 32 | 46 | 2 | 46 | | | 4 | 3 | |
3 | 7 | 7 | 7 | 0 | 2 | | | | | |
4 | 10 | 4 | 6 | 6 | 3 | 0 | | | | |
5 | 11 | 2 | 1 | 2 | 3 | 2 | | | | |
6 | 1 | 32 | 2 | 1 | 2 | | | | | |
| | | | | | | | | | |
| | | 3 | | 3 | | | | | |
| | | 4 | | 6 | | | | | |
Je ziet dat in de verschillende gevallen de waarden op andere plekken staan
Met deze tip kan de lege cellen
opschonen . Verder voor het samen oegen van beide situatie kan je een controle doen op de I kolom en de 9de rij. Als dit 1 en 2 is, moet je niet de I en J kolom hebben maar de 9de en 10de rij (die word opgeschoond)
Dus in de cellen
l1: =ALS(EN(AANTAL(A9:G9)=2;AANTAL(I1:I7)=1);ALS.FOUT(INDEX($A$10:$G$10;AGGREGAAT(15;6;(KOLOM($A$10:$G$10)-KOLOM($A$10)+1)/($A$10:$G$10<>"");RIJEN(L$1:L1)));"");ALS.FOUT(INDEX($I$1:$I$7;AGGREGAAT(15;6;(RIJ($I$1:$I$7)-RIJ($I$1)+1)/($I$1:$I$7<>"");RIJEN(L$1:L1)));""))
l2: =ALS(EN(AANTAL(A9:G9)=2;AANTAL(I1:I7)=1);ALS.FOUT(INDEX($A$10:$G$10;AGGREGAAT(15;6;(KOLOM($A$10:$G$10)-KOLOM($A$10)+1)/($A$10:$G$10<>"");RIJEN(L$1:L2)));"");ALS.FOUT(INDEX($I$1:$I$7;AGGREGAAT(15;6;(RIJ($I$1:$I$7)-RIJ($I$1)+1)/($I$1:$I$7<>"");RIJEN(L$1:L2)));""))
M1: =ALS(EN(AANTAL(A9:G9)=2;AANTAL(I1:I7)=1);ALS.FOUT(INDEX($A$9:$G$9;AGGREGAAT(15;6;(KOLOM($A$9:$G$9)-KOLOM($A$9)+1)/($A$9:$G$9<>"");RIJEN(M$1:M1)));"");ALS.FOUT(INDEX($J$1:$J$7;AGGREGAAT(15;6;(RIJ($J$1:$J$7)-RIJ($J$1)+1)/($J$1:$J$7<>"");RIJEN(M$1:M1)));""))
m2: =ALS(EN(AANTAL(A9:G9)=2;AANTAL(I1:I7)=1);ALS.FOUT(INDEX($A$9:$G$9;AGGREGAAT(15;6;(KOLOM($A$9:$G$9)-KOLOM($A$9)+1)/($A$9:$G$9<>"");RIJEN(M$1:M2)));"");ALS.FOUT(INDEX($J$1:$J$7;AGGREGAAT(15;6;(RIJ($J$1:$J$7)-RIJ($J$1)+1)/($J$1:$J$7<>"");RIJEN(M$1:M2)));""))
en je krijgt in kolom rij formaat op schaal 1...X in kolom L en M de gevraagde coördinaten, hieronder twee voorbeelden
0 | 1 | 2 | 3 | 4 | 5 | 6 | | | | 46 | 4 | 3 |
1 | 2 | 2 | 9 | 0 | 2 | 1 | | | | | 4 | 5 |
2 | 5 | 32 | 46 | 2 | 2 | | | 4 | 3 | | | |
3 | 7 | 7 | 7 | 0 | 2 | | | | | | | |
4 | 10 | 4 | 46 | 6 | 3 | 0 | | 4 | 5 | | | |
5 | 11 | 2 | 1 | 2 | 3 | 2 | | | | | | |
6 | 1 | 32 | 2 | 1 | 2 | | | | | | | |
| | | | | | | | | | | | |
| | | 3 | | | | | | | | | |
| | | 4 | | | | | | | | | |
0 | 1 | 2 | 3 | 4 | 5 | 6 | | | | 46 | 4 | 3 |
1 | 2 | 2 | 9 | 0 | 2 | 1 | | | | | | |
2 | 5 | 32 | 46 | 2 | 2 | | | 4 | 3 | | | |
3 | 7 | 7 | 7 | 0 | 2 | | | | | | | |
4 | 10 | 4 | 6 | 6 | 3 | 0 | | | | | | |
5 | 11 | 2 | 1 | 2 | 3 | 2 | | | | | | |
6 | 1 | 32 | 2 | 1 | 2 | | | | | | | |
| | | | | | | | | | | | |
| | | 3 | | | | | | | | | |
| | | 4 | | | | | | | | | |
(Dezelfde exercitie kan je herhalen voor de min waarde)
Overigens het voorbeeld heeft meer dan twee keer een min waarde (0)!
[
Voor 163% gewijzigd door
jeanj op 01-05-2018 13:02
]