Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Unregelmäßige Zahlenfolge sortieren

Unregelmäßige Zahlenfolge sortieren
18.10.2005 11:02:10
micwil
Ich habe mehrere Tausend Ganzzahlen, nicht aufeinanderfolgend, nach Größe geordnet (z. B. 4, 6, 8, 9, 10, ...), und soll die dazwischenliegenden Zahlen ermitteln (also 1, 2, 3, 5, 7).
Was ist der günstigste Weg dafür, wer hat so was schon mal gemacht?
Danke im Voraus für gute Tipps.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachfrage
18.10.2005 11:10:57
MichaV
Hallo,
sind das immer positive ganze Zahlen?
Und stehen die untereinander in einer Spalte?
Gruss- Micha
PS: Rückmeldung wäre nett.
AW: Nachfrage
18.10.2005 11:18:20
micwil
Ja, nur positive ganze Zahlen, untereinander in einer Spalte, aber ohne Leerzeilen dazwischen.
Gruß,
auch Micha
AW: Nachfrage
18.10.2005 11:30:50
MichaV
Hallo,
dann z.B. so. Formel in B1 eingeben und so lange runterziehen wie notwendig.
AW: Nachfrage
18.10.2005 12:20:48
micwil
Wahnsinnsformel! Hast Du die etwa in der kurzen Zeit gebaut? Und lt. erstem Test funktioniert sie einwandfrei! Recht vielen Dank.
M. W.
Danke für die Rückmeldung. mT
18.10.2005 13:34:54
MichaV
Hallo Micha,
Danke, ja. Mit ein bischen Ruhe und Erfahrung kann man die Formel ganz sicher noch verkürzen.
Hier die Endlösung: Reihenfolge der Zahlen egal, auch negative Zahlen.
Bedingung: nur ganze Zahlen, keine doppelten Zahlen.
Ergebnis: Es werden alle Zahlen (incl. Null) aufgelistet, die in der Ausgangsspalte zwischen der kleinsten und größten Zahl fehlen.
Anzeige
AW: Danke für die Rückmeldung. mT
18.10.2005 19:35:16
micwil
Schön wär's gewesen!
Leider arbeitet die Superformel unter harten Praxisbedingungen nicht, jedenfalls nicht auf meinem System. Nach Anwendung auf 1.000 Zeilen hat Excel bei mir (bis zum Abbruch) 2 Stunden lag "Zellen berechnet" mit Statusangaben, die zwischen 6% und 91% schwankten, immer bei 100% CPU-Auslastung.
Wie gesagt, bei 1.000 Zeilen. Ich hätte aber insgesamt einige Hunderttausend zu bearbeiten (war sowieso schon auf scheibenweises Arbeiten bis zum Tabellenende vorbereitet).
Das gebe ich jetzt auf, nicht ohne mich nochmals für Deine Unterstützung zu bedanken.
Gruß,
Michael
System:
Betriebssystemname: Microsoft Windows 2000 Professional
Version: 5.0.2195 Service Pack 4 Build 2195
Prozessor: x86 Family 15 Model 2 Stepping 4 GenuineIntel ~2199 MHz
Gesamter realer Speicher: 785.136 KB
Verfügbarer realer Speicher: 540.976 KB
Gesamter virtueller Speicher: 4.597.296 KB
Verfügbarer virtueller Speicher:4.134.460 KB
Größe der Auslagerungsdatei: 3.812.160 KB
Anzeige
Dann mit VBA
18.10.2005 19:47:26
MichaV
Hallo,
na und? Dann machen wir es mit einem kleinen Makro, dann kannst Du gleich alle 100.000 Zeilen erschlagen.
Da die aber sicher nicht auf einem Blatt stehen müsstest Du mir sagen, wie die angeordnet sind und wo das Ergebnis hin soll. Falls die Daten in einer Datei stecken ist es noch besser.
Also das kriegen wir auf jedne Fall gelöst, wenn Du noch Interesse hast.
Gruß- Micha
AW: Dann mit VBA
18.10.2005 21:02:32
micwil
Selbstredend habe ich noch Interesse, habe es sogar selber schon mit VBA probiert, bin aber an der begrenzten Seitenlänge und ebenfalls an astronomischen Rechenzeiten gescheitert.
Die vorgegebenen Zahlen habe ich in einer *.TXT stehen; die Ergebnisse sollten in *.XLS sein (dort Anordnung beliebig).
Prima, wenn Du noch mal eingreifen könntest.
Gruß,
M.
Anzeige
AW: Dann mit VBA
18.10.2005 22:37:11
MichaV
Hallo,
also erstmal möchte ich mich entschuldigen. Das der Rechner bei so vielen Zahlen in die Knie geht, hätte ich Dir sagen können. Habe das in Deiner Eröffnungsfrage völlig überlesen. Naja, ist ja trotzdem eine hübsche Formel geworden.
Hier der VBA- Code. Ich denke, das sollte es dann sein. Für Dich ist das obere Makro wichtig, das andere ist nur zum schnellen Erzeugen einer lückenhaften Zahlenreihe.


      
Option Explicit
Sub Einlesen()
Dim x#, xx#, y%, i#, k#, s
'Ausgabe starten in Zelle x,y
x = 3
y = 3
k = 1
xx = x
s = Application.GetOpenFilename(, , "Datei wählen")
If VarType(s) = vbBoolean Then Exit Sub 'Abbrechen gedrückt
On Error GoTo Hell
Application.ScreenUpdating = 
False
Open s For Input As #1
  
While Not EOF(1)
    Line 
Input #1, s
    
For i = k To s - 1
      Cells(xx, y) = i
      xx = xx + 1
      
If xx = 65537 Then xx = x: y = y + 1
    
Next i
    k = s + 1
  
Wend
Close
Hell:
Application.ScreenUpdating = 
True
If Err.Number <> 0 Then MsgBox Err.Number & " " & Err.Description, vbCritical
End Sub
Sub Erzeugen()
'nur zum testen- erzeugt eine Zahlenreihe von bis zu
'1.000.000 Zahlen, bei der jede Zahl mit einer Wahrscheinlichkeit von
'1/10 fehlt.

Dim i#
Randomize
Open Application.GetOpenFilename(, , "Datei wählen") For Output As #1
For i = 1 To 1000000
  
If Int(Rnd * 10) + 1 <> 5 Then Print #1, CStr(i)
Next
Close
End Sub 

     Code eingefügt mit Syntaxhighlighter 3.0

Wenn Du noch Fragen oder Wünsche hast, dann her damit.
Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Dann mit VBA
19.10.2005 01:35:48
micwil
Ich bin begeistert!
Mit diesem Makro habe ich soeben zwischen 164.000 gegebenen Zahlen 836.000 "fehlende" herausgefunden, und das in 44 Sekunden. Wenn das keine Spitzenleistung ist!
Ich hätte dich schon vorgestern fragen sollen; ganz herzlichen Dank für Deine Hilfe.
Gruß,
Michael
Bitte, gerne. Danke für die Rückmeldung! owT
19.10.2005 12:15:55
MichaV

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige