Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
932to936
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
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

XY Koordinaten in Spalten und Zeilennr. umwandeln

XY Koordinaten in Spalten und Zeilennr. umwandeln
08.12.2007 23:40:00
Thomas
Hallo Experten
Ich habe das Problem XY-Koordinaten in
Spalten und Zeilennummern umzuwandeln.
Zur Verdeutlichung folg. Beispiel
_X____Y
33____12
33____14
44____23
44____23
55____23
55____23
55____29
Das Ergebniss sollte so aussehen:
Spalte Zeile
1____ 1
1____ 2
2____ 3
2____ 3
3____ 3
3____ 3
3____ 4
Die Tabelle kann bis zu 10000 XY-Paarungen
enthalten. Ich schaffe zwar zu ermitteln wieviele verschiedene Werte in einer Spalte
sind, nicht aber jeder Zahl den "Rang" zuzuordnen.
Kann jemand helfen?
Danke im Voraus!
MfG T.D.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: XY Koordinaten in Spalten und Zeilennr. umwand
09.12.2007 07:00:00
fcs
Hallo Thomas,
wenn die Funktion RANG (diese wertet Zahlen wie Sportergebnisse aus, dass heißt bei gleichen Zahlen werden nachfolgende Ränge nicht vergeben) nicht ausreicht, dann muss man folgende Schritte machen, um zum Ergebnis zukommen. Mir ist jedenfalls keine direkte Formellösung bekannt.
1. in einer Hilfsspalte (E) die Reihenfolge der aktuellen Sortierung merken, falls erforderlich
(Zahlenfolge 1, 2, 3 usw. in die Zeilen eintragen per Zellen-Zehfunktion)
2. Alle Zeilen nach den X-Werten (Spalte A) sortieren
3. In Zeile 1 den Rang 1 in einer Spalte (C) eintragen
4. Dannach in Zeile 2 der Spalte folgende Formel eingeben und für alle Zeilen nach unten kopieren
=WENN(A2=A1;C1;C1+1)


5. in der Spalte die Formeln durch die Werte ersetzen (Spalte markieren, kopieren, Inhalte einfügen...(Werte)
6. Alle Zeilen nach den Y-Werten (Spalte B) sortieren
7. In Zeile 1 den Rang 1 in einer Spalte (D) eintragen
8. Dannach in Zeile 2 in der Spalte folgende Formel eingeben und für alle Zeilen nach unten kopieren

=WENN(B2=B1;D1;D1+1)


9. in der Spalte die Formeln durch die Werte ersetzen (Spalte markieren, kopieren, Inhalte einfügen...(Werte)
10. Falls erforderlich allte Sortierung wieder herstellen, alle Zeilen nach der Hilfsspalte (E) sortieren
11. Hilfsspalte wieder löschen.
Das nachfolgende Makro erledigt diese Schrittfolge, jedoch ohne den Weg über die Formeln, da das Ergebnis im Makro ermittelt und direkt der Rang eingetragen wird.
Gruß
Franz

Sub aaTest() Dim wks As Worksheet, Zeile As Long, letzte As Long, Rang As Long, Zeile1 As Long Zeile1 = 2 '1. Zeile, die in die Rangefolge einfließt, ggf anpassen!! Set wks = ActiveSheet Application.ScreenUpdating = False With wks letzte = .Cells(.Rows.Count, 1).End(xlUp).Row Application.StatusBar = "Ich bin mit dem Erstellen der Rangfolgen beschäfftigt" 'hilfsweise alte Reihenfolge in Spalte 5 eintragen For Zeile = Zeile1 To letzte .Cells(Zeile, 5).Value = Zeile Next 'sortieren nach X-Werten und Spalten berechnen .Range(.Cells(Zeile1, 1), .Cells(letzte, 5)).Sort _ key1:=.Cells(Zeile1, 1), Order1:=xlAscending, Header:=xlNo Rang = 1 .Cells(Zeile1, 3).Value = Rang For Zeile = Zeile1 + 1 To letzte If .Cells(Zeile, 1).Value = .Cells(Zeile - 1, 1).Value Then .Cells(Zeile, 3).Value = Rang Else Rang = Rang + 1 .Cells(Zeile, 3).Value = Rang End If Next 'sortieren nach Y-Werten und Zeile berechnen .Range(.Cells(Zeile1, 1), .Cells(letzte, 5)).Sort _ key1:=.Cells(Zeile1, 2), Order1:=xlAscending, Header:=xlNo Rang = 1 .Cells(Zeile1, 4).Value = Rang For Zeile = Zeile1 + 1 To letzte If .Cells(Zeile, 2).Value = .Cells(Zeile - 1, 2).Value Then .Cells(Zeile, 4).Value = Rang Else Rang = Rang + 1 .Cells(Zeile, 4).Value = Rang End If Next Application.StatusBar = False 'sortieren nach ursprünglicher Reihenfolge .Range(.Cells(Zeile1, 1), .Cells(letzte, 5)).Sort _ key1:=.Cells(Zeile1, 5), Order1:=xlAscending, Header:=xlNo 'Hilfsspalte wieder löschen .Columns(5).Delete Application.ScreenUpdating = True 'maximaler Spaltenwert If Application.WorksheetFunction.Max(.Columns(3)) > .Columns.Count Then MsgBox "Die eforderliche Spaltenanzahl " & _ Application.WorksheetFunction.Max(.Columns(3)) & _ " ist größer als die max. mögliche Anzahl Spalten in einer Tabelle!" End If End With End Sub


Anzeige
AW: XY Koordinaten in Spalten und Zeilennr. umwandeln
09.12.2007 10:43:48
ingUR
Hallo, Thomas,
wie Franz bereits bei der Vorstellung seiner Lösung erwähnt, gibt es wohl keine einzige Formel für die Lösung.
Will man kein VBA benutzen, so kann der Lösungsansatz, neben der Lösung von Franz, in dieser Abhandlungung gefunden werden:
http://www.excelformeln.de/formeln.html?welcher=345
Als Grundelemt dient auch hier die Liste in der dortigen Spalte D, die die sortierte Reihenfolge der Werte in der Spalte A ohne Wiederholungen liefert. Damit ist die Rangordnung der Zahlenwerte durch die Zeilennummer vorgegeben, so dass nun nur noch ein VERGLEICH der betrachteten Zahl in Spalte mit der Liste in der Spalte D erforderlich ist, um aufgrund der Zeilennummer, für den der Vergleich erfolgreich ist, die Rang=Koordinatenzahl zu finden.
Die Spalten werden für Deinen Fall ein wenig anders belegt, da Du es mit zwei Spalten zu tun hast, die jeweis ein Zahlenpaar liefern, welches transtormiert werden soll.
 
 ABCDEFGHIJ
13312 32331112 11
23314 56443014 12
Formeln der Tabelle
D1 : =MIN(A:A)-1
E1 : {=MIN(WENN(A1:A100<>"";WENN(A1:A100>=D1;WENN(A1:A100<=D2;A1:A100))))}
F1 : =MIN(B:B)-1
G1 : {=MIN(WENN(B1:B100<>"";WENN(B1:B100>=F1;WENN(B1:B100<=F2;B1:B100))))}
I1 : =VERGLEICH(A1;E:E;0)
J1 : =VERGLEICH(B1;G:G;0)
D2 : =MAX(A:A)+1
E2 : {=WENN(ODER(E1="";E1=MAX(A:A);MIN(WENN((A$1:A$100>E1);A$1:A$100))>D$2);"";MIN(WENN(A$1:A$100<>"";WENN(A$1:A$100>E1;A$1:A$100))))}
F2 : =MAX(B:B)+1
G2 : {=WENN(ODER(G1="";G1=MAX(B:B);MIN(WENN((B$1:B$100>G1);B$1:B$100))>F$2);"";MIN(WENN(B$1:B$100<>"";WENN(B$1:B$100>G1;B$1:B$100))))}
I2 : =VERGLEICH(A2;E:E;0)
J2 : =VERGLEICH(B2;G:G;0)
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Zellenformeln E2 und G2, (Spalten mit den ohne Duplikat sortierten Werten der Werte der Saplten A und B) werden durch Ziehen auf die darunterliegenden Zellen solange kopiert, bis alle werde erfaßt sind.
Spalte C bis H können ausgeblendet werden, sobald die Belegung erfolgt ist.
 
 ABIJ
1331211
2331412
3442323
4442323
5552333
6552333
7552934
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Auf die Notwendigkeit der Matrix-Formelklammerung { } mit der besonderen Tastenkombinationen zum abschliessen der Formel wird nochmal hingewiesen.
Gruß,
Uwe

Anzeige
AW: XY Koordinaten in Spalten und Zeilennr. umwandeln
09.12.2007 23:36:09
Thomas
Vielen Dank für Eure Antworten!
Ich bin gerade dabei rumzuprobieren und weiterzustricken!
Ihr habt mir sehr weitergeholfen!
Evtl. werde ich Euch nochmals mit Nachfragen konfrontieren!
MfG
Thomas

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige