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

Kleinste getal zoeken, daarna 2e kleinste en prioriteit stellen

Status
Niet open voor verdere reacties.

marka

Gebruiker
Lid geworden
14 jul 2009
Berichten
333
Ik heb enkele waarden in kolom A tm J staan.
Nu staan er per regel diverse waarden in. In kolom M tm U moet een prioriteitstelling per rij komen te staan waarbij de laagste waarde prioriteit 1 heeft, de 1 na kleinste 2 etc.

0 moet niet meegeteld worden. Ik ben al met wat formules bezig geweest maar kom er niet helemaal uit.
 

Bijlagen

Beste marka ;)

Neem volgende formule en plaats deze in cel M3
Sleep dan de formule naar rechts tot cel U3 en daarna naar beneden.

Code:
=ALS(ISFOUT(KLEINSTE($B3:$J3;AANTAL.ALS($B3:$J3;0)+KOLOM(M1)-12));"";KLEINSTE($B3:$J3;AANTAL.ALS($B3:$J3;0)+KOLOM(M1)-12))

Groetjes Danny. :thumb:
 
Laatst bewerkt:
Beste marka ;)

Neem volgende formule en plaats deze in cel M3
Sleep dan de formule naar rechts tot cel U3 en daarna naar beneden.

Code:
=ALS(ISFOUT(KLEINSTE($B3:$J3;AANTAL.ALS($B3:$J3;0)+KOLOM(M1)-12));"";KLEINSTE($B3:$J3;AANTAL.ALS($B3:$J3;0)+KOLOM(M1)-12))

Groetjes Danny. :thumb:

KOLOM(M1)-12) is M1
 
Beste sylvester-ponte ;)

Het gaat hier om het kolomnummer en M1 = 13 - 12 = 1
Sleep je dit naar rechts krijg 14 -12 = 2 enz...

Groetjes Danny. :thumb:
 
Goede avond Danny:thumb:
Beste sylvester-ponte ;)



NEEN

In M2 Staat dan ook 1.
N1 staat voor 2.

Groetjes Danny. :thumb:

je hebt gelijk

dus KOLOM(M1)-12) is M1 en daar staat 1
en KOLOM(N1)-12) is N1 en daar staat 2 enz...

dit houdt in dat KOLOM(M1)-12) vervangen kan worden door M1
en dan opzij trekken

groet sylvester
 
Beste sylvester-ponte ;)

Daar kan ik mee akkord gaan en het is ook een toeval dat er in cel M1 --> 1 staat.

Dan moet er in de formule M$1 staan.
Zonder het $ teken lukt het niet voor de 2de rij.
De formule wordt dan:


Code:
=ALS(ISFOUT(KLEINSTE($B3:$J3;AANTAL.ALS($B3:$J3;0)+M$1));"";KLEINSTE($B3:$J3;AANTAL.ALS($B3:$J3;0)+M$1))
Volgens mij was dat ook je eerste bedoeling niet ?

Groetjes Danny. :thumb:
 
Beste sylvester-ponte ;)

Daar kan ik mee akkord gaan en het is ook een toeval dat er in cel M1 --> 1 staat.

Dan moet er in de formule M$1 staan.
Zonder het $ teken lukt het niet voor de 2de rij.
De formule wordt dan:


Code:
=ALS(ISFOUT(KLEINSTE($B3:$J3;AANTAL.ALS($B3:$J3;0)+M$1));"";KLEINSTE($B3:$J3;AANTAL.ALS($B3:$J3;0)+M$1))
Volgens mij was dat ook je eerste bedoeling niet ?



Groetjes Danny. :thumb:
helemaal mee eens:d
 
Sorry voor de late reactie, maar op deze manier bedoel ik hem niet. In M3 moet prio1 staan (dus echt een 1), in N3 een 2, in O3 niets en pas in H3 weer een 3.
Het is onderdeel van een groter geheel wat ik hier niet kan posten. En die 1 tm 9 op rij 1 zijn meer hulp getallen, die staan in het feitelijk bestand niet.
 
Ja dat bedoel ik :D. Formule rang nog nooit van gehoord. Bedankt!
 
Nog een probleem wat min of meer met rang te maken heeft.

In kolom E en F staan de rangen. Nu hier ik hier gemakkelijk een lijst van maken door ze samen te voegen of de formule aan te passen. Dit is het probleem niet.
Wat ik wil is dat de beide 1én die in kolom E staan ook blijven staan alles met datum gelijk aan vandaag heeft namelijk Rang1. Daarna komt er rang 3 (wat dus eigenlijk 2 zou moeten zijn) en daarna komt 4. In de volgende kolom staat rang 5. Ik heb vanaf kolom P tot R een voorbeeld neergezet zoals ik de uitkomst zou willen.
 

Bijlagen

Nog een probleem wat min of meer met rang te maken heeft.

In kolom E en F staan de rangen. Nu hier ik hier gemakkelijk een lijst van maken door ze samen te voegen of de formule aan te passen. Dit is het probleem niet.
Wat ik wil is dat de beide 1én die in kolom E staan ook blijven staan alles met datum gelijk aan vandaag heeft namelijk Rang1. Daarna komt er rang 3 (wat dus eigenlijk 2 zou moeten zijn) en daarna komt 4. In de volgende kolom staat rang 5. Ik heb vanaf kolom P tot R een voorbeeld neergezet zoals ik de uitkomst zou willen.

deze function doet wat jij wil:
Code:
Function RangAnders(C As Range, Waarden As Range)
    Dim Col As New Collection, W As Range
    If C = "" Then RangAnders = "": Exit Function
    If Waarden.Cells.Count = 1 Then RangAnders = 1: Exit Function
    For Each W In Waarden
        If W <> "" Then
            For T = 1 To Col.Count
                If Col(T) >= W Then Col.Add W, , T: Exit For
            Next T
            If T > Col.Count Then Col.Add W
        End If
    Next W
    RangAnders = 1
    For T = 1 To Col.Count - 1
        If Col(T) = C Then Exit Function
        If Col(T) <> Col(T + 1) Then RangAnders = RangAnders + 1
    Next T
End Function

zie gele kolom in voorbeeld: Bekijk bijlage voorbeeld RangAneders(1.xls

groet sylvester
 
Hij moet later ook door de softwarebouwer in het systeem worden geplaatst en ik moet het uit kunnen leggen, dat gaat me zo niet lukken. Is er geen manier met excel formules?
 
Doet overigens ook niet wat ik wil. De lijst P tm R moet automatisch opgebouwd worden en dat gebeurd niet.
 
De visual basic code, wil ik wel gebruiken, maar klopt nog niet helemaal. Wat ik precies wil is het volgende

Bijvoorbeeld het is vandaag 29-08-2011 en er staat een datum in kolom a voor artikel 3015 en 3018 de prio artikelen.
Wanneer deze op 01-09-2011 en 02-09-2011 voorkomen hebben deze prioriteit 2 en 3. Alle andere artikelen met een datum hebben geen prioriteit.

Kan ik deze code ook in een ander werkblad plakken? Waar staan precies de kolommen waar deze rekening mee houdt? Is er overigens een goed boek voor Visual Basic?
 
De visual basic code, wil ik wel gebruiken, maar klopt nog niet helemaal. Wat ik precies wil is het volgende

Bijvoorbeeld het is vandaag 29-08-2011 en er staat een datum in kolom a voor artikel 3015 en 3018 de prio artikelen.
Wanneer deze op 01-09-2011 en 02-09-2011 voorkomen hebben deze prioriteit 2 en 3. Alle andere artikelen met een datum hebben geen prioriteit.

Kan ik deze code ook in een ander werkblad plakken? Waar staan precies de kolommen waar deze rekening mee houdt? Is er overigens een goed boek voor Visual Basic?
vul in de rode kolom eens in wat er wel moet komen en wat niet
en stuur hem dan nog eens in
de formule werkt net als elke exelformule en als je er op klikt zie je waar hij naar verwijst. "C" is de waarde waar van de rang wordt bepaald in de verzameling "Waarden"
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan