Formule voor opzoeken in matrix

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Maik_nl
  • Registratie: Januari 2025
  • Nu online
Voor het berekenen van een juiste samenstelling heb ik een matrix gemaakt:

Afbeeldingslocatie: https://tweakers.net/i/re-D4PiLmjSUwURdalDeFIttOFA=/800x/filters:strip_exif()/f/image/Hga4VMDvpZ6QnHCUfoFh3jCV.png?f=fotoalbum_large

Een aantal gegevens zijn bekend, namelijk:
Cel A1 gebouwhoogte (bijvoorbeeld 11 meter hoog);
CEL A2 oppervlakte van glas (bijvoorbeeld 3,13 m2).

In de matrix moet opgezocht worden welke samenstelling voldoet (RIJ 1, KOLOM C t/m M)

In dit voorbeeld zou dit betekenen dat de groene cel voldoet aan de criteria en zou ik dus graag als 'antwoord' de waarde 6/4 zien.

Welke formule kan hiervoor het best gebruikt worden? Alvast hartelijk dank voor de hulp!

Beste antwoord (via Maik_nl op 14-01-2025 14:45)


  • Dirk
  • Registratie: November 2004
  • Laatst online: 00:31

Dirk

Coördinator frontpagemoderatie
Ja, je voert X.zoeken gewoon twee keer uit, met twee verschillende zoekwaardes.
De formule komt in dit geval op het volgende neer:
code:
1
=X.ZOEKEN(<Zoekwaarde kolommen>;X.ZOEKEN(<Zoekwaarde rijen>;<Rijhoofden>;<Zoektabel>;;1);<Kolomhoofden>;;1)

All statements are true in some sense, false in some sense, meaningless in some sense, true and false in some sense, true and meaningless in some sense, false and meaningless in some sense, and true and false and meaningless in some sense.

Alle reacties


Acties:
  • +1 Henk 'm!

  • Dirk
  • Registratie: November 2004
  • Laatst online: 00:31

Dirk

Coördinator frontpagemoderatie
Zoeken in tabellen doe je typisch met XLOOKUP (in het Nederlands X.ZOEKEN)
In dit geval gebruik je xlookup twee keer, genest. Eerst wil je een hele rij uit de tabel C2:J22 laten teruggeven op basis van de zoekwaarde in A2:22, daarna wil je zoeken in de gevonden rij om een waarde uit C3:J3 te selecteren. Let op dat je wil zoeken op de eerstvolgende grotere waarde, niet op een exacte overeenkomst.

All statements are true in some sense, false in some sense, meaningless in some sense, true and false in some sense, true and meaningless in some sense, false and meaningless in some sense, and true and false and meaningless in some sense.


Acties:
  • +1 Henk 'm!

  • SjoerdOe
  • Registratie: Maart 2020
  • Laatst online: 07:16
Even Googlen op INDEX-MATCH geeft je de antwoorden die je zoekt.

Acties:
  • 0 Henk 'm!

  • Maik_nl
  • Registratie: Januari 2025
  • Nu online
Ik heb nu de volgende formule gemaakt:

=X.ZOEKEN(G14;INDIRECT(K14&"!A2:A24");INDIRECT(K14&"!C2:M24");;1)

Met INDIRECT wordt gezocht naar het juiste tabblad omdat deze variabel is. Op dit tabblad staat de tabel welke hierboven al staat afgebeeld.

Nu krijg ik met de uitkomst van rij 4 (CEL C t/m M). Maar de 2e variabel/ formule waarin het oppervlakte wordt bepaald (3,33) is nog niet zichtbaar. De uitkomst zou uiteindelijk de KOLOMNAAM moeten zijn. In dit geval dus 6/4 wat staat voor een bepaalde samenstelling van glas in dit geval. Maar hoe kan ik dat aanvullen in de formule? Of zijn hiervoor meerdere (hulp)formules nodig?

Acties:
  • 0 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 12-05 20:09
Zo'n complexe formule kan je altijd beter opsplitsen in een paar stappen in aparte cellen, dan zie je ook waar het eventueel fout gaat. Dan kan je het als alles werkt het altijd nog in 1 formule combineren.

Je gebruik nu X.ZOEKEN. Dat geeft een lijst met waardes terug uit de juiste rij. Wat je wilt is het kolomnummer zodat je die kan gebruiken in een INDEX formule om de waarde uit rij 1 op te halen.

Het resultaat van je X.ZOEKEN formule kan je gebruiken in de MATCH functie om de kolom te vinden waar 3,33 in staat.

Dat kolomnummer kan je weer gebruiken in een INDIRECT functie om de waarde uit rij 1 op te halen
code:
1
=INDIRECT ( ADDRESS ( row , col ) )

Acties:
  • +1 Henk 'm!

  • Dirk
  • Registratie: November 2004
  • Laatst online: 00:31

Dirk

Coördinator frontpagemoderatie
@dixet, waarom zou je het jezelf zo moeilijk maken? X.zoeken is juist geïntroduceerd om al dat gedoe met VERGELIJKEN en INDEX te elimineren.

Het is dus simpelweg:
code:
1
=X.ZOEKEN(<Zoekwaarde>;<Vorig resultaat>;INDIRECT(K14&"!C1:M1");;1)

Waarbij je voor <Vorig resultaat> zowel kunt verwijzen naar de cellen waar dit in staat als gewoon de vorige formule kunt invoegen.

[ Voor 3% gewijzigd door Dirk op 13-01-2025 19:34 ]

All statements are true in some sense, false in some sense, meaningless in some sense, true and false in some sense, true and meaningless in some sense, false and meaningless in some sense, and true and false and meaningless in some sense.


Acties:
  • 0 Henk 'm!

  • Maik_nl
  • Registratie: Januari 2025
  • Nu online
@Dirk

Maar werkt dit ook met twee zoekwaardes? Het zijn namelijk 2 variabelen. De gebouwhoogte (in dit voorbeeld 11, dus eerst volgende waarde in tabel is 12) en het oppervlakte (in dit voorbeeld 3,13 m2, dus de eerst volgende waarde uit de tabel 3,33 omdat voorgaande waarde te klein is en dus niet voldoet).

Deze twee variabelen geeft als resultaat de kolomnaam C1:M1

Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Dirk
  • Registratie: November 2004
  • Laatst online: 00:31

Dirk

Coördinator frontpagemoderatie
Ja, je voert X.zoeken gewoon twee keer uit, met twee verschillende zoekwaardes.
De formule komt in dit geval op het volgende neer:
code:
1
=X.ZOEKEN(<Zoekwaarde kolommen>;X.ZOEKEN(<Zoekwaarde rijen>;<Rijhoofden>;<Zoektabel>;;1);<Kolomhoofden>;;1)

All statements are true in some sense, false in some sense, meaningless in some sense, true and false in some sense, true and meaningless in some sense, false and meaningless in some sense, and true and false and meaningless in some sense.

Pagina: 1