Toon posts:

[Excel] vert.zoeken formule uitbreiden

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

Verwijderd

Topicstarter
Hoi,

Ik heb een vert.zoeken functie die luidt als volgt

=ALS(ISFOUT(VERT.ZOEKEN(D11;A1:B20;2;ONWAAR));VERT.ZOEKEN(D11;D1:E20;2;ONWAAR);VERT.ZOEKEN(D11;A1:B2;2;ONWAAR))

Hij zoekt nu eerst in de reeks A1:20. Komt de waarde hier niet voor dan zoekt deze vervolgens in de reeks D1:E20

Hoe kan ik deze formule uitbreiden zodat er in kolom G1:H20 als een waarde ook niet in de 2de reeks wordt gevonden. Ik had zelf het volgende gefabriceerd, maar dat werkt dus niet.

=ALS(ISFOUT(VERT.ZOEKEN(D13;A1:B20;2;ONWAAR));VERT.ZOEKEN(D13;D1:E20;2;ONWAAR);ALS(ISFOUT(VERT.ZOEKEN(D13;D1:E20;2;ONWAAR));VERT.ZOEKEN(D13;G1:H20;2;ONWAAR);VERT.ZOEKEN(D13;A1:B2;2;ONWAAR)))

Kan iemand me hier mee helpen.

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 13:00
=ALS(ISFOUT(VERT.ZOEKEN(D13;A1:B20;2;ONWAAR));ALS(ISFOUT(VERT.ZOEKEN(D13;D1:E20;2;ONWAAR));VERT.ZOEKEN(D13;D1:E20;2;ONWAAR);VERT.ZOEKEN(D13;G1:H20;2;ONWAAR);VERT.ZOEKEN(D13;A1:B2;2;ONWAAR)))

Je was er bijna.

De kans dat excel de waarde die in D13 staat niet kan vinden in D1:D20 is overigens beperkt.

Verwijderd

Topicstarter
Oeps, ja dat is inderdaad niet erg waarschijnlijk.
De echte reeksen lopen staan op verschillende tabbladen en lopen van a1:iv165. Wilde hem wat versimpelen om het goed uit te leggen.

Maar bedankt in ieder geval!

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 13:00
Ik denk dat je een stevig probleem met de maximale formulelengtes krijgt als je vanaf A t/m IV geneste if constructies wilt gaan maken.
Je kan beter een VBA functie maken, die al je "eerste rijen" doorzoekt en bij een hit de cel rechts ervan teruggeeft.
Opzetje:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
Public Function zoeken_maar(ByVal zoekwaarde As Variant, Bereik As Range) As Variant
aantalzoekkolommen = Fix(Bereik.Columns.Count / 3)
For i = 0 To aantalzoekkolommen
    For j = 1 To Bereik.Rows.Count
        If Bereik.Cells(j, 1 + 3 * i) = zoekwaarde Then
            zoeken_maar = Bereik.Cells(j, 2 + 3 * i).Value
            Exit Function
        End If
    Next j
Next i
zoeken_maar = "niets gevonden"
End Function

Dit zal je echt even moeten debuggen overigens.

[ Voor 50% gewijzigd door onkl op 26-02-2007 16:11 ]


Verwijderd

Topicstarter
Edit:

Hier stond een heel verhaal met vraag om hulp in VBA. Die heb je ondertussen al gegeven. Bedankt en ik ga me daar maar eens verder inverdiepen. Kreeg net direct al problemen met de formule en teveel ingevoerde argumenten.

[ Voor 87% gewijzigd door Verwijderd op 26-02-2007 16:26 ]


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 13:00
Ga naar het werkblad waar je net een voorbeeld uit gaf. Type Alt-F11. Je krijgt de VBA-editor. Links zie je een soort explorer. Klik rechts op het betreffende Excelbestand. Kies invoegen/inster->new module.
Plak de code die ik boven typte in die module.
Ga naar excel. Pak een cel buiten A1:H20.
type daarin de formule: =zoekenmaar(D13,A1:H20)
Dit zoe hetzelfde moeten doen als de formule die ik eerder postte. Lees vervolgens de code eens *heel langzaam*, met een bakkie koffie erbij, en dan snap je denk ik wel ongeveer wat er gebeurt. (en anders even googlen of evt. hier weer vragen)

Verwijderd

Topicstarter
Ga ik morgen direct doen. Verder net een mooie site gevonden met een aantal tutorials
Excel VBA: No Experience Necessary

Dan moet ik toch wel in staat zijn om het verder zelf te doen. Ik zal als het gelukt is het hier melden en de uiteindelijke code posten.

Bedankt trouwens voor je snelle reacties en hulp _/-\o_

[ Voor 10% gewijzigd door Verwijderd op 26-02-2007 16:43 ]

Pagina: 1