Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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.

Anzeige

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

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

XY Koordinaten in Spalten und Zeilennr. umwandeln


Schritt-für-Schritt-Anleitung

Um XY-Koordinaten in Spalten und Zeilennummern umzuwandeln, kannst Du die folgende Schritt-für-Schritt-Anleitung verwenden:

  1. Hilfsspalte erstellen: Füge eine Hilfsspalte (z.B. Spalte E) hinzu, um die Reihenfolge der aktuellen Sortierung zu speichern. Trage in die Zellen der Hilfsspalte (E1, E2, ...) die Zeilennummern ein.

  2. Nach X-Werten sortieren: Sortiere die gesamte Tabelle nach den X-Werten in Spalte A.

  3. Rang für X-Werte festlegen:

    • Trage in Zelle C1 den Rang 1 ein.
    • In C2 kannst Du die folgende Formel eingeben und nach unten kopieren:
      =WENN(A2=A1;C1;C1+1)
  4. Formeln durch Werte ersetzen: Markiere die Spalte C, kopiere sie und füge die Werte in die gleiche Spalte ein.

  5. Nach Y-Werten sortieren: Sortiere jetzt die Tabelle nach den Y-Werten in Spalte B.

  6. Rang für Y-Werte festlegen:

    • Trage in D1 den Rang 1 ein.
    • In D2 kannst Du die folgende Formel eingeben und nach unten kopieren:
      =WENN(B2=B1;D1;D1+1)
  7. Formeln wieder durch Werte ersetzen: Wiederhole den Schritt, um die Werte in Spalte D zu speichern.

  8. Sortierung wiederherstellen: Sortiere die Tabelle zurück nach der ursprünglichen Reihenfolge in der Hilfsspalte (E).

  9. Hilfsspalte löschen: Lösche die Hilfsspalte, nachdem Du die Rangfolgen erstellt hast.


Häufige Fehler und Lösungen

  • Fehler: Rang wird nicht korrekt angezeigt

    • Lösung: Stelle sicher, dass Du die Formeln korrekt in die Zellen kopiert hast und dass die Spalten A und B korrekt sortiert sind.
  • Fehler: Zu viele oder zu wenige Spalten

    • Lösung: Überprüfe, ob die maximale Anzahl der Spalten nicht überschritten wird. Wenn Du mehr als 16.384 Spalten benötigst, kann Excel die Daten nicht darstellen.

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du die oben beschriebenen Schritte manuell in Excel durchführen. Alternativ gibt es auch Online-Tools, die XY-Koordinaten in Spalten und Zeilen umwandeln können, jedoch ist die Genauigkeit und Flexibilität in Excel oft höher.


Praktische Beispiele

Angenommen, Du hast folgende XY-Koordinaten:

X Y
33 12
33 14
44 23
55 23
55 29

Nach der Anwendung der oben genannten Schritte erhältst Du:

Spalte Zeile
1 1
1 2
2 3
3 3
3 4

Tipps für Profis

  • Verwende die Funktion RANG.GLEICH: Diese Funktion kann nützlich sein, um gleichwertige X- oder Y-Koordinaten zu behandeln, ohne dass der Rang durcheinandergeraten wird.

  • Nutze VBA zur Automatisierung: Wenn Du regelmäßig mit großen Datenmengen arbeitest, kann ein VBA-Makro die Umwandlung erheblich beschleunigen. Das Beispiel-Makro von Franz aus dem Forum bietet eine gute Grundlage.


FAQ: Häufige Fragen

1. Kann ich auch Pluscodes in Koordinaten umwandeln?
Ja, Pluscodes können in XY-Koordinaten umgewandelt werden, jedoch erfordert dies zusätzliche Schritte und möglicherweise externe Tools oder APIs.

2. Gibt es eine Formel, um XY-Koordinaten direkt umzurechnen?
In der Regel ist es notwendig, die Daten manuell zu sortieren und zu verarbeiten, da es keine direkte Excel-Formel für diese spezifische Umwandlung gibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige