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

Uitleg formule !

Status
Niet open voor verdere reacties.

danny147

Terugkerende gebruiker
Lid geworden
29 apr 2007
Berichten
4.744
Beste ;)

Graag had ik wat meer uitleg gewild over de werking van de volgende formules.

Ben zelf iets in elkaar aan het steken en wil werken met deze formule die uit een andere TOPIC komt, principe is hetzelfde.

Code:
=ALS(INTEGER(((RIJ()-3)/($A$1/2+2)))=(((RIJ()-3)/($A$1/2+2)));ALS(RIJ()>($A$1-1)*($A$1/2+2)+2;"";INDIRECT(ADRES(($A$1/2-3)*12+2;(RIJ()-3)/($A$1/2+2)*2+1;;;"wedstrijdschema's")));ALS(A3<>"";VERT.ZOEKEN(A3;Uitslagen!$A$4:$B$21;2;0);""))

Code:
=ALS(ISGETAL(INDIRECT(ADRES(RIJ()-($A$1/2+2)*(INTEGER((RIJ()-3)/($A$1/2+2)))+($A$1/2-3)*12-1;INTEGER(((RIJ()-3)/($A$1/2+2)))*2+1;;;"wedstrijdschema's")));ALS(RIJ()>($A$1-1)*($A$1/2+2)+2;"";INDIRECT(ADRES(RIJ()-($A$1/2+2)*(INTEGER((RIJ()-3)/($A$1/2+2)))+($A$1/2-3)*12-1;INTEGER(((RIJ()-3)/($A$1/2+2)))*2+1;;;"wedstrijdschema's")));"")

A1 heeft als waarde 18
Volgens mij moet er gezocht worden op rijnummer 74 op tabblad wedstrijdschema's.

Kan er ook eens gekeken worden of de formule niet korter kan.

Wil je meer info, dan hoor ik het wel.

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

Al iemand een idee hoe de formule in elkaar zit en of ze eventueel korter kan ?

Zit zo goed als sloot met mijn bestandje dat ik niet verder geraak.

Groetjes Danny :thumb:
 
Danny,

Mijn excel niveau is nog in het stadium "beginner" t.o.v. velen hier.
Wat jij vraagt is om een niet zo eenvoudige formule te beoordelen zonder een duidelijk voorbeeld bestand. Dit vind ik moeilijk. (en vemoedelijk anderen ook gezien het feit dat er nog geen reactie is) Geef ons eens wat "Speelgoed" en misschien kunnen we er wat mee, alhoewel ik bang ben dat dit boven mijn niveau gaat - maar misschien anderen?

Altijd bereid tot helpen,
Martin.

P.S.
Ik ken de volgende uitdrukking niet, maar die zal wel tot onzer zuiderburen behoren:
Zit zo goed als sloot met mijn bestandje dat ik niet verder geraak.
 
@ Thankyou , Danny heeft een link gezet naar de topic waar de formule gebruikt is . En sorry Danny ik heb nu de office 2007 bible ( dubbel zelf ! :thumb: een gekocht en een gekregen voor vaderdag ) maar ik ben er nog ni toe gekomen om der eens naar te kijken .
Martin , het gezegde is " ik sta met een lekke band , kan niet meer verder rijden . allé iets in die zin .
 
Beste ;)

Niemand die een poging probeert te wagen :D

Groetjes Danny. :thumb:
 
Hallo Danny,

Ik waag even een poging op jouw eerste formule. Ik ga ervan uit dat je met de gegeven uitleg het resultaat kunt reconstrueren en daarmee beoordelen.

de formule:
=ALS(INTEGER(((RIJ()-3)/($A$1/2+2)))=(((RIJ()-3)/($A$1/2+2)));ALS(RIJ()>($A$1-1)*($A$1/2+2)+2;"";INDIRECT(ADRES(($A$1/2-3)*12+2;(RIJ()-3)/($A$1/2+2)*2+1;;;"wedstrijdschema's")));ALS(A3<>"";VERT.ZOEKEN(A3;Uitslagen!$A$4:$B$21;2;0);""))

De uitleg:

De kern bestaat uit een ALS-functie met de volgende elementen:
Logische voorwaarde: INTEGER(((RIJ()-3)/($A$1/2+2)))=(((RIJ()-3)/($A$1/2+2)))
Waarde als waar: ALS(RIJ()>($A$1-1)*($A$1/2+2)+2;"";INDIRECT(ADRES(($A$1/2-3)*12+2;(RIJ()-3)/($A$1/2+2)*2+1;;;"wedstrijdschema's")))
Waarde als on-waar: ALS(A3<>"";VERT.ZOEKEN(A3;Uitslagen!$A$4:$B$21;2;0);""))

De logische voorwaarde: er wordt gekeken of het getal voor de komma uit de deling rijnummer minus 3, gedeeld door 2 plus de helft van de waarde in A1, gelijk is aan die zelfde deling. Of anders gezegd heeft de deling een getal achter de komma tot gevolg.
Als er geen getal achter de komma is dan geld de waarde als waar, anders de waarde als on-waar.

Waarde als on-waar: Als A3 niet leeg is wordt er met A3 in de uitslagentabel gezocht en een uitslag gezet, anders wordt de cel leeg gemaakt.

Waarde als waar: ALS(RIJ()>($A$1-1)*($A$1/2+2)+2;"";INDIRECT(ADRES(($A$1/2-3)*12+2;(RIJ()-3)/($A$1/2+2)*2+1;;;"wedstrijdschema's")))
Ook hier weer een ASL-functie:
Logische voorwaarde: RIJ()>($A$1-1)*($A$1/2+2)+2
Waarde als waar: ""
Waarde als onwaar: INDIRECT(ADRES(($A$1/2-3)*12+2;(RIJ()-3)/($A$1/2+2)*2+1;;;"wedstrijdschema's"))

Logische voorwaarde: er wordt gekeken of het rijnummer groter is dan 2 plus het product van de waarde in A1 minus 1 en 2 plus de helft van de waarde in A1

Waarde als waar: de cel krijgt geen inhoud

Waarde als onwaar: INDIRECT(ADRES(($A$1/2-3)*12+2;(RIJ()-3)/($A$1/2+2)*2+1;;;"wedstrijdschema's"))
De kern is een INDIRECT-functie met 1 argument: ADRES(($A$1/2-3)*12+2;(RIJ()-3)/($A$1/2+2)*2+1;;;"wedstrijdschema's")
Dit levert een verwijzingstekst op, een celadres of een naam van een benoemd bereik.

Dit argument van de INDIRECT-functie is een ADRES-functie met 5 argumenten:
Rij-getal: het resultaat van (($A$1/2-3)*12+2
Kolom-getal: het resultaat van RIJ()-3)/($A$1/2+2)*2+1
Absoluut-getal: niet ingevuld, dus een absolute verwijzing
A1: verwijzingstype: niet ingevuld, dus WAAR, dit betekent A1-vorm
Tekst: de waarde Wedstrijdschema’s
 
Beste Thoralf ;)

Bedankt voor uw tijd die je hier ingestoken hebt.

Kan de formule niet korter ??

INTEGER(((RIJ()-3)/($A$1/2+2)))=(((RIJ()-3)/($A$1/2+2)))
Deze formule is toch ALTIJD WAAR ?
Waarom niet 1=1

Kan men niet gewoon
INTEGER(((RIJ()-3)/(11)))=(((RIJ()-3)/(11))) plaatsen als A1 =18, en waarom RIJ()-3

ALS(RIJ()>($A$1-1)*($A$1/2+2)+2;"";INDIRECT(ADRES(($A$1/2-3)*12+2;(RIJ()-3)/($A$1/2+2)*2+1;;;"wedstrijdschema's")))

Mag dit veranderd worden in

ALS(RIJ()>(189);"";INDIRECT(ADRES((74);(RIJ()-3)/(23);;;"wedstrijdschema's")))

Waarom zo ingewikkeld maken, kunnen we niet direct de rij en kolom nummer intypen ipv alles te moeten optellen om hetzelfde resultaat te bekomen.

Groetjes Danny. :thumb:
 
Laatst bewerkt:
Hallo Danny,

De formule kan denk ik niet korter.

HTML:
INTEGER(((RIJ()-3)/($A$1/2+2)))=(((RIJ()-3)/($A$1/2+2)))
Deze formule is toch ALTIJD WAAR ?
Waarom niet 1=1
Stel de formule staat op rij 32 en in A1 staat de waarde 6. Dan geeft RIJ() de waarde 32, ($A$1/2+2) geeft dan 6/2 + 2 en dat resulteert in 5.
(((RIJ()-3)/($A$1/2+2))) levert dan 32/5 is 6,4 op.
INTEGER(((RIJ()-3)/($A$1/2+2))) geeft INTEGER(6,4) en dat geeft 6. En 6 is niet gelijk aan 6,4.

Door gebruik te maken van de functie RIJ() kun je de formule gemakkelijk kopieren.
Zou je vaste waardes in de formules zetten dan moet je die in iedere cel handmatig aanpassen als je de formules kopieert.

RIJ()-3 wordt er genomen omdat je wellicht drie kopregels hebt boven de eerste rij waarin de formule staat.

Door de vaste waardes 189, 74 etc in de formules te zetten maak je het sheet inflexibel: De waarde in A1 zorgt voor die flexibiliteit. Wat is er dan flexibel gemaakt: wel je werkt nu in blokken die zich herhalen en A1 bepaalt de lengte van die blokken.

Nog even de uitwrking voor jouw tweede formule:

=ALS(ISGETAL(INDIRECT(ADRES(RIJ()-($A$1/2+2)*(INTEGER((RIJ()-3)/($A$1/2+2)))+($A$1/2-3)*12-1;INTEGER(((RIJ()-3)/($A$1/2+2)))*2+1;;;"wedstrijdschema's")));ALS(RIJ()>($A$1-1)*($A$1/2+2)+2;"";INDIRECT(ADRES(RIJ()-($A$1/2+2)*(INTEGER((RIJ()-3)/($A$1/2+2)))+($A$1/2-3)*12-1;INTEGER(((RIJ()-3)/($A$1/2+2)))*2+1;;;"wedstrijdschema's")));"")

De kern is ook hier een ALS-functie. De argumenten zijn:
Logische voorwaarde:
ISGETAL(INDIRECT(ADRES(RIJ()-($A$1/2+2)*(INTEGER((RIJ()-3)/($A$1/2+2)))+($A$1/2-3)*12-1;INTEGER(((RIJ()-3)/($A$1/2+2)))*2+1;;;"wedstrijdschema's")))
De kern van deze formule is de functie ISGETAL. Daarmee wordt de logische voorwaarde terug gebracht tot de voorwaarde is de inhoud van een bepaalde cel een getal of niet. De betreffende cel wordt gevonden door middel van de formule
INDIRECT(ADRES(RIJ()-($A$1/2+2)*(INTEGER((RIJ()-3)/($A$1/2+2)))+($A$1/2-3)*12-1;INTEGER(((RIJ()-3)/($A$1/2+2)))*2+1;;;"wedstrijdschema's"))
Uitleg van deze formule is conform de uitleg bij jouw eerste formule (zie mijn vorige bericht).
Wellicht ten overvloede: door het gebruik van de functie RIJ() wordt er een celadres geformeerd dat afhankelijk is van het rijnummer van de cel waarin deze formule staat.

Waarde als onwaar: "" , dus een lege cel

Waarde als waar:
ALS(RIJ()>($A$1-1)*($A$1/2+2)+2;"";INDIRECT(ADRES(RIJ()-($A$1/2+2)*(INTEGER((RIJ()-3)/($A$1/2+2)))+($A$1/2-3)*12-1;INTEGER(((RIJ()-3)/($A$1/2+2)))*2+1;;;"wedstrijdschema's")))
Ook nu is er weer sprake van een ALS-functie:
Logische voorwaarde: RIJ()>($A$1-1)*($A$1/2+2)+2

Waarde als waar: ""

Waarde als on-waar:
INDIRECT(ADRES(RIJ()-($A$1/2+2)*(INTEGER((RIJ()-3)/($A$1/2+2)))+($A$1/2-3)*12-1;INTEGER(((RIJ()-3)/($A$1/2+2)))*2+1;;;"wedstrijdschema's"))

In de ADRES-functies wordt in het eerste argument een RIJGETAL berekent, afhankelijk van het rijnummer van de cel,waarin de formule staat. Zo worden er ook in het tweede argument een KOLOMGETAL berekent. Doordat het argument ABSOLUUT_GETAL niet is ingevuld wordt er een absoluut adres gemaakt. Doordat het argument A1 niet is ingevuld wordt er een adres in de vormA1 aangemaakt (bijv bij een kolomgetal 5 en een rijgetal 3 wordt het adres E3). De invulling van het argument Tekst betekent dat verwezen wordt naar de cel op het tabblad met de naam in het argument Tekst.
Het resultaat van de functie ADRES zou dus bijv kunnen zijn 'wedstrijdschema''s'!$E$3.

Het is een heel verhaal geworden en ik hoop dat het je een beetje duidelijker is geworden.
Ik moet je wel even zeggen dat ik deze gehele verklaring geef vanuit de formules, zonder dat ik ze in een sheet geplaatst zie. Ik hoop dan ook dat als jij ze wel in het sheet ziet dat met name mijn opmerking over die blokken correct zal blijken.

Groeten vanuit Apeldoorn
 
Beste Thoralf ;)

Hallo Danny,

De formule kan denk ik niet korter.

HTML:
INTEGER(((RIJ()-3)/($A$1/2+2)))=(((RIJ()-3)/($A$1/2+2)))

Stel de formule staat op rij 32 en in A1 staat de waarde 6. Dan geeft RIJ() de waarde 32, ($A$1/2+2) geeft dan 6/2 + 2 en dat resulteert in 5.
(((RIJ()-3)/($A$1/2+2))) levert dan 32/5 is 6,4 op.
INTEGER(((RIJ()-3)/($A$1/2+2))) geeft INTEGER(6,4) en dat geeft 6. En 6 is niet gelijk aan 6,4.

Door gebruik te maken van de functie RIJ() kun je de formule gemakkelijk kopieren.
Zou je vaste waardes in de formules zetten dan moet je die in iedere cel handmatig aanpassen als je de formules kopieert.

RIJ()-3 wordt er genomen omdat je wellicht drie kopregels hebt boven de eerste rij waarin de formule staat.

Groeten vanuit Apeldoorn[/QUOTE]

Begin de formule stillaan te begrijpen na 2 à 3 keer gelezen te hebben.
Kan het zijn dat het resultaat van jouw voorbeeldje 5,4 en 5 is ipv 6,4 en 6

(((RIJ()-3)/($A$1/2+2))) levert dan[COLOR="red"] ([/COLOR]32[COLOR="Red"]-3)[/COLOR]/5 is [COLOR="red"]5,4[/COLOR] op.

INTEGER(((RIJ()-3)/($A$1/2+2))) geeft INTEGER([COLOR="red"]5[/COLOR],4) en dat geeft [COLOR="red"]5[/COLOR]

Groetjes Danny. :thumb:
 
Danny,

Je hebt gelijk als je zegt dat 6,4 niet correct is, maar 29 gedeeld door 5 is ook geen 5,4 maar is 5,8. De fout doet echter geen afbreuk aan het voorbeeld zoals je ongetwijfeld hebt gezien.
 
Beste Thoralf ;)

Ben er helemaal uit nu.

Heb gezien dat er hier en daar nog aan de formule moet gesleuteld worden wil ze werken.

Vb. voetbalploeg met 16, 18 of 20 teams klopt de formule niet voor alle drie de teams.

Groetjes Danny. :thumb:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan