Tracking-Analyse
#1
Hallo liebe Forenmitglieder,

ich habe etwas Probleme mein genaues Problem zu definieren, deshalb musste ich den Titel leider etwas allgemeiner halten. Also ich mache zur Zeit eine Tracking-Analyse und dabei kommt es vor, dass ich gelegentlich Lücken bei den aufgenommenen Messdaten habe. Diese würde ich gerne einfach bei den Rechnungen igonorieren. Bei den Berechnung der jeweiligen Vektoren und der Strecke klappt das auch prima mit einer normalen WENN-Funktion, jedoch komme ich nicht so ganz weiter, wenn ich die Differenz zweier aufeinanderfolgender Reihen bilde. Meine Vermutung ist, dass man dafür eine verschachtelte WENN-Funktion schreiben müsste: nur wie sage ich Excel, dass es die erste Zeile vor der Leerstelle von der ersten Zeile nach der Leerstelle subtrahieren soll, zumal die Leerstellen auch nicht immer gleich groß sind. Geht das überhaupt? Ich schreibe mal zur Verdeutlichung meine verwendeten Formeln auf und hänge einen Screenshot an
Code:
x: =WENN(Messdaten!B4="";"";(Messdaten!B4*$M$9)-($N$7*$M$9)) // Berechnung der x-Koordinate
y: =WENN(Messdaten!B4="";"";(Messdaten!C4*$M$9)-($N$8*$M$9)) // Berechnung der y-Koordinate
delta x: =WENN(B6="";"";ABS(B6-B5)) // Berechnung der Bewegung entlang der x-Koordinate (hier habe ich Probleme, siehe Screenshot)
delta y: =WENN(C6="";"";ABS(C6-C5)) // Berechnung der Bewegung entlang der (hier habe ich Probleme, siehe Screenshot)
t: =WENN(B6="";"";$M$6*A6) // Berechnung der Zeit pro Frame
s: =WENN(B6="";"";WURZEL((D6)^2 + (E6)^2)) // Berechnung des Abstands zwischen zwei Punkten = Strecke
v: =WENN(G6="";"";G6/(F6-F5)) // Berechnung der Geschwindigkeit pro Frame (hier habe ich ebenfalls Probleme)


Ich hoffe, dass ich das einigermaßen verständlich formuliert habe. Ich bedanke mich schon mal für die Hilfe!


Viele Grüße


Angehängte Dateien Thumbnail(s)
   
Top
#2
Hi,

Zitat:Ich schreibe mal zur Verdeutlichung meine verwendeten Formeln auf und hänge einen Screenshot anhttp://www.clever-excel-forum.de/Thread-WICHTIG-Arbeitsmappen-im-Forum-zur-Verfuegung-stellen

da hast du dir unnötig Arbeit gemacht. Stelle bitte deine Datei hier ein, denn die Helfer werden diese sicherlich nicht nachbauen wollen. So geht's:
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
Ich habe irgendwie keine Funktion zum Editieren gefunden, aber ich habe mal meine Arbeitsmappe angehangen


Angehängte Dateien
.xlsx   Beispiel_tracking.xlsx (Größe: 1,48 MB / Downloads: 13)
Top
#4
Hallo
 
Mit folgender Formel  bekommt man  den  letzten Wert von B5 bis B35
=VERWEIS(9^9;B$5:B35)
 
Für deine Tabelle sieht das dann so aus:

Berechnungen

ABCDEFGHIJ
1
2Berechnungen
3
4Framex [cm]y [cm]?x [cm]?y [cm]t [s]sxy [cm]sxy [mm]vxy [cm/s]vxy [mm/s]
51########00##0000
62##################################
Formeln der Tabelle
ZelleFormel
D6=WENN(B6="";"";ABS(B6-VERWEIS(9^9;B$5:B5)))
E6=WENN(C6="";"";ABS(C6-VERWEIS(9^9;C$5:C5)))
F6=WENN(B6="";"";$M$6*A6)
G6=WENN(B6="";"";WURZEL((D6)^2 + (E6)^2))
H6=WENN(B6="";"";G6*10)
I6=WENN(G6="";"";G6/(F6-VERWEIS(9^9;F$5:F5)))
J6=WENN(H6="";"";H6/(F6-VERWEIS(9^9;F$5:F5)))

Excel Tabellen im Web darstellen >> http://www.excel-jeanie-html.de" target="_blank"> Excel Jeanie HTML 4.8


 
Gruss Sepp
[-] Folgende(r) 1 Nutzer sagt Danke an Josef B für diesen Beitrag:
  • lpterritory
Top
#5
Super, vielen Dank für die schnelle Antwort! War wohl doch einfacher als gedacht, kannte den Befehl jedoch nicht, klappt aber soweit genau so wie es soll :)
Top
#6
Hallo nochmal,

ich wollte das Worksheet nochmals etwas für mich optimieren. Also das Auto-Track-Plugin, das ich benutze, verfolgt die Bewegung eines Teilchens und gibt die x- und y-Koordinaten aus. Zu diesem Zwecke werden unterschiedliche Flags gesetzt, also praktisch Abschnitte, an denen sich die Bewegung schlagartig verändert. Als Konsequenz erhalte ich mehrere Spalten mit x- und y-Koordinaten, die ich für die Auswertung jedoch nur in 2 Spalten (jeweils eine x- und eine y-Spalte) zusammenfassen muss. In dem Beispiel habe ich das in B und C bereits manuell gemacht, wollte aber nochmal nachfragen, ob es vielleicht nicht auch eine Möglichkeit gibt das zu automatisieren? Ich habe es mit VERWEIS probiert, aber das klappt nicht wirklich, weil der ja entsprechend nach der Größe der Werte sortiert und an manchen Stellen sind die y-Koordinaten größer als die x-Koordinaten. Vielleicht weiß ja jemand Rat :)

Viele Grüße
Top
#7
Hallöchen,

wo hast Du denn was zusammengefasst? Wenn die Messdaten auf dem entsprechenden Blatt "eintrudeln" und auf das Blatt Berechnungen übernommen werden, müssten die doch auf Berechnungen zusammengefasst werden, oder sehe ich das falsch? Ansonsten verfälschst Du ja das Blatt mit den Messdaten.

Ansonsten, reicht es, die Daten einfach untereinander zu kopieren? Dann könnte man das eventuell mit einem Makro tun, wenn denn diese erlaubt sind.
Oder etwas mit Formeln, vielleicht in der Art: http://www.herber.de/excelformeln und bitte suchen .../formeln.html?welcher=43
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#8
Hallöchen,

ich hänge einfach mal eine Beispieldatei mit so ermittelten Messwerten an, dann dürfte es etwas klarer werden. Oftmals passiert bei der ersten Flag kaum etwas (wird also keine Bewegung wiedergegeben) deswegen könnten diese Werte alle durch die Koordinaten in den anderen Spalten ersetzt werden bzw. wenn man den ersten Track (die ersten beiden Spalten) herauslöscht könnte man die Werte auch einfach untereinander in 2 Spalten kopieren. Wenn das Datenblatt dabei verändert wird, ist das nicht so wirklich schlimm, hauptsache die Werte bleiben unberührt. Dachte, dass es so dann einfacher ist.

Das Problem, das ich habe: Man muss ja alle Spalten in 2 Spalten (da ja 2 Koordinaten) untereinander kopieren und bisher habe ich nur Lösungen für eine Spalte gefunden. Da ich auch nicht allzu ausgeprägte Programmierungsfähigkeiten habe, weiß ich auch nicht so recht, was ich genau verändern kann, damit das dann so hinhaut.
Wüsstest du denn ein Makro, dass dazu in der Lage ist, die Messdaten untereinander zu kopieren?

Viele Grüße und vielen Dank für die Hilfe bis jetzt!


Angehängte Dateien
.txt   trackresults.txt (Größe: 264,86 KB / Downloads: 7)
Top
#9
Hallöchen,

ich habe jetzt mal in der Exceldatei weiter gemacht.

Mit diesem Makro bekommst Du die Daten in die Spalten B, C und D. Ich weiß nun nicht, ob Du die Zahlen aus Spalte A nochmal dazu benötigst, dann müsste man das erweitern. Man kann auch am Anfang noch das Öffnen der csv dazu programmieren, entweder den Öffnen-Dialog aufrufen oder wenn der Dateiname und der Ablageort gleich ist oder in dem Verzeichnis, wo das Progrämmchen liegt, auch fest programmieren.

Den code nimmst Du im VBA-Editor in ein normales Modul - musst Du im VBA-Editor vorher hinzufügen - und tust vor Ausführung die Datei mit den Messdaten aktivieren. Den code kannst Du mit F5 starten, wenn Du mit dem Cursor im Code zwischen Sub und End Sub stehst.

Modul Modul1
Sub Makro1() 
'Variablendeklarationen 
'Long 
Dim lLRow& 
    'Mit dem aktiven Blatt 
    With ActiveSheet 
      'erste zu kopierende Datenspalte aktivieren 
      .Cells(1, 5).Activate 
      'Solange in der aktiven Zelle Daten stehen 
      Do While ActiveCell.Value <> "" 
        'letzte belegte zelle in Spalte B feststellen (zum spaeteren Einfuegen) 
        lLRow = .Cells(Rows.Count, 2).End(xlUp).Row 
        'eventuelle Leerzeichen entfernen - scheinbar leere Zellen haben alle eins ... 
        .Range(ActiveCell.Resize(.UsedRange.SpecialCells(xlCellTypeLastCell).Row, 3).Address).Replace What:=" ", Replacement:="", LookAt:=xlPart 
        'filter setzen 
        .Cells(1, 1).AutoFilter 
        'leere Zellen anhand erster Spalte im Datenbereich ausfiltern 
        .Range(Cells(1, 1).Resize(.UsedRange.SpecialCells(xlCellTypeLastCell).Row, ActiveCell.Column).Address).AutoFilter Field:=ActiveCell.Column, Criteria1:="<>" 
        'sicherheitshalber nachschauen, ob was zu tun ist - anhand nicht leerer Zellen 
        If WorksheetFunction.Subtotal(103, .Range(ActiveCell.Resize(.UsedRange.SpecialCells(xlCellTypeLastCell).Row, 3).Address)) > 3 Then 
          'sichtbare Zellen im Datenbereich kopieren 
          .Range(ActiveCell.Resize(.UsedRange.SpecialCells(xlCellTypeLastCell).Row, 3).Address).SpecialCells(xlVisible).Copy 
          'und an Spalte B (und C und D) anhaengen 
          .Cells(lLRow + 1, 2).PasteSpecial Paste:=xlPasteValues 
        'Ende sicherheitshalber nachschauen, ob was zu tun ist - anhand nicht leerer Zellen 
        End If 
        'Autofilter zuruecksetzen 
        .Cells(1, 1).AutoFilter 
        'naechste Zelle aktivieren - 3 Spalten weiter 
        ActiveCell.Offset(0, 3).Activate 
      'Ende Solange in der aktiven Zelle Daten stehen 
      Loop 
   'Ende Mit dem aktiven Blatt 
   End With 
End Sub 
 

.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • lpterritory
Top
#10
Hallo nochmal,

vielen vielen Dank für deine Mühen!! Ich habe das jetzt gerade mal ausprobiert und es klappt soweit schon sehr gut, allerdings wurden irgendwie nur die Werte in die Spalten kopiert, die vor Leerzeilen stehen. Danach scheint es wohl abzubrechen. Habe ich da jetzt was falsch gemacht bei der Ausführung? Also es ist so, dass manche Bewegungen nicht erkannt werden, da kann es dann sein, dass über mehrere Zeilen hinweg keine Koordinaten in sämtlichen Spalten gelistet werden. An diesen Stellen müssten dann auch in der Spalte, wo alle Werte zusammengeführt werden Leerzeilen auftauchen. 

Wenn es natürlich möglich ist, dass sich Excel direkt die Daten aus dem Verzeichnis holt und in das Datenblatt Messdaten importiert, wäre das super klasse, aber wenn das so schon klappt wäre ich mehr als zufrieden :)
Vielen Dank für die Hilfe nochmals!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste