Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Applikationen Probleme mit Anwendungsprogrammen aller Art gehören hier hin.

Excel: gleiche punkte finden

Diskussion: Excel: gleiche punkte finden im Forum Applikationen, in der Kategorie Software Home; Anzeige Hallo ;) Habe ein Problem: Habe 9 verschiedene Datensätze mit jeweils ca. 1450 Datenzeilen. Diese Zeilen sind folgendermaßen aufgebaut ...

Antwort
Alt 05.11.08, 15:45   #1 (permalink)
gkl
 
Registriert seit: 30.11.03
gkl Leistung: Facit NTK
Likes: 0
Unhappy Excel: gleiche punkte finden

Anzeige

Hallo ;)

Habe ein Problem:

Habe 9 verschiedene Datensätze mit jeweils ca. 1450 Datenzeilen.
Diese Zeilen sind folgendermaßen aufgebaut (siehe auch Screenshot) :

X-Koordinate von Punkt1 | Y-Koord. v. Pkt.1| X-Koord. v. Pkt.2| Y-Koord. v. Pkt2| Messergebnis

Jetzt will ich jeweils 2 Datensätze vergleichen, ohne die Reihenfolge zu ändern ->

Es sollen in den verschiedenen Datensätzen Zeilen gefunden werden, welche die gleichen Koordinaten haben ( x1|y1|x2|y2|).

Warum das Ganze? Weil ich erwarte, daß sich die Meßergebnisse leicht unterscheiden und ich in den beiden Datensätze diese durch den Mittelwert ersetzen will.

Problem: Die Reihenfolge der jeweiligen Zeilen darf nicht verändert werden, somit fällt leider die Sortiermöglichkeit aus.

Im Screenshot sieht man ein Beispiel zweier nebeneinander dargestellter Datensätze.

Ich verwende Excel2007.

Hoffe, ich habe mich halbwegs verständlich ausgedrückt ;)
und bedanke mich jetzt schon für eure Hilfe.

LG
GKL

gkl ist offline   Mit Zitat antworten
Alt 05.11.08, 15:55   #2 (permalink)
 
Registriert seit: 07.03.08
90nop Leistung: Facit NTK
Likes: 0
Standard

1. Das sollte sich eigentlich durch ein kleines VBA makro gleich in Excel lösen lassen. Evtl. habe ich am Abend Zeit, dann poste ich mal ein kleines Makro.

2. Alternativ kopierst du die Tabelle und sortierst du die Datensätze und siehst sofort welche dass mehrfach vorkommen - diese kannst du dann händisch im Original angleichen - wenn es nicht zuviele sind.
90nop ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 05.11.08, 16:21   #3 (permalink)
gkl
Themenstarter
 
Registriert seit: 30.11.03
gkl Leistung: Facit NTK
Likes: 0
Standard

hallo 90nop

danke für die antwort

es sind leider viele gleiche datenzeilen, da ich beim messen mit einer 50% überlappung gearbeitet habe.

zweites leider: kann keine makros schreiben

aber die idee mit den makros bringt mich drauf, mein problem ein biss. klarer zu posten:

wenn(koord. datensatz1)==(koord. datensatz2) dann (Messwert_Mitt=(Messwert1+Messwert2)/2).

schön wäre es auch, wenn ich ein wenig kontrolle über diese aktion haben könnte, also die berechnungen extra sehen könnte -> 3 spalten, welche mir Messwert1, Messwert2 und Messwert_Mitt zeigen.

lg
gkl
gkl ist offline   Mit Zitat antworten
Alt 05.11.08, 21:14   #4 (permalink)
 
Registriert seit: 07.03.08
90nop Leistung: Facit NTK
Likes: 0
Standard

hallo,

ich habe mal damit begonnen. der code vergleicht sämtliche Zellen und sucht gleiche Punkte - in eine Zelle dahinter wird der Mittelwert geschrieben. So noch nicht zu verwenden, aber das grundsätzliche Vorgehen geht in die Richtung.

Ich muss noch herausfinden wie man Werte von den Zellen lesen/schreiben kann ohne sie zu selektierten.

Code:
Aktueller code am Ende des Threades
mal sehen ob ich morgen Zeit finde, es fertig zu stellen

btw:vb nervt

EDIT: Ein EXCEL sheet angehängt, kannst mal etwas mit rumspielen
.txt Endung entfernen.

EDIT2: Codeverweis.

Geändert von 90nop (11.03.10 um 08:54 Uhr)
90nop ist offline   Mit Zitat antworten
Alt 05.11.08, 22:11   #5 (permalink)
gkl
Themenstarter
 
Registriert seit: 30.11.03
gkl Leistung: Facit NTK
Likes: 0
Standard

wow super!

vielen dank für deine mühe!

da bekomm ich doch glatt ein schlechtes gewissen, wenn ich sehe, wieviel zeit du hierfür investierst.

hatte mir nicht gedacht, daß das so kompliziert ist

lg

gkl
gkl ist offline   Mit Zitat antworten
Alt 06.11.08, 08:16   #6 (permalink)
 
Registriert seit: 07.03.08
90nop Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von gkl
wow super!

vielen dank für deine mühe!

da bekomm ich doch glatt ein schlechtes gewissen, wenn ich sehe, wieviel zeit du hierfür investierst.

hatte mir nicht gedacht, daß das so kompliziert ist

lg

gkl
Das einzige was etwas gedauert hat war, wieder in VBA reinzukommen. Ich habs jetzt raus wie man direkt Zellen anspricht. Performancemässig sollte das viel besser sein:
Code:
Sheets("Tabelle1").Range("A1").Value = "Hallo"
Ich meld mich wenn ich es habe.


EDIT:

Noch eine wichtige Frage:

Können die gleichen Koordinaten auch innerhalb eines Datensatztes auftreten oder sind gleiche Koordinaten in einem Datensatz eindeutig?

EDIT2:

So, das Makro macht nun folgendes:

Es sucht nach doppelten Koordinaten und berechnet den Mittelwert und überschreibt mit diesem das Ohm Resultat - der ursprüngliche Wert des Resultates wird einfach eine Zelle dahinter geschreiben.
Code:
aktueller code am Ende des Threades
Hier nochmal zum testen, das excel im Anhang:

EDIT3: Codeverweis

Geändert von 90nop (11.03.10 um 08:54 Uhr)
90nop ist offline   Mit Zitat antworten
Alt 06.11.08, 10:13   #7 (permalink)
gkl
Themenstarter
 
Registriert seit: 30.11.03
gkl Leistung: Facit NTK
Likes: 0
Standard

hallo 90nop,

zur frage: es können _keine_ doppelten koordinatensätze in einem datensatz vorkommen.

das makro funktioniert super. ein wenig aufwendig ist nur, daß, wenn ein doppelter koordinatensatz gefunden wird, das informative popupfenster das OK bestätigt bekommen will

hab dir mal ein realbeispiel angehängt

lg

gkl
Angehängte Dateien
Dateityp: txt realbeispiel.xlsm.txt (94,4 KB, 2x aufgerufen)
gkl ist offline   Mit Zitat antworten
Alt 06.11.08, 10:19   #8 (permalink)
 
Registriert seit: 07.03.08
90nop Leistung: Facit NTK
Likes: 0
Standard

Zitat:
das makro funktioniert super. ein wenig aufwendig ist nur, daß, wenn ein doppelter koordinatensatz gefunden wird, das informative popupfenster das OK bestätigt bekommen will
Na das lässt sich einfach ausbauen

einfach die Zeile:
Code:
MsgBox "Doppelte Definition von Koodinaten gefunden: " & iCNT
löschen/auskommentieren.

Ich schau mir mal deine Daten an.

EDIT: hier der aktuelle code:

Code:
Sub test()
Dim sCELL As String
Dim iCNT As Integer


iCNT = 5
    Do
        sCELL = Range("A" & iCNT).Value
        If sCELL = "" Or IsNull(sCELL) Then Exit Do
        
        CheckKoord (iCNT)           'überprüfe auf gleiche Koordinaten
        iCNT = iCNT + 1
    Loop
   
End Sub

'erwartet Zeilennummer
'checkt ob die Koordinaten im Zweiten Datensatz zu finden sind.
'ändert die Werte auf einen Mittelwert und schreibt den originalen dahinter.
Private Function CheckKoord(row As Integer)
    Dim iCNT As Integer     'Zähler für Loop
    Dim var As String
    'Die row zum checken (Datensatz 1):
    Dim ik_d1_x1 As Integer
    Dim ik_d1_y1 As Integer
    Dim ik_d1_x2 As Integer
    Dim ik_d1_y2 As Integer
    Dim ohm_d1_res As Double
    
    'Die row zum checken (Datensatz 2):
    Dim ik_d2_x1 As Integer
    Dim ik_d2_y1 As Integer
    Dim ik_d2_x2 As Integer
    Dim ik_d2_y2 As Integer
    Dim ohm_d2_res As Double

    'lese die zu überprüfenden Koordinaten aus:
    ik_d1_x1 = CInt(Range("A" & row).Value)
    ik_d1_y1 = CInt(Range("B" & row).Value)
    ik_d1_x2 = CInt(Range("C" & row).Value)
    ik_d1_y2 = CInt(Range("D" & row).Value)

    ohm_d1_res = Range("E" & row).Value


    iCNT = 5
    Do
        
        If Range("G" & iCNT).Value = "" Or IsNull(Range("G" & iCNT).Value) Then Exit Do
        
        ik_d2_x1 = CInt(Range("G" & iCNT).Value)
        ik_d2_y1 = CInt(Range("H" & iCNT).Value)
        ik_d2_x2 = CInt(Range("I" & iCNT).Value)
        ik_d2_y2 = CInt(Range("J" & iCNT).Value)
            
        
        If ik_d1_x1 = ik_d2_x1 And ik_d1_y1 = ik_d2_y1 And ik_d1_x2 = ik_d2_x2 And ik_d1_y2 = ik_d2_y2 Then
            'Alle Koordinaten der beiden Datensätze stimmen überein!
            ohm_d2_res = Range("K" & iCNT).Value
            
            Range("L" & iCNT).Value = Range("K" & iCNT).Value
            Range("F" & row).Value = Range("E" & row).Value
            Range("K" & iCNT).Value = (ohm_d1_res + ohm_d2_res) / 2
            Range("E" & row).Value = (ohm_d1_res + ohm_d2_res) / 2
            
            
        End If
        iCNT = iCNT + 1
    Loop

End Function
90nop ist offline   Mit Zitat antworten
Alt 06.11.08, 11:25   #9 (permalink)
gkl
Themenstarter
 
Registriert seit: 30.11.03
gkl Leistung: Facit NTK
Likes: 0
Standard

hallo 90nop,

habe wahrscheinlich den neuesten code falsch übertragen, da jetzt der mittelwert nicht mehr errechnet wird.



aber sonst: einfach toll, daß ich nicht mehr das OK bestätigen muß

lg

gkl
gkl ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Applikationen » Excel: gleiche punkte finden
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ich kann alle im Netzwerk finden, mich kann man auch finden aber nicht zugreifen Strahl Network · LAN, WAN, Firewalls 11 21.07.05 16:52
Punkte auf dem Bildschirm NMK Die Problemzone 6 17.04.05 08:03
3DMark2003 zu wenig Punkte? IceTray Die Problemzone 6 14.03.03 11:59
Punkte-Rätsel Chris Fun Section 27 18.12.02 23:21


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61