• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

1e getal in een bereik vinden

  • Onderwerp starter Onderwerp starter mtb
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

mtb

Gebruiker
Lid geworden
15 feb 2005
Berichten
314
Hallo,

weet iemand de formule om het 1e getal in een bereik te vinden
bereik is B5:K5 en binnen dit bereik kunnen op willekeurige plaatsen getallen staan, nu zou ik graag willen dat het 1e getal binnen dat bereik weergegeven wordt in N5

alvast bedankt voor het meedenken
 
Beste Michel,

Er zijn meerdere manieren om dit op te lossen. De manier van Danny is er één maar als je met meerdere rijen onder elkaar werkt (hetgeen ik vermoed) dan werkt die niet meer.
Een andere manier is de formule in kolom O (zie bijlage). Probleem daarbij is dat het aantal keren dat je "als" kan gebruiken beperkt is tot 7. Dan moet je meerdere als-functies nesten maar ik weet zo snel niet hoe dat gaat.
Een laatste manier is VBA. Zit ook in het bijgevoegde bestand "ingebakken".

Groet,
Ronald
 

Bijlagen

Danny, Ronald

bedankt voor de aangedragen oplossing.

Ronald jouw veronderstelling m.b.t. meerdere rijen onder elkaar klopt, vandaar dat ik voor jouw oplossing heb gekozen.
 
In de bijlage mijn versie.
Met een matrixformule kun je dit ook oplossen.
Voordeel: Geen macro's.
Code:
=INDEX(B5:J5;MIN(ALS((B5:J5)<>"";KOLOM(B5:J5)-1;99999)))

Even de uitleg:
Als je een matrixformule invult, met CTRL-SHIFT-Enter bevestigen, i.p.v. Enter.
Een matrixformule, gaat 1 voor 1 de cellen langs. In feite is een matrixformule een opeenstapeling van lossen formules.

Deze matrixformule kun je dus als volgt lezen:
index(B5:J5;Min(

Als(B5<>"";kolom(b5)-1;99999)
Als(C5<>"";kolom(c5)-1;99999)
Als(D5<>"";kolom(d5)-1;99999)
Als(E5<>"";kolom(e5)-1;99999)
Als(F5<>"";kolom(f5)-1;99999)
Als(G5<>"";kolom(g5)-1;99999)
Als(H5<>"";kolom(h5)-1;99999)
Als(I5<>"";kolom(i5)-1;99999)
Als(J5<>"";kolom(j5)-1;99999)
)

Als er in kolom B t/m J een waarde staat, zal kolom() een getal opleveren. Omdat we in kolom B beginnen, haal ik er 1 af.
De formule Min() zorgt er dan voor dat indien er meerdere kolommen waarden bevatten, het laagste kolomnummer gepakt wordt.
Met de formule Index() pak ik x-ste waarde uit de reeks. Waarbij X = het laagste kolomnummer met een waarde, minus 1.
 

Bijlagen

Overigens is dit wellicht beter:
Code:
=INDEX(B5:J5;MIN(ALS(ISGETAL(B5:J5);KOLOM(B5:J5)-1;99999)))
Als dan in een kolom wat tekst staat, wordt dit overgeslagen.


B C D E
appel 1 banaan
Levert dan 1 op en niet appel.
 
Hoi,

zie mijn vraag en de reactie's erop

Maar ik heb mij bestand (noodgedwongen) zo aangepast dat het niet meer om en regel gaat maar dat er in een bereik (bv B5:J8) gekeken moet worden naar het 1e getal maar dat getal moet groter zijn dan 0

weet iemand hier een oplossing voor, ik heb geprobeerd de formules aan te passen maar dat lukt me niet, heeft iemand advies
 
ik heb mij bestand (noodgedwongen) zo aangepast dat het niet meer om en regel gaat maar dat er in een bereik (bv B5:J8) gekeken moet worden naar het 1e getal maar dat getal moet groter zijn dan 0
En wát versta jij onder het eerste getal?
Het eerste getal, kijkend per rij ?
Of het eerste getal kijkend per kolom ?
 
zapatr

Ik bedoel ook echt het 1e getal in het bereik (zie mijn vorige post) maakt dus niet uit of je het op kolom of rij basis bekijkt, er kan namelijk altijd in dat getal maar 1 cijfer staan wat aan die voorwaarde voldoet

hoop dat het zo is duidelijker is
 
Ik bedoel ook echt het 1e getal in het bereik (zie mijn vorige post) maakt dus niet uit of je het op kolom of rij basis bekijkt, er kan namelijk altijd in dat getal maar 1 cijfer staan wat aan die voorwaarde voldoet.
Bedoel je met het vet gemaakte gedeelte van je tekst dat er in het bereik dat je in ogenschouw wil nemen slechts 1 getal staat dat aan de voorwaarde ( groter dan 0) voldoet?
 
Zapatr

Sorry je had toch gelijk eerst moet er op kolom nivo bekeken worden
zie bijgevoegd bestand
 

Bijlagen

Of wellicht maar een UDF?
Code:
Function FirstNr(rBereik As Range) As Double
Dim C As Long
Dim R As Long

    For C = 1 To rBereik.Columns.Count
        For R = 1 To rBereik.Rows.Count
            If IsNumeric(rBereik(R, C).Value) And rBereik(R, C).Value > 0 Then
                FirstNr = rBereik(R, C).Value
                Exit Function
            End If
        Next R
    Next C

End Function
Syntax: =firstnr(C4:L6)

Groet, Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan