Zwaar zoeken in Excel (evt met vba)

Pagina: 1
Acties:
  • 136 views sinds 30-01-2008
  • Reageer

  • dreku88000
  • Registratie: Februari 2002
  • Laatst online: 01-12-2025
Beste mensen van GoT, ik ben al enige tijd aan het zoeken (dagen), maar kan geen antwoord vinden op mijn vraag/probleem. Het zit namelijk zo: voor mijn afstudeeropdracht (HTS WTB) moet ik enkele berekeningen in Excel invoeren en zover mogelijk automatiseren.

Op een gegeven moment komt een berekening op een punt aan waar het een profiel moet kiezen op grond van een weerstandsmoment tegen buigen (Wy). Vervolgens wordt dit profiel op doorbuigen gecontroleerd. Als deze niet aan de eis voldoet, moet (liefst uit dezelfde tabel) een zwaarder profiel gekozen worden op grond van het traagheidsmoment (Iy).

Het zoeken en vinden van een profiel op grond van Wy lukt met wel met vert.zoeken, maar vervolgens een zwaarder profiel (dus Wy groter of gelijk als eerst, maar OOK met een Iy die voldoet) zoeken lukt me niet. Ik wil dus eigenlijk een zoekfunctie in een zoekfunctie ofzo (is ook nog niet gelukt).

Ik weet niet of het volgende mogelijk is? vert.zoeken(cellmetIy;cellen(vert.zoeken(cellmetWy;'bladmettabel!'a1:k500;3):'bladmettabel'!k500);3)

ofzoiets... ik heb nog niets kunnen vinden wat de juiste gegevens naar boven haalt.

de tabel waaruit geput moet worden is als volgt opgebouwd:
kolom - wat
a - Wy (versprongen)
b - Wx - (versprongen)
c - Wy
d - Wx
e - Iy
f - Ix
g - hoogte
h - breedte
i - wanddikte
j - oppervlakte vd doorsn.
k - naam (bijv. vierkante buis)

In de eerste 2 kolommen heb ik een lege cel op de bovenste plaats ingevoegd, zodat de kolommen 1 cel naar beneden staan ten opzichte van de kolommen 3 en 4 (c en d). Dit heb ik gedaan omdat anders Excel steeds een profiel aanwijst dat net te klein is volgens mijn voorwaarde. (Is hier trouwens iets aan te doen? Bijvoorbeeld dat excel na vert.zoeken een cel verder laat zien, dan wat hij gevonden heeft?)

Nou allemaal lastige zaken (voor mij) ik hoop dat hier iemand rondzwerft die een (of meerdere) oplossingen voor mijn gebrek aan kennis kan voorschotelen. Op verzoek kan ik het werkblad wel mailen maar liever niet openlijk op internet zetten ivm met bedrijfsgegevens..

Bij voorbaat dank voor jullie hullup!! _/-\o_

Lenovo Thinkpad Yoga X380


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Problemen met Office -> Software Algemeen :)

Professionele website nodig?


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

je zult of met vba aan de slag moeten of wat kunstgrepen uit moeten halen in excel.

Uiteindelijk lukt het met dbLezen of dbMin. DbLezen geeft een foutmelding als meer dan één record voldoet aan je criteria. Daar kun je omheen werken door een kolom L met het rijnr (=rij()) op te nemen en dbMin te gebruiken in combinatie met Indirect:

Je krijgt dan iets als:
=indirect("K" & dbMIN(a1:L500;L1;[criteriabereik]))

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • dreku88000
  • Registratie: Februari 2002
  • Laatst online: 01-12-2025
curry684, als dit op de verkeerde plaats stond -> sorry, ik zie al dat hij verplaatst was. maar bij de meeste zoekresultaten hier op GoT stond pw d8 ik..

Niesje, gezondheid en verder zal ik het eens gaan proberen met jouw oplossing, bedankt alvast!
Als er verder nog mensen zijn die denken te weten hoe ik dit probleem kan overkomen, hoor ik het graag!

Lenovo Thinkpad Yoga X380


  • dreku88000
  • Registratie: Februari 2002
  • Laatst online: 01-12-2025
Niesje, danku!!! het is gelukt hoera in de gloria.
Ik zal er voor de duidelijkheid nog even de oplossing bij posten (iets wat vaak NIET gebeurt en waar ik me kapot aan kan ergeren als ik iets aan het zoeken ben, maarja..)

ik heb mijn lijst aangepast als volgt:
kolom - wat
1 - volgnr.
2 - Wy
3 - Wx
4 - Profielhoogte
5 - Profielbreedte
6 - wanddikte
7 - Iy
8 - Ix
9 - Oppervlakte vd doorsnede
10 - benaming

nu heb ik in blad1 2 cellen met mogelijkheid om een waarde voor resp. Wy en Iy in te vullen. (a3 en b3)
in de vakken a2 en b2 laat ik er een "<" voor zetten, zodat excel zoekt naar grotere waarden. mbv =DBMIN('Profielen Wy'!$A$5:$J$270;'Profielen Wy'!A5;Blad1!$A$1:$B$2) zoek ik naar het volgnummer van het profiel wat ik moet hebben ('Profielen Wy'!A5). vervolgens kan ik met =VERT.ZOEKEN($A$7;'Profielen Wy'!$A$6:$J$270;10) , waarin a7 het gevonden volgnr is en '10' het kolomnr in de db voor het betreffende gegeven, de gegevens van het betreffende profiel ophalen. ik heb het gecontroleerd en hij geeft netjes het eerste profiel aan dat aan de voorwaarden voldoet.

bedankt voor de reactie ;) en tsjonge dat ik hier zolang naar heb moeten zoeken zeg! :( ik d8 dat ik onderhand wel een beetje kon zoeken 8)7 , maar je ziet wel: nooit te oud om te leren. (8>

Lenovo Thinkpad Yoga X380