Vraag dat aan degenen die de dataset leverden. Meestal geven ze kleine sets als excel formaat, maar nu dus een keer een snoeigrote comma-delimited text file. Vandaar dat ik die om te beginnen met excel wilde openenquote:Op donderdag 25 augustus 2011 14:58 schreef ralfie het volgende:
[..]
Waarom zou je in godesnaam excel voor zoiets gebruiken?
niet zo heel erg denk ikquote:Op donderdag 25 augustus 2011 15:41 schreef DaFan het volgende:
En in SQL.
Weet niet hoe blij een huis, tuin en keukendatabaseprogramma wordt van 6 miljoen rijen.
1 2 3 4 5 6 7 8 9 10 | Dim LastRow LastRow = Range("A65536").End(xlUp).Row For i = 1 To LastRow For j = 1 To 9 If Cells(i, j).Value > Range("K" & i).Value Then MsgBox Cells(i, j).Address End If Next j Next i |
Ik heb het vandaag tijden de toets geprobeerd en het is gelukkig gelukt. Ik snap niet wat ik anders had gedaan dan de vorige keren Misschien niet van alle data's de gemiddelde genomen ? iig is het gelukt, tnx voor het vragenquote:Op donderdag 25 augustus 2011 14:58 schreef Individual het volgende:
[..]
@s-h: is het gelukt? Die link is voor de data structuur. Al die data kan je selecteren en dan krijg je een as met 2 categorieen.
quote:Op donderdag 25 augustus 2011 18:19 schreef DaFan het volgende:
Moet je er niet gewoon ff .Value achterzetten (achter Offset())
Top, ik ga het morgen allebei even proberen!quote:Op donderdag 25 augustus 2011 18:22 schreef DaFan het volgende:
Deze werkt gewoon prima bij mij
[ code verwijderd ]
Kopieer en leerquote:Op donderdag 25 augustus 2011 23:06 schreef Rejected het volgende:
Top, ik ga het morgen allebei even proberen!
Ben niet zo ervaren met VBA, dus het kan zijn dat mijn code erg inefficient is.
quote:Op donderdag 25 augustus 2011 18:22 schreef DaFan het volgende:
Deze werkt gewoon prima bij mij
[ code verwijderd ]
Het lukt allebei niet.quote:Op donderdag 25 augustus 2011 18:19 schreef DaFan het volgende:
Moet je er niet gewoon ff .Value achterzetten (achter Offset())
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Sub momentum() countw = 0 k = 3 For g = 0 To 500 Step 1 'aantal rijen countw = 0 Dim winc As Double decilew = Range("AA5").Offset(g).Value For i = 0 To 24 Step 1 'aantal kolommen If Range("B5").Offset(g, i).Value > decilew Then 'hoger? count w = countw + 1 win = (Range("Prijzen!B5").Offset(k + g, i).Value / Range("Prijzen!B5").Offset(g, i).Value) - 1 Range("AC2").Offset(countwinner - 1).Value = win EndIf Next i Next g |
1 2 3 | a = Range("Prijzen!B5").Offset(omlaag, i).Value b = Range("Prijzen!B5").Offset(g, i).Value winner = (a / b) - 1 |
1 | winner = a + b |
Wat zijn die "Step 1" verwijzingen op regel 5 en 10?quote:Op vrijdag 26 augustus 2011 16:03 schreef Rejected het volgende:
[..]
[..]
Het lukt allebei niet.
[ code verwijderd ]
In B5 t/m Y5 heb ik dus waarden zitten die ik wil vergelijken met cel AA5.
Als groter, dan berekening. Gaat allemaal goed totdat AA5 een negatief getal is, krijg dan een Overflow error.
Bij debug wordt regel 15 geel gemarkeerd, dan zit de fout denk ik hierin.
Wanneer ik die regel uitsplits:
[ code verwijderd ]
Krijg ik de foutmelding in regel 3. Ik kan a blijkbaar niet delen door b, terwijl dit wiskundig wel mogelijk is (b is nooit nul).
Wanneer ik deze waarden bijv optel, dan krijg ik de foutmelding niet.
[ code verwijderd ]
Met Step kan je aangeven hoe groot de stapgrootte van je For loop moet zijn (bv 0,1). Hier is het overbodig.quote:Op vrijdag 26 augustus 2011 22:22 schreef qu63 het volgende:
[..]
Wat zijn die "Step 1" verwijzingen op regel 5 en 10?
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | Sub Momentum2() Dim countwinner As Integer Dim countloser As Integer Dim decw As Double Dim decl As Double k = 3 For g = 0 To 30 Step 1 decw = Range("AA5").Offset(g).Value decl = Range("AB5").Offset(g).Value countloser = 0 countwinner = 0 Dim omlaag As Integer omlaag = k + g For i = 0 To 24 Step 1 'winner of loser? If Range("B5").Offset(g, i).Value > decw Then 'winner? countwinner = countwinner + 1 Dim qwn As Long Dim qwo As Long qwn = Range("Prijzen!B5").Offset(omlaag, i).Value qwo = Range("Prijzen!B5").Offset(g, i).Value winner = (qwn / qwo) - 1 Range("AC2").Offset(countwinner - 1).Value = winner ElseIf Range("B5").Offset(g, i).Value < decl Then 'loser? countloser = countloser + 1 loser = -((Range("Prijzen!B5").Offset(omlaag, i).Value / Range("Prijzen!B5").Offset(g, i).Value) - 1) Range("AD2").Offset(countloser - 1).Value = loser End If Next i Range("AE1") = countwinner + 1 Range("AJ1").Formula = "=SUM(INDIRECT(""AC2:AC""&AE1))" sumwin = Range("AJ1").Value If countwinner = 0 Then Range("AE5").Offset(g) = 0 Else: Range("AE5").Offset(g) = sumwin / countwinner End If Range("AF1") = countloser + 1 Range("AK1").Formula = "=SUM(INDIRECT(""AD2:AD""&AF1))" sumlose = Range("AK1").Value If countloser = 0 Then Range("AF5").Offset(g) = 0 Else: Range("AF5").Offset(g) = sumlose / countloser End If If countwinner + countloser = 0 Then retmom = (sumlose + sumwin) / 1 Else: retmom = (sumlose + sumwin) / (countwinner + countloser) End If Range("AG5").Offset(g) = retmom Next g End Sub |
Thanks! Ik zat met de count te rommelen, was me niet bewust dat die commando's in de nederlandse Excell anders warenquote:
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |