Microsoft Excel

Herbers Excel/VBA-Archiv

Koordinaten aus Tabelle auslesen

Betrifft: Koordinaten aus Tabelle auslesen von: Ben
Geschrieben am: 14.10.2014 09:55:03

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

  

Betrifft: AW: Koordinaten aus Tabelle auslesen von: Oberschlumpf
Geschrieben am: 14.10.2014 10:29:33

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


  

Betrifft: AW: Koordinaten aus Tabelle auslesen von: Ben
Geschrieben am: 14.10.2014 13:56:00

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?


  

Betrifft: hier wäre auch eine Formellösung möglich, ... von: neopa C (paneo)
Geschrieben am: 14.10.2014 13:21:51

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
.. , - ...


  

Betrifft: AW: hier wäre auch eine Formellösung möglich, ... von: Ben
Geschrieben am: 14.10.2014 14:12:49

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


  

Betrifft: und warum ersetzt Du dann nicht einfach ... von: neopa C (paneo)
Geschrieben am: 14.10.2014 14:18:00

Hallo ben,

... in der Formel Tab1 durch Tab2 oder wie immer Dein Tabellenblatt auch heißt?

Gruß Werner
.. , - ...


  

Betrifft: AW: und warum ersetzt Du dann nicht einfach ... von: Ben
Geschrieben am: 14.10.2014 14:36:41

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


  

Betrifft: aber das meinte ich doch auch, bzw. ...... von: neopa C (paneo)
Geschrieben am: 14.10.2014 14:47:30

Hallo Ben,

... hatte ich das bei meiner letzten Antwort so vorausgesetzt. Hast Du es denn mal nachgestellt?

Gruß Werner
.. , - ...


  

Betrifft: AW: aber das meinte ich doch auch, bzw. ...... von: Ben
Geschrieben am: 14.10.2014 15:10:35

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


  

Betrifft: nun gut, dann ... von: neopa C (paneo)
Geschrieben am: 14.10.2014 15:49:22

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
.. , - ...


  

Betrifft: AW: nun gut, dann ... von: Ben
Geschrieben am: 14.10.2014 16:50:17

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


  

Betrifft: ach so meinst Du das, dannn ... von: neopa C (paneo)
Geschrieben am: 14.10.2014 18:00:17

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
.. , - ...


  

Betrifft: AW: ach so meinst Du das, dannn ... von: Ben
Geschrieben am: 15.10.2014 09:32:45

Hallo Werner,
vielen Dank, so funktioniert es.
Grüße,
Ben


 

Beiträge aus den Excel-Beispielen zum Thema "Koordinaten aus Tabelle auslesen"