Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Koordinaten aus Tabelle auslesen

Koordinaten aus Tabelle auslesen
14.10.2014 09:55:03
Ben
Hallo,
ich habe folgendes Problem: Ich habe mir mit Exceltabellen XY-Koordinatensysteme erstellt in denen ich verschiedene Punkte mit 1, 2, 3, 4, u.s.w markiert habe. Nun möchte ich möglichst einfach für alle mit einer Zahl markierten Zellen die XY-Koordinaten auslesen und in eine neue Tabelle schreiben.
Eine Koordinaten-Tabelle sieht beispielsweise so aus ("_" = leere Zelle):
9 _ 1 _ _ _ _ _ _ _
8 _ _ _ 2 3 _ _ _ _
7 _ _ _ _ _ _ _ _ _
6 _ _ _ _ _ _ _ _ _
5 _ 4 _ _ _ _ _ _ _
4 _ _ 5 _ _ 6 _ _ _
3 _ _ _ _ _ _ _ _ _
2 _ _ _ _ 7 _ _ _ _
1 _ _ _ _ _ _ _ _ _
_ 1 2 3 4 5 6 7 8 9
nun möchte ich gerne eine Tabelle in der folgenden Form:
P X Y
1 2 9
2 4 8
3 5 8
4 2 5
5 3 4
6 7 4
7 5 2
Ich hoffe, dass es dafür eine automatisierte Lösung gibt und ich nicht für alle meine Koordinaten-Tabellen die Punkte per Hand rausschreiben muss.
Danke für jegliche Hilfe.
Gruß,
Ben

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Koordinaten aus Tabelle auslesen
14.10.2014 10:29:33
Oberschlumpf
Hi Ben
Hier, versuch mal (getestet): Sub sbCoord() Dim lloRow As Long, lloCol As Long, lloNext As Long lloNext = 2 For lloRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row For lloCol = 2 To Cells(10, Columns.Count).End(xlToLeft).Column If Cells(lloRow, lloCol).Value "" Then Range("M" & lloNext).Value = Cells(lloRow, lloCol).Value Range("N" & lloNext).Value = Cells(10, lloCol).Value Range("O" & lloNext).Value = Cells(lloRow, 1).Value lloNext = lloNext + 1 End If Next Next End Sub
Voraussetzung:
die obige Koordinatentabelle, die du leider NICHT als Excel-Datei zeigst, beginnt in Zelle A1 und endet in Zelle J10...also Position 9 steht in A1 und Spaltenwert 9 steht in J10.
Deine P X Y Tabelle erscheint dann in der gleichen Tabelle, in den Spalten M,N und O, beginnend in Zeile 2. In Zeile 1 (M,N,O) musst du noch P X Y eintragen.
Hilfts?
Ciao
Thorsten

Anzeige
AW: Koordinaten aus Tabelle auslesen
14.10.2014 13:56:00
Ben
Hallo Thorsten,
vielen Dank, klappt super mit der Beispieltabelle. Wenn man jedoch die X-Koordinate auf z.B. 20 verlängert und zufällig Punkte in dem Raum verteilt (siehe Exceldatei) gibt es ein paar Fehler in der Ausgabetabelle (z.B. drei XY-Werte für Punkt 13 oder einen Wert für den eigentlich nicht vorhandenen Punkt 20).
https://www.herber.de/bbs/user/93159.xlsm
Woran liegt das? bzw. Was muss ich verändern um den Code an Koordinaten-Systeme beliebiger Größe anzupassen?

Anzeige
hier wäre auch eine Formellösung möglich, ...
14.10.2014 13:21:51
neopa
Hallo Ben,
... die noch dazu ziemlich flexibel ist und auch wenig Voraussetzung bedarf. Eine davon ist, dass das die Formel auf einem anderem Tabellenblatt erstellt werden sollte.
Nachfolgende Formel kann in eine beliebige Zelle eingesetzt werden und muss dann nach unten und rechts entsprechend weit kopiert werden.
Tab2

 DEFGHIJKLMN
2           
3  1        
4    23     
5           
6           
7  4        
8   5   6   
9           
10     7     
11         33 
12           

Formeln der Tabelle
ZelleFormel
E3=WENNFEHLER(VERWEIS(9;1/('Tab1'!$C$2:$C$99=MAX('Tab1'!$C:$C)+1-ZEILE('Tab1'!A1))/('Tab1'!$B$2:$B$99=SPALTE('Tab1'!A1)); 'Tab1'!$A$2:$A$99); "")


Tab1

 ABC
1Pktxy
2129
3248
4358
5425
6534
7674
8752
93391
10   


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...

Anzeige
AW: hier wäre auch eine Formellösung möglich, ...
14.10.2014 14:12:49
Ben
Hallo Werner,
vielen Dank für deinen Lösungsvorschlag. Ich brauche es leider jedoch genau andersherum ... also in deinem Beispiel von Tab2 zu Tab1 und nicht umgekehrt.
Gruß,
Ben

und warum ersetzt Du dann nicht einfach ...
14.10.2014 14:18:00
neopa
Hallo ben,
... in der Formel Tab1 durch Tab2 oder wie immer Dein Tabellenblatt auch heißt?
Gruß Werner
.. , - ...

Anzeige
AW: und warum ersetzt Du dann nicht einfach ...
14.10.2014 14:36:41
Ben
Hallo Werner,
mit andersherum meine ich von der 2D-Koordinaten-Tabelle (mit den einzelnen Punkten im 2D-Raum ... bei dir Tab2) zu der XY-Tabelle (mit den drei Spalten "Pkt", "X", "Y" ... bei dir Tab1).
Gruß,
Ben

aber das meinte ich doch auch, bzw. ......
14.10.2014 14:47:30
neopa
Hallo Ben,
... hatte ich das bei meiner letzten Antwort so vorausgesetzt. Hast Du es denn mal nachgestellt?
Gruß Werner
.. , - ...

Anzeige
AW: aber das meinte ich doch auch, bzw. ......
14.10.2014 15:10:35
Ben
Hallo Werner,
leider ist mir nicht ganz klar, wie du das meinst. Deine Formel bezieht sich doch nur auf drei Spalten (A, B, C). Wie soll man damit die 2D-Koordinatentabelle mit 9 oder mehr Spalten erfassen?
Könntest du nochmal ein genau umgekehrtes Beispiel machen? Also Tab2 als Ausgangstabelle ...
Vielen Dank und viele Grüße,
Ben

Anzeige
nun gut, dann ...
14.10.2014 15:49:22
neopa
Hallo Ben,
... ich hab die Tabellenblattnamen getauscht und in paar zusätzliche Koordinatenwerte dazu gebracht:
Tab1

 DEFGHIJKLMNOPQRS
2                
3           44    
4   5            
5                
6  1             
7    23          
8              55 
9                
10  4             
11       6        
12                
13     7          
14         33      
15                
16                

Formeln der Tabelle
ZelleFormel
E3=WENNFEHLER(VERWEIS(9;1/('Tab2'!$C$2:$C$99=MAX('Tab2'!$C:$C)+1-ZEILE('Tab2'!A1))/('Tab2'!$B$2:$B$99=SPALTE('Tab2'!A1)); 'Tab2'!$A$2:$A$99); "")


Tab2

 ABC
1Pktxy
2129
3248
4358
5425
65311
7674
8752
93391
10441112
1155147
12   


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Wie geschrieben, der Ersteinsatz der Formel ist (fast) beliebig. Oder was meinst Du jetzt genau?
Gruß Werner
.. , - ...

Anzeige
AW: nun gut, dann ...
14.10.2014 16:50:17
Ben
Hallo Werner,
Danke für deine Mühe. Ich glaube jedoch wir reden aneinander vorbei oder ich kapiere einfach nicht wie du es meinst.
So wie du es beschreibst bzw. wie ich es verstanden habe, hast du Tab.2 gegeben
_ A B C
1 P X Y
2 1 2 9
3 2 4 8
4 3 5 8
dann machst du eine neue Tabelle auf gibst die Formel in E3 ein und ziehst sie dann nach rechts und nach unten, so das Tab.1 ensteht
9 _ 1 _ _ _ _ _ _ _
8 _ _ _ 2 3 _ _ _ _
7 _ _ _ _ _ _ _ _ _
6 _ _ _ _ _ _ _ _ _
5
4
3
2
1
_ 1 2 3 4 5 6 7 8 9
Bei mir ist es aber umgekehrt, ich habe Tab.1 (9x9Zellen) gegeben und möchte daraus die dreispaltige Tab.2 bekommen.
Weißt du wie ich es meine?
Gruß,
Ben

Anzeige
ach so meinst Du das, dannn ...
14.10.2014 18:00:17
neopa
Hallo Ben,
... hatte ich Dich wirklich mißverstanden, sorry.
In dem Fall dann z.B. so; Formeln nach unten kopieren:
Tab2a

 ABC
1Pktxy
2129
3248
4358
5425
6534
7664
8752
93387
10   

Formeln der Tabelle
ZelleFormel
A2{=WENN(ZEILE(A1)>ANZAHL(Tab1a!D$3:L$11); "";KKLEINSTE(Tab1a!D$3:L$11;ZEILE(A1)))}
B2{=WENN(A2="";"";MIN(WENN(Tab1a!D$3:L$11=A2;SPALTE(A1:I1))))}
C2{=WENN(A2="";"";MIN(WENN(Tab1a!D$3:L$11=A2;10-ZEILE(A$1:A$9))))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!


Tab1a

 CDEFGHIJKLM
2           
3  1        
4    23     
5        33  
6           
7  4        
8   5  6    
9           
10     7     
11           
12           


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...

Anzeige
AW: ach so meinst Du das, dannn ...
15.10.2014 09:32:45
Ben
Hallo Werner,
vielen Dank, so funktioniert es.
Grüße,
Ben
;
Anzeige
Anzeige

Infobox / Tutorial

Koordinaten aus Excel-Tabelle auslesen und darstellen


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Tabelle mit dem XY-Koordinatensystem. Achte darauf, dass die Koordinaten in einem definierten Bereich liegen (z.B. A1:J10).

  2. Öffne den VBA-Editor (drücke ALT + F11), um ein neues Makro zu erstellen.

  3. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf „VBAProject (deine Datei)“.
    • Wähle „Einfügen“ > „Modul“.
  4. Füge den folgenden VBA-Code ein:

    Sub sbCoord()
       Dim lloRow As Long, lloCol As Long, lloNext As Long
       lloNext = 2
       For lloRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
           For lloCol = 2 To Cells(10, Columns.Count).End(xlToLeft).Column
               If Cells(lloRow, lloCol).Value <> "" Then
                   Range("M" & lloNext).Value = Cells(lloRow, lloCol).Value
                   Range("N" & lloNext).Value = Cells(10, lloCol).Value
                   Range("O" & lloNext).Value = Cells(lloRow, 1).Value
                   lloNext = lloNext + 1
               End If
           Next
       Next
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu deiner Excel-Tabelle.

  6. Führe das Makro aus:

    • Drücke ALT + F8, wähle sbCoord und klicke auf „Ausführen“.
  7. Überprüfe die Ergebnisse in den Spalten M, N und O, die nun die gesammelten Koordinaten enthalten.


Häufige Fehler und Lösungen

  • Fehler: Keine Daten werden angezeigt.

    • Lösung: Stelle sicher, dass deine Koordinatentabelle in den Zellen A1:J10 korrekt angeordnet ist und dass die Werte in den Zellen nicht leer sind.
  • Fehler: Mehrere Werte für einen Punkt.

    • Lösung: Überprüfe, ob deine Koordinaten in der Tabelle eindeutig sind. Möglicherweise hast du doppelte Werte.
  • Fehler: Ausgabe erscheint nicht korrekt.

    • Lösung: Achte darauf, dass der Bereich für die Ausgabewerte korrekt angegeben ist, z.B. M2 für die erste Ausgabe.

Alternative Methoden

  • Formellösung: Du kannst auch eine Formel verwenden, um die Koordinaten in Excel darzustellen. Eine mögliche Formel könnte so aussehen:

    =WENNFEHLER(VERWEIS(9;1/('Tab1'!$C$2:$C$99=MAX('Tab1'!$C:$C)+1-ZEILE(A1))/('Tab1'!$B$2:$B$99=SPALTE(A1)); 'Tab1'!$A$2:$A$99); "")

    Diese Formel kannst du in einem neuen Tabellenblatt (z.B. Tab2) einfügen und nach unten und rechts ziehen.


Praktische Beispiele

  • Beispiel 1: Angenommen, deine Koordinatentabelle sieht so aus:

    9 _ 1 _ _ _ _ _ _ _
    8 _ _ _ 2 3 _ _ _ _
    7 _ _ _ _ _ _ _ _ _
    ...

    Nach Ausführung des Makros erhältst du die folgende Tabelle in den Spalten M, N und O:

    P X Y
    1 2 9
    2 4 8
    3 5 8
    ...
  • Beispiel 2: Wenn du mehr als 10 Zeilen oder Spalten hast, kannst du den Code anpassen, indem du die End(xlUp) und End(xlToLeft) Methoden entsprechend änderst, um sicherzustellen, dass alle Daten erfasst werden.


Tipps für Profis

  • Nutze Datenfilter: Um die Koordinaten effizienter zu analysieren, kannst du in Excel Datenfilter verwenden, um nur bestimmte Punkte anzuzeigen.

  • Verwende bedingte Formatierung: Hebe bestimmte Punkte hervor, z.B. die höchsten oder niedrigsten Koordinaten, um wichtige Daten schnell zu identifizieren.

  • Automatisiere den Prozess: Du kannst das Makro so anpassen, dass es beim Öffnen der Excel-Datei automatisch ausgeführt wird.


FAQ: Häufige Fragen

1. Wie finde ich Koordinaten in Excel heraus?
Du kannst die Koordinaten ablesen, indem du die Zellen mit den markierten Punkten in deinem Excel-Koordinatensystem untersuchst.

2. Kann ich die Koordinaten auch in anderen Formen darstellen?
Ja, du kannst die Koordinaten in Excel auch mithilfe von Diagrammen visualisieren, um ein besseres Verständnis der Daten zu erhalten.

3. Welche Excel-Version benötige ich für die VBA-Makros?
Die meisten VBA-Makros sind in Excel 2007 und späteren Versionen funktionsfähig. Achte darauf, dass die Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige