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

overloop excel 365

Status
Niet open voor verdere reacties.

sylvester-ponte

Verenigingslid
Lid geworden
19 apr 2007
Berichten
6.621
ik ben een beetje aan het spelen met priemgetallen, en daarbij doet OVERLOOP vreemd.
als ik alle priemgetallen tot 200000 zichtbaar wil maken krijg ik jammer genoeg OVERLOOP te zien (te veel priemgetallen).
als ik het zelfde doe met 1000000 krijg ik geen OVERLOOP te zien hij stopt zonder waarschuwing (slechts een gedeelte van de getallen wordt weergegeven).

is dat een bug ? of doe ik iets fout

is de OVERLOOP grootte in te stellen?
 

Bijlagen

Laatst bewerkt:
Hoi Sylvester,
Ik heb in A10 het getal p[nieuw ingevoerd en dan werkt het wel.
Probeer maar eens.
 
Bij 200000 zouden er, volgens de berekening in cel D10, 17985 priemgetallen zijn.
Bij 1000000 zouden er, volgens de berekening in cel D11, 999983 priemgetallen zijn.


Die kun je dus niet horizontaal weergeven omdat er maar 16384 kolommen zijn.

Probeer het eens verticaal weer te geven.
 
Laatst bewerkt:
Cor, ik heb het voorbeeld een beetje aangepast : de groene cel zou gelijk moeten zijn aan de rode.
in de groene cel staat het laatste piemgetal uit de serie en is dus de grootste.
in de rode staat het grootste weergegeven priemgetal uit de serie.
 

Bijlagen

=MAX(I12:XFD12)
ipv
=MAX(I12:WWW12)
 
In D1 staat toch duidelijk het aantal priemgetallen.
 
Willem , ik heb hem getransponeerd en krijg exact het zelfde probleem.

ps 999983 stond in de C kolom
 
Laatst bewerkt:
Alle priemgetallen tot/met 180390 geeft als resultaat 16376 dat is precies het aantal kolommen.
Alle priemgetallen tot/met 180391 geeft als resultaat 16377 dat is precies het aantal kolommen +1 en dan krijg je de ook net de melding 'overloop'

Is dit niet heel toevallig?
 
Voor de gein een Excel 365 formule die je ook een lijst geeft van alle priemgetallen t/m het getal in kolom A. (NB 1=geen priemgetal)
Code:
=LET(x;REEKS(A2);y;TRANSPONEREN(x+1);z;TRANSPONEREN(KLEINSTE(ALS(PRODUCTMAT(--(ALS(x>y;REST(x;(x>y)*y))=0);x+1)=0;x);x));q;FILTER(z;ISGETAL(z);"");FILTER(q;q>1;""))
Nadeel is dat deze niet hele grote getallen aankan... t/m 5000 gaat het wel goed bij mij. Daarna traag of te weinig systeembronnen.
 

Bijlagen

Laatst bewerkt:
Hallo Sylvester

Het gaat goed tot ruim 820000.
Dan komt het laatste getal te staan in rij 65000 (ruim)

En dat is net het de laatste rij uit de oudere versies van excel.

Ik kan er niet mee, maar het denk ik wel een verklaring waarom het niet goed gaat.
 
Alex, dat heb je gaaf gevonden. tot 5683 werkt het (wel een beetje traag) :thumb:

heb je een idee waarom in mijn laatste bestand de overloop zich niet meld maar gewoon getallen weg laat?
 
Laatst bewerkt:
Willem het gaat goed tot 821518, die 2^16 cellen zullen jammer genoeg wel de limiet zijn voor de "matrix formule"

ik ga later proberen of ik met een sub verder kom. ook bedankt voor het meedenken.
 
Laatst bewerkt:
Zoweel de werkbladfunktie Transpose als Index zijn door MS vergeten aan te passen op de nieuwe rijen.kolommen limieten van Excel.
Die zijn, naar hun aard, beperkt tot het oude maximum aantal kolommen.
 
tot 10.000.000 zijn er bijna 665.000 priemgetallen
Code:
Function PriemGetallenTot(Nr As Long, Optional GeefDePriemGetallen As Boolean)
     ReDim Opl(Nr)
     Select Case Nr
          Case Is <= 0
               PriemGetallenTot = " <=0 kan niet": Exit Function
          Case 1
               PriemGetallenTot = Array(1, 1): Exit Function
          Case 2
               PriemGetallenTot = Array(1, 1, 2): Exit Function
     End Select
     Opl(1) = 1: Opl(2) = 2
     Popl = 3
     For N = 3 To Nr Step 2                                     'doorloop mogelijke oneven getallen
          Wn = Int(N ^ 0.5)                                     'verder dan Wn hoef je niet te zoeken
          For P = 2 To Popl
               If Opl(P) > Wn Then Opl(Popl) = N: Popl = Popl + 1: Exit For     'priem gevonden opslaan en de loop verlaten
               If N Mod Opl(P) = 0 Then Exit For                'geen priem loop verlaten
          Next
     Next
     Opl(0) = (Popl - 1) / Nr                                   'verhouding priemgetallen op totaal
     ReDim Preserve Opl(Popl - 1)
     If GeefDePriemGetallen Then
[COLOR="#FF0000"]          Dim t_priem
         ReDim t_priem(1 To UBound(Opl) + 1, 1 To 1)
          For i = 1 To UBound(Opl)
               t_priem(i + 1, 1) = Opl(i)
          Next
          PriemGetallenTot = t_priem 'Application.Transpose(Opl)
[/COLOR]     Else
          PriemGetallenTot = Array((Popl - 1) / Nr, Opl(Popl - 1), Popl - 1)
     End If
End Function
 
bedankt.
Toch ben ik niet helemaal akkoord met de stelling van SNB, dat het goed gaat tot dik 65.000.
Misschien heeft het ook met de inhoud van de array (lengte per element) die je transponeert te maken, maar ik had het ook al voor bij 30-40.000.
 
@cow18

Ik zie niets over aantallen staan in mijn bijdrage.
En natuurlijk is in beide gevallen het max. aantal kolommen de flessehals.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan