Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: uitfilteren oneven en even getallen  (gelezen 6826 keer)

0 leden en 1 gast bekijken dit topic.

Offline sloeberke

  • Lid
  • *
  • Berichten: 14
  • Geslacht: Man
  • Oplossing.be
uitfilteren oneven en even getallen
« Gepost op: 05 november 2003, 01:44:36 »
HALLO SLIMMERIKEN,
kan iemand mij vertellen hoe ik oneven getallen van de even kan filteren door gebruik te maken van een formule ?(eventueel matrixformule)
vb. ik heb een kolom A waarin de getallen 1 tot 20 in willekeurige volgorde staan. In kolom B moeten de oneven getallen komen en in kolom C de even getallen in de juiste volgorde zoals ze voorkomen in A en zonder dat er lege cellen zijn in b of C
kolom A               kolomB            kolomC
    8                        5                      8
    5                       13                     10
    13                      3                      16
    10                     etc.                   etc.
     3
    16
   etc.

mvg    ???
win xp
excel 2007

Offline Ingrid B

  • Volledig lid
  • **
  • Berichten: 153
  • Ingrid Baplue Microsoft MVP Excel
Re:uitfilteren oneven en even getallen
« Reactie #1 Gepost op: 05 november 2003, 10:53:09 »
Een UDF die een matrix retourneert:


Function lijstEvenOneven(bereik As Range, even As Boolean)
'even = 0 -> geeft lijst van even getallen
'even = 1 -> geeft lijst van oneven getallen
Dim lijst() As Single
Dim i As Integer, j As Integer, aantal As Integer, rest As Integer
  If bereik.Rows.Count > 1 And bereik.Columns.Count > 1 Then
    lijstEvenOneven = CVErr(xlErrRef)
    Exit Function
  End If
  rest = IIf(even, 1, 0)
  aantal = bereik.Cells.Count
  ReDim lijst(1 To aantal)
  j = 1
  For i = 1 To aantal
    If bereik(i) Mod 2 = rest Then
      lijst(j) = bereik(i)
      j = j + 1
    End If
  Next i
  If bereik.Columns.Count > 1 Then
    lijstEvenOneven = lijst
  Else
    lijstEvenOneven = Application.WorksheetFunction.Transpose(lijst)
  End If
End Function


kopieer de functie naar een module:
https://users.pandora.be/ingrid/excel/copyvba.htm#module

en voer deze in het werkblad als matrixformule in met [Ctrl][Shift]+[Enter],bijv.
=lijstEvenOneven(A1:A20;1)
om de oneven getallen uit het bereik A1:A20 weer te geven

Gebruik een aangepaste getalopmaak om de nullen te onderdrukken bijv.
Standaard;Standaard;;
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline sloeberke

  • Lid
  • *
  • Berichten: 14
  • Geslacht: Man
  • Oplossing.be
Re:uitfilteren oneven en even getallen
« Reactie #2 Gepost op: 05 november 2003, 13:18:32 »
hallo Ingrid,

thx voor je zeer deskundige uitleg

mvg,

sloeberke
win xp
excel 2007

Offline gch

  • Nieuw lid
  • Berichten: 4
  • Oplossing.be
Re:uitfilteren oneven en even getallen
« Reactie #3 Gepost op: 19 november 2003, 16:47:00 »
Sterk.
Toch een vraagje omtrent Uw (prachtige) oplossing:
Waarom werkt deze wel als men bv. range B1:B20 selecteert en dan de formule =lijstEvenOneven(A1:A20;1) invult, maar niet indien men de formule in veld B1 invult en dan copieert naar B2:B20 ?
Thx
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline sloeberke

  • Lid
  • *
  • Berichten: 14
  • Geslacht: Man
  • Oplossing.be
Re:uitfilteren oneven en even getallen
« Reactie #4 Gepost op: 19 november 2003, 18:28:50 »
gch,

ik denk dat je die vraag beter aan ingrid baplue rechtsreeks vraagt vermits zij die oplossing heeft bedacht en daar duidelijk veel meer over weet dan ikzelf. Ik heb haar oplossing nog niet in de praktijk kunnen toepassen wegens tijdsgebrek.

mvg
win xp
excel 2007

Offline Ingrid B

  • Volledig lid
  • **
  • Berichten: 153
  • Ingrid Baplue Microsoft MVP Excel
Re:uitfilteren oneven en even getallen
« Reactie #5 Gepost op: 19 november 2003, 18:38:12 »
Sterk.
Toch een vraagje omtrent Uw (prachtige) oplossing:
Waarom werkt deze wel als men bv. range B1:B20 selecteert en dan de formule =lijstEvenOneven(A1:A20;1) invult, maar niet indien men de formule in veld B1 invult en dan copieert naar B2:B20 ?
Thx

Die functie moet als matrixformule ingevoerd worden. Het resultaat is een tabel, dat kan je dus niet in één cel invoeren maar moet je in een bereik plaatsen.
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

 


www.combell.com