• 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.

laaste getal in reeks + uitzondering

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

Jamez

Gebruiker
Lid geworden
1 apr 2004
Berichten
133
Hallo,

is het mogelijk om in een bereik het laatste getal uit een bereik te vinden en wanneer dit een letter blijkt te zijn (in alle gevallen de letter "L") het getal 1 cel hiervoor wordt gevonden.

ik heb een voorbeeld toegevoegd:
In cel g4 de uitkomst van het vinden van (van rechts naar links zoekend) het eerste getal in het bereik B4:E4 (dit geval 150 euro). in g5 hetzelfde verhaal.

b.v.d.

groeten Jamez
 

Bijlagen

Ik vind je vraag erg onduidelijk.
is het mogelijk om in een bereik het laatste getal uit een bereik te vinden en wanneer dit een letter blijkt te zijn...
Dat is een contradictio in terminis.Je zoekt een getal of een letter, maar een getal kan geen letter zijn.
.....het getal 1 cel hiervoor wordt gevonden
Wat bedoel je met 1 cel hiervoor?
In B4:E4 komt helemaal geen L voor en kan er dus ook geen cel vóór de L zijn.
Kortom: wat duidelijker aub.!
 
Waar staat "L" in het bereik B4:E4 ?
Toon ons eens wat je als resultaat verwacht in G4:G9 !
 
ah, niet zo handig om dat bereik als voorbeeld te geven. Maar ik zal de verwachte uitkomsten geven:

G4:150
G5:115
G6:340
G7:200
G8:50
G9:150


GROETEN
JAMEZ
 
Er zit einig logica in je antwoord.
Waarom moet G5 geen 100 zijn ?
 
Code:
=ALS(ISGETAL(VERSCHUIVING(A4;0;AANTALARG(B4:E4);1;1));VERSCHUIVING(A4;0;AANTALARG(B4:E4);1;1);VERSCHUIVING(A4;0;AANTALARG(B4:E4)-1;1;1))

Met vriendelijke groet,


Roncancio
 
eigenlijk moet de uitkomst gezien van rechts in het bereik een getal zijn, wanneer dit een L is , het getal links van de L pakken.
 
eigenlijk moet de uitkomst gezien van rechts in het bereik een getal zijn, wanneer dit een L is , het getal links van de L pakken.
Wat dan weer helemaal niet correspondeert met "verwachte uitkomsten" in je post #4 !!:confused:
 
eigenlijk moet de uitkomst gezien van rechts in het bereik een getal zijn, wanneer dit een L is , het getal links van de L pakken.
Dan moet G5, in tegenstelling met wat je schreef, toch 100 zijn !
dat kan o.a. met volgende formule in G4 en die met de vulgreep naar beneden kopiëren:
Code:
=ALS(AANTAL.ALS(B4:E4;"L")>0;VERSCHUIVING(INDEX(B4:E4;VERGELIJKEN("L";B4:E4;0));0;-1);ZOEKEN(9,99999999999999E+307;B4:E4;B4:E4))
Dit in de veronderstelling dat geen enkele rij leeg is.
 
Laatst bewerkt:
Iets korter dan mijn vorig antwoord (t.t.z. 1 functie minder):
Code:
=ALS(AANTAL.ALS(B4:E4;"L")>0;INDEX(B4:E4;VERGELIJKEN("L";B4:E4;0)-1);ZOEKEN(9,99999999999999E+307;B4:E4;B4:E4))
 
Beste Helpers,
Wat hij volgens mij bedoeld is het volgende:
Resultaat in G4= Kijk in rij 4 van E4 ==> B4 en geef als resultaat de waarde van de meest rechtse gevulde cel die je tegenkomt. Is deze rechtse gevulde cel echter een L ga 1 cel naar links en geef deze waarde weer in G4.
Hetzelfde voor G5 enz. In dat geval komen de resultaten overeen met post#4.
De formule hiervoor is voor jullie knappe koppen; ik dacht iets in de zin van vergelijken en verschuiving indien L? Zal zelf ook eens proberen te zoeken.

Mvg

Rudi
 
Laatst bewerkt:
Beste Helpers,
Wat hij volgens mij bedoeld is het volgende:
Resultaat in G4= Kijk in rij 4 van E4 ==> B4 en geef als resultaat de waarde van de meest rechtse gevulde cel die je tegenkomt. Is deze rechtse gevulde cel echter een L ga 1 cel naar links en geef deze waarde weer in G4.
Hetzelfde voor G5 enz. In dat geval komen de resultaten overeen met post#4.
De formule hiervoor is voor jullie knappe koppen; ik dacht iets in de zin van vergelijken en verschuiving indien L? Zal zelf ook eens proberen te zoeken.

Mvg

Rudi

Zo had ik het ook begrepen (zie #6) en vandaar dat mijn formule daarop is gebaseerd.

Met vriendelijke groet,


Roncancio
 
Wat hij volgens mij bedoeld is het volgende: Resultaat in G4= Kijk in rij 4 van E4 ==> B4 en geef als resultaat de waarde van de meest rechtse gevulde cel die je tegenkomt. Is deze rechtse gevulde cel echter een L ga 1 cel naar links en geef deze waarde weer in G4. Hetzelfde voor G5 enz.
Dat resultaat geven toch álle hierboven vermelde oplossingen?
Als Jamez nu nog even de vraag als opgelost zou willen markeren, dan kan ook deze vraag in het archief opgeborgen worden.
 
Beste zapatr,
Bij het kopieëren van jouw formule krijg ik een foutmelding in dit gedeelte 9,99999999999999E.(Was deels ook de reden van mijn eerste tussenkomst) Heb jij hier een verklaring voor?
Werk met Excel2002 SP3

Mvg

Rudi
 
Laatst bewerkt:
Bij het kopieëren van jouw formule krijg ik een foutmelding in dit gedeelte 9,99999999999999E. (Was deels ook de reden van mijn eerste tussenkomst). Heb jij hier een verklaring voor? Werk met Excel2002 SP3
Nee, daar heb ik geen verklaring voor. Een mogelijkheid ZOU bv. kunnen zijn dat je met een Engelstalige versie werkt en bij jou de komma in 9,99999999999999E dan vervangen zou moeten worden door een punt (en alle puntkomma's door komma's).
E natuurlijk moet je de geplaatste formules in G4 typen (of in de de vierde rij van een andere kolom) en naar beneden kopiëren, en niet in een andere rij. De formules moeten het echt doen hoor.
 
Laatst bewerkt:
Een groot getal, (welk nooit zal bereikt worden in de formule) is ook al voldoende !
 
Ik kon 't niet laten...:o Maar heb toch een kleine UDF geschreven om dit probleempje via VBA aan te pakken.
Code:
Function Laatste(rBereik As Range) As Double
Dim rng As Range
Dim arrInhoud As Variant
Dim iAantalGevuld As Integer


    iAantalGevuld = WorksheetFunction.CountA(rBereik)

    Set arrInhoud = rBereik
    Set rng = arrInhoud(iAantalGevuld)

    If IsNumeric(rng.Value) Then
        Laatste = rng.Value
    Else
        Laatste = rng.Offset(, -1).Value
    End If

End Function
Plaats deze functie in een standaard module van het workbook.
Roep de functie vervolgens in de sheet aan met =Laatste([te onderzoeken bereik]). In cel G4 zou de formule dan worden: =Laatste(B4:E4).
De reden van het maken van deze functie kwam eigenlijk door de nieuwe link onder de posts van Wigi. Hierin wordt beschreven hoe je een element uit een bereik makkelijk kan benaderen (= dus wéér iets nieuws geleerd!:D)

Groet, Leo
 
Laatst bewerkt:
Beste Ginger,
Knap gevonden en zeer handig voor dit voorbeeld, maar bestaat er eventueel een mogelijkheid om de functie aan te passen indien er 2 of meerdere cellen naast elkaar gevuld zijn met alfa's?(met een lus of i.d.)

Mvg

Rudi
 
Laatst bewerkt:
Warme bakkertje zei:
maar bestaat er eventueel een mogelijkheid om de functie aan te passen indien er 2 of meerdere cellen naast elkaar gevuld zijn met alfa's?
Ja hoor, dat kan ook... (had ik gisteren ook aan gedacht, maar eigenlijk niet beetgepakt omdat dat niet echt in de vraag naar voren kwam.;))
Code:
Function Laatste(rBereik As Range) As Double
Dim rng As Range
Dim arrInhoud As Variant
Dim iAantalGevuld As Integer, i As Integer

    iAantalGevuld = WorksheetFunction.CountA(rBereik)

    Set arrInhoud = rBereik
    Set rng = arrInhoud(iAantalGevuld)

    With rng
        If IsNumeric(.Value) Then
            Laatste = .Value
        Else
[COLOR="Blue"]            i = 1
            Do Until IsNumeric(.Offset(, -i).Value)
                If .Address = arrInhoud(1).Address Then Exit Do
                i = i + 1
             Loop[/COLOR]
            Laatste = .Offset(, -i).Value
        End If
    End With

End Function
De lus blijft doorzoeken tot aan het begin van het gekozen bereik.De lus heb ik expres in de 'if-structuur' gedaan. Zo heeft de code 'minder werk' als de laatste cel gewoon de goede blijkt te zijn....

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