Is er een regeltje in de sub die ik kan ewghalen waardoor je wel de rapportfilters kunt instellen?quote:Op donderdag 8 mei 2014 15:10 schreef sylvesterrr het volgende:
Ik zei toch dat je nagenoeg niets meer kan doen?
Dat durf ik zo 1,2,3 niet te zeggen. Mijn gebruikers mogen de standaardfilters niet gebruiken vanwege de vele pivot tables die ik filter met behulp van slicers.quote:Op vrijdag 9 mei 2014 12:51 schreef DaviniaHR het volgende:
[..]
Is er een regeltje in de sub die ik kan ewghalen waardoor je wel de rapportfilters kunt instellen?
Niet nieuwe filters inslepen, maar wel op het knopje drukken, zeg maar?
regel 15quote:Op vrijdag 9 mei 2014 12:51 schreef DaviniaHR het volgende:
[..]
Is er een regeltje in de sub die ik kan ewghalen waardoor je wel de rapportfilters kunt instellen?
Niet nieuwe filters inslepen, maar wel op het knopje drukken, zeg maar?
1 2 3 4 5 6 7 | Function getdecimals2(ByVal value As Double) As Double Dim a As Double Dim b As String a = Round(value * 100, 0) b = CStr(Right(a, 2)) getdecimals2 = CDbl(b) / 100 End Function |
Het is maar wat je als zo'n grote onnauwkeurigheid beschouwd (0,00000000000116415210804632quote:Op zaterdag 10 mei 2014 14:31 schreef Holy_Goat het volgende:
Lieve mensen.
Waarom de fuck gebeurt dit?![]()
[ afbeelding ]
Ik verwacht gewoon 0.03 als antwoord.
Wel via een omweg opgelost nu, maar slaat echt nergens op
[ code verwijderd ]
Zit er zo een onnauwkeurigeheid in?
Mooie oplossing maar gaat inderdaad niet altijd op.quote:Op zaterdag 10 mei 2014 18:03 schreef snabbi het volgende:
returnsdecimals = Round(value - Round(value), 2)
1 2 3 4 5 6 | Sub aa() Dim a As Double a = Round(213.82 - Round(213.82), 2) If a < 0 Then a = a + 1 Debug.Print a >> geeft 0.82 End Sub |
returnsdecimals = Round(value - Application.WorksheetFunction.Floor(value, 1), 2)quote:Op zaterdag 10 mei 2014 19:10 schreef Speculant. het volgende:
je vergeet dat er ook naar boven kan worden afgerond.
Voor ons is het net alsof je 3100,03 - 3100 doet. Dit is 0,03quote:Op zaterdag 10 mei 2014 22:17 schreef Holy_Goat het volgende:
Maarem, waarom gaat het dan fout in mijn eerdere voorbeeld?
Dankjewel voor je uitlegquote:Op zondag 11 mei 2014 10:16 schreef snabbi het volgende:
[..]
returnsdecimals = Round(value - Application.WorksheetFunction.Floor(value, 1), 2)
[..]
Voor ons is het net alsof je 3100,03 - 3100 doet. Dit is 0,03
Voor de computer is het echter 3100,02999999988358 - 3100
Dit komt doordat de computer dus de dichtsbijzijnde floating point weergave zoekt die 3100,03 benaderd. 3100 hoeft hij niet te benaderen, want alleen decimalen en getallen groter dan 15 cijfers moeten worden benaderd.
Nu weet de computer wel dat hij 3100,02999999988358 moet weergeven als 3100,03, maar dat is niet zo voor 0,02999999988358. 0,03 heeft namelijk een andere floating point representatie, deze is bijvoorbeeld 0,030000001344.
PS ik ben te lui geweest om de echte getallen er bij te zoeken
Door het rekenen met de andere getallen die niet als floating point hoeven weergegeven te worden, verliest de computer de type weergave uit het oog.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | Private Sub Worksheet_Change(ByVal Target As Range) If Not (Application.Intersect(Worksheets(4).Range("D4:F86"), Target) Is Nothing) Then DoSort End If End Sub Private Sub DoSort() Worksheets(1).Range("A2:I6").Sort Key1:=Worksheets(1).Range("J2"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I2"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A10:I14").Sort Key1:=Worksheets(1).Range("J10"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I10"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A18:I22").Sort Key1:=Worksheets(1).Range("J18"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I18"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A26:I30").Sort Key1:=Worksheets(1).Range("J26"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I26"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A34:I38").Sort Key1:=Worksheets(1).Range("J34"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I34"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A42:I46").Sort Key1:=Worksheets(1).Range("J42"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I42"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A50:I54").Sort Key1:=Worksheets(1).Range("J50"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I50"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A58:I62").Sort Key1:=Worksheets(1).Range("J58"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I58"), Order2:=xlDescending, Header:=xlYes End Sub ------------------------------------------------------------------------------------------------------------------------------------------- Private Sub Worksheet_Change2(ByVal Target As Range) If Not (Application.Intersect(Worksheets(4).Range("J4:L86"), Target) Is Nothing) Then DoSort2 End If End Sub Private Sub DoSort2() Worksheets(5).Range("A2:I6").Sort Key1:=Worksheets(5).Range("J2"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I2"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A10:I14").Sort Key1:=Worksheets(5).Range("J10"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I10"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A18:I22").Sort Key1:=Worksheets(5).Range("J18"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I18"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A26:I30").Sort Key1:=Worksheets(5).Range("J26"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I26"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A34:I38").Sort Key1:=Worksheets(5).Range("J34"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I34"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A42:I46").Sort Key1:=Worksheets(5).Range("J42"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I42"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A50:I54").Sort Key1:=Worksheets(5).Range("J50"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I50"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A58:I62").Sort Key1:=Worksheets(5).Range("J58"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I58"), Order2:=xlDescending, Header:=xlYes End Sub |
1 2 3 4 5 6 7 8 9 | Private Sub Worksheet_Change(ByVal Target As Range) If Not (Application.Intersect(Worksheets(4).Range("D4:F86"), Target) Is Nothing) Then DoSort End If If Not (Application.Intersect(Worksheets(4).Range("J4:L86"), Target) Is Nothing) Then DoSort2 End If End Sub |
1 | =((100/(SOM(C93;C97;C106;C110;C119;C123;C132;C136;C143;C147;C156;C160)))*((ALS(C94="herhaalklacht";C93;0))+(ALS(C98="herhaalklacht";C97;0))+(ALS(C107="herhaalklacht";C106;0))+(ALS(C111="herhaalklacht";C110;0))+(ALS(C120="herhaalklacht";C119;0))+(ALS(C124="herhaalklacht";C123;0))+(ALS(C133 = "herhaalklacht";C132;0))+(ALS(C137 = "herhaalklacht";C136;0))+(ALS(C144 = "herhaalklacht";C143;0))+(ALS(C148 = "herhaalklacht";C147;0))+(ALS(C157 = "herhaalklacht";C156;0))+(ALS(C161 = "herhaalklacht";C160;0)))/100) |
1 | =((100/(SOM(C180;C184;C193;C197;C206;C210;C219;C223;C230;C234;C243;C247)))*((ALS(C181="herhaalklacht";C180;0))+(ALS(C185="herhaalklacht";C184;0))+(ALS(C194="herhaalklacht";C193;0))+(ALS(C198="herhaalklacht";C197;0))+(ALS(C207="herhaalklacht";C206;0))+(ALS(C211="herhaalklacht";C210;0))+(ALS(C220 = "herhaalklacht";C219;0))+(ALS(C224 = "herhaalklacht";C223;0))+(ALS(C231 = "herhaalklacht";C230;0))+(ALS(C235 = "herhaalklacht";C234;0))+(ALS(C244 = "herhaalklacht";C243;0))+(ALS(C248 = "herhaalklacht";C247;0)))/100) |
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Opinion is the medium between knowledge and ignorance (Plato)
quote:Op donderdag 15 mei 2014 20:00 schreef Janneke141 het volgende:
Dat kan wel, maar voor zover ik het kan overzien word je daar niet vrolijk van. Ik word sowieso al niet vrolijk van je formules, maar als je ze ook nog gaat decoreren met INDIRECT-lussen om je sprongen van 87 te maken is het helemaal niet meer te volgen.
Als ik een beetje mag gokken wat je aan het doen bent, wil je het aantal nieuwe klachten per kalenderweek tellen (of er een percentage van maken, weet ik veel). Kun je dit niet oplossen met SOM.ALS of iets in die streek?Ja ik ben niet superhandig met Excel, niet vaak gebruikt tot een tijdje terugSPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Het gaat om niet gefactureerde uren met vier mogelijke redenen, waarbij ik een percentage uitreken. Bijvoorbeeld twee uur niet gefactureerd door service en drie uur niet gefactureerd door garantie, dan rekent hij met die formule uit 60% niet gefactureerd door garantie en 40% door service. Klinkt misschien wat ingewikkeld en ik was dan ook al bijzonder trots op mezelf dat ik het werkend heb gekregen
Wat houdt dat SOM.ALS precies in?
Je zorgt dat je indeling bijvoorbeeld als volgt is:quote:
Nou ik weet niet of dat kan, want het zit zo:quote:Op donderdag 15 mei 2014 21:56 schreef Speculant. het volgende:
[..]
Je zorgt dat je indeling bijvoorbeeld als volgt is:
c181= "herhaalklacht" d181=waarde
c185= "herhaalklacht" d185=waarde
etc.
Dan doe je som.als( c181:c248; "herhaalwaarde"; d181:d185). Per rij wordt gekeken of de waarde in c_x voldoet aan "herhaalwaarde"->indien dat zo is neemt hij de waarde uit d_x apart. Je krijgt als resultaat de som van alle waarden die apart zijn genomen.
Precies wat jij doet, alleen wat simpeler.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |