Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
800to804
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
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Orte Clustern ... "knifflig"

Orte Clustern ... "knifflig"
08.09.2006 18:14:38
Stöv
Hallo miteinander
Ich hab ein kniffliges Problem zu lösen, dass ich nicht auf die Reihe kriege
Wäre super toll wenn jemand helfen könnte
Das Problem ist in der Excel-Tabelle beschrieben -- Im 2. Tabellenblatt ist eine kleinere Variante des Problems -- was mich auch weiterbringen würde

Die Datei https://www.herber.de/bbs/user/36517.xls wurde aus Datenschutzgründen gelöscht

Ob VBA, oder Excel-Matrix-Formeln ist eigentlich egal...
Ich habe es mit VBA und einer 3 Dimensionalen Matrix probiert -- hab es aber nicht richtig hingekriegt... :-(((
Vielen Dank im Voraus
Tolles Forum
Gruss
Stöv

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Orte Clustern ... "knifflig"
08.09.2006 23:53:35
Herby
Hallo Stöv,
ich hab deine Datei um ein kleines Makro ergänzt, das deine Nachbarn zählt.
Allerdings habe ich die die Gruppen, in denen "a" nicht vertreten ist mitgezählt.
Diese sind ggf. vorher zu eliminieren (ggf. auch per Makro).
https://www.herber.de/bbs/user/36524.xls
Viele Grüße
Herby
Eine kleine Rückmeldung wäre nett.
AW: Orte Clustern ... "knifflig"
09.09.2006 08:07:19
Stöv
Hallo Herby
Vielen Dank für die tolle Hilfestellung...genial!!!
klappt gut ... damit ich das ganze aber automatisieren kann, d.h. alle Nachbarn pro Ort aufgelistet... sollte ich noch (wie du bereits erwähnt hast) noch diese Orte löschen, die gar kein Nachbarn sind...
Ich habe es mit der Formel "Sumproduct" versucht, aber irgenwie klappt das mit den Zeilenvariablen (wie z.B. (A2:A15= A " & i & ")*(....) nicht
Ich kriege Fehler 2015...und habe nichts mit einer Zeilenvariable in der Summenprodukt formel im "Netz" gefunden.
Wäre toll, wenn du mir noch nen Tipp geben könntest ... habe schon ziemlich alles Probiert
Beste Grüsse
Stöv
Anzeige
Nachfrage
09.09.2006 11:21:17
Reinhard
Hi Stöv,
sind a,j,e usw die wahren Werte, also bleibt das so oder sind sie nur Platzhalter für Hamburg,Berlin,Birrfeld ?
Gruß
Reinhard
AW: Nachfrage
09.09.2006 15:11:00
Stöv
Hallo Reinhard
Vielen Danke für deine Zeit
Nein du hast natürlich recht, in der Wirklichen Tabelle sind das Orte
und die Nummern sind 3-stellig
dieses Problem treibt mich noch in den Wahnsinn...
Ich habe es mit arrays versucht... 1. hat es nicht geklappt und 2. ist die Tabelle glaube ich auch zu gross für ein Matrix-Array...
Danke und Gruss
Stöv
AW: Nachfrage
09.09.2006 16:14:33
Reinhard
Hi Stöv,
also maximal 1000 Nummern, wieviele Orte, 65000 oder mehr?
Gruß
Reinhard
Anzeige
AW: Nachfrage
09.09.2006 16:43:29
Stöv
Ja ca. 900 verschiedene Nummern
und ca. 15000 Orte, davon sind ca. 3000 verschiedene...
ich könnte das ganze aber in zwei Hauptkategorien einteilen, so würde sich das ganze verkleinern falls nötig....
Gruss und Danke
Stöv
AW: Nachfrage
09.09.2006 17:42:54
Reinhard
Hi Stöv,
die 11 bei a haben mich irritiert bis ich rausfand dass meine 10 richtig sind:-)
Lege eine zusätzliches Blatt an, hier Tabelle1
die Datei: https://www.herber.de/bbs/user/36534.xls
hat folgenden Code:
Option Explicit
Sub tt()
Dim nr, anz As Long, zei As Long, start As Long, ort As Long, gef, n As Long
Dim Nachb()
Worksheets("vollständiges Problem").Activate
Columns(7).Clear
For ort = 2 To Range("D65536").End(xlUp).Row
anz = 0
For zei = 3 To Range("A65536").End(xlUp).Row
If nr <> Cells(zei, 1) Then nr = Cells(zei, 1)
start = zei
'MsgBox start
While nr = Cells(zei, 1)
zei = zei + 1
Wend
'MsgBox start - 1 & "-" & zei - 1
Set gef = Range(Cells(start - 1, 2), Cells(zei - 1, 2)).Find(Cells(ort, 4))
If Not gef Is Nothing Then
For n = start - 1 To zei - 1
If Cells(n, 2) <> Cells(ort, 4) Then
anz = anz + 1
ReDim Preserve Nachb(anz)
Nachb(anz) = Cells(n, 2)
End If
Next n
End If
Next zei
With Worksheets("Tabelle1")
.Columns(ort - 1).Clear
For n = 1 To anz
.Cells(n, ort - 1) = Nachb(n)
Next n
For n = anz To 1 Step -1
If Application.WorksheetFunction.CountIf(.Range(.Cells(1, ort - 1), .Cells(anz, ort - 1)), .Cells(n, ort - 1)) > 1 Then
.Cells(n, ort - 1).Clear
End If
Next n
Cells(ort, 5) = Application.WorksheetFunction.CountA(.Range(.Cells(1, ort - 1), .Cells(anz, ort - 1)))
End With
Next ort
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Nachfrage
09.09.2006 17:48:31
Stöv
Tausend Dank Reinhard
Sobald ich zu Hause bin werde ich gleich alles austesten... bin schon ganz gespannt darauf...
ich werde dir dann nochmals ein Feedback geben
Oh ja sorry, du hast recht, ich habe schon bei dieser kleinen Tabelle falsch gezählt -- zum Glück gibt es Computer ...!
Beste Grüsse
Stöv
Eine kleine Anpassung
09.09.2006 22:11:53
Stöv
Hallo Reinhard
Super nach einer kleinen Anpassung (siehe unten) konnte ich das super Makro!!! auf meine riesen Tabelle anwenden und ich bin sehr überrascht, dass nach bereits 10 Minuten alles gerechnet ist...
Da die Variable "n" und auch die Variable "Ort" die Begrenzung von 257 Spalten in Excel überschreiten (umschreiben von Spalten in Zellen hilft also nicht) habe ich noch "Select Case" verwendet und noch weitere Tabellen eingefügt...
Select Case ort
Case 0 To 200
With Worksheets("Tabelle1")
....
End with
Case 200 To 400
With Worksheets("Tabelle2")
.Columns(ort - 199).Clear
For n = 1 To anz
.Cells(n, ort - 199) = Nachb(n)
Next n
For n = anz To 1 Step -1
If Application.WorksheetFunction.CountIf(.Range(.Cells(1, ort - 199), .Cells(anz, ort - 199)), .Cells(n, ort - 199)) &gt 1 Then
.Cells(n, ort - 199).Clear
End If
Next n
Cells(ort, 5) = Application.WorksheetFunction.CountA(.Range(.Cells(1, ort - 199), .Cells(anz, ort - 199)))
End With
usw..........................
....
...
Danke nochmals
Du hast mich gerettet
Gruss Stöv
Anzeige
AW: Eine kleine Anpassung
10.09.2006 17:41:32
Reinhard
Hi Stöv,
ich habe keine Erfahrung mit großen Dateien und ob 10 Minuten in Ordnung sind. Poste doch mal deinen kompletten Code, vielleicht kann man da noch was beschleunigen.
Gruß
Reinhard

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige