Microsoft Excel

Herbers Excel/VBA-Archiv

Unterschiedlich lange Dateinreihen Mittelwerte

Betrifft: Unterschiedlich lange Dateinreihen Mittelwerte von: TheBeginner
Geschrieben am: 13.03.2013 15:07:35

Guten Tag zusammen,

ich recherchiere schon seit längerem, finde aber einfach keine Lösung für mein Problem.
Ich habe insgesamt drei Versuche durchgeführt und dabei Weg, Kraft und Temperatur aufgezeichnet. Für jeden Versuch erhalte ich von unserem Aufzeichnungssystem jeweils eine Datei mit CSV.
Die Datei hat immer exakt eine Länge von 32775 Zeilen. Die Krux ist jedoch, dass der Versuch sowohl zu einem anderen Zeitpunkt beginnt und endet. Die unterschiedliche Länge hängt zum Einen vom Anfangszeitpunkt und zum Anderen von der Geschwindigkeit der Maschine ab. Ich kann zwar sowohl den Anfangs-, als auch den Endzeitpunkt mit hoher Genauigkeit bestimmen und die Daten entsprechend trimmen. Die Datenreihen haben jedoch unterschiedliche Längen. Die Länge der einzelnen Blöcke liegt von 300 über ca. 525 bis zu 1010 Zeilen. Nun aber zum Casus Knaxus: Ich muss aus diesen einzelnen Versuchen einen Mittelwert mit Standardabweichung berechnen.
Aufgrund der stark unterschiedlichen Längen kann man nicht einfach die jeweiligen Zeilen zur Berechnung heranzuziehen.
Die Bezugsgröße stellt der Weg dar. Aus diesem Grund wäre es sehr gut, wenn die Wegwerte aus der kürzesten Datenreihe als Grundlage für eine Klasseneinteilung für die restlichen zwei Datenreihen dienen würden. Alle Werte, die innerhalb einer Klasse liegen (Weg, Kraft, Temperatur) sollen gemittelt werden und dann in ein neues Tabellenblatt abgelegt werden. Daraus kann ich dann anschließend MW und STABW berechnen.
Aber wie mache ich das? Ich beherrsche zwar VBA passabel (aus meiner Sicht), jedoch habe ich von Programmieren im eigentlichen Sinne und Programmaufbau leider keine Ahnung. Die Aufgabe ist einfach zu komplex für mich. Ich hoffe, hier kann jemand helfen. Es ist echt sehr wichtig für mich, dieses Problem zu lösen.

Gruß
TheBeginner

  

Betrifft: AW: Unterschiedlich lange Dateinreihen Mittelwerte von: Oberschlumpf
Geschrieben am: 13.03.2013 15:17:35

Hi #Name?!

Sorry, aber wenn du deine Frage schon MIT Datei+Daten nicht beantworten kannst, wie sollen dann wir deine Frage OHNE Datei+Daten beantworten können?

Eine Bsp-Datei wäre schön, in der dein Problem ersichtlich ist.
Zeig am Besten zum Einen die unterschiedlichen Datenreihen und zum Anderen, wie es aussehen soll, wenn es fertig ist.

Ciao
Thorsten


  

Betrifft: AW: Unterschiedlich lange Dateinreihen Mittelwerte von: TheBeginner
Geschrieben am: 13.03.2013 15:32:45

Hallo Oberschlumpf,

danke für die schnelle Antwort.
Die Lösung des Problems kann ich leider nicht zeigen, da ich es nicht habe.
Der Ausgangszustand ist in der angehängten Datei gezeigt. Ich habe hier die Rohdaten bereits mittels Makro in Excel eingelesen. Schau dir mal die verschiedenen Tabellenblätter an, dann siehst du was ich meine. Noch ein kleiner Hinweis: Ich weiß, dass diese Versuchsdaten schlecht sind. Deswegen nutze ich sie hier als Beispiel. Bei anderen Versuchen sieht es deutlich besser aus. Aber um das grundsätzlich Problem zu zeigen reicht es.
Ziel: Mittelwert und STABW aus den drei Versuchen berechnen.
Ich hoffe, nun wird das Problem deutlicher.
Datei liegt unter https://www.herber.de/bbs/user/84324.xlsx

Gruß
TheBeginner


  

Betrifft: bitte auch andere Antworter von: Oberschlumpf
Geschrieben am: 13.03.2013 15:37:06

Hallo HastDuKeinenVornamen???

Ja, danke für die Bsp-Datei.
Aber ich bin leider raus. Nein, liegt nicht an dir oder der Datei.
Ich denke schon, dass die Datei ihren Zweck erfüllt - für jemanden, der versteht, was in der Datei gezeigt + von dir gewünscht wird - ich gehöre leider nicht zu denen.

Ciao
Thorsten


  

Betrifft: AW: bitte auch andere Antworter von: TheBeginner
Geschrieben am: 13.03.2013 15:42:19

Hallo Oberschlumpf,

danke für den Hinweis. Danke trotzdem für deine Mühen.
Es soll der Mittelwert der drei dargestellten Kurven inklusive der Standardabweichung berechnet werden. Aufgrund der unterschiedlich langen Datenreihen ist das nicht so einfach. Ich brauche hierbei Unterstützung.
In der Datei ist der Verlauf der Spannungsänderung an einem Temperaturmessfühler über dem Weg dargestellt.

Gruß
Richard


  

Betrifft: AW: bitte auch andere Antworter von: TheBeginner
Geschrieben am: 13.03.2013 15:48:13

Hallo zusammen,

vielleicht sollte ich noch eines zur genaueren Erläuterung sagen: Bei annähernd gleichen Werten für den Weg soll der Mittelwert der Spannungsänderung bestimmt werden.

Gruß
Richard


  

Betrifft: AW: bitte auch andere Antworter von: Klaus M.vdT.
Geschrieben am: 13.03.2013 15:50:27

Hallo "unhöflicher Mensch, der auch nach zwei Aufforderungen am Nickname hängt statt sich vorzustellen",

entweder ich begreife die Aufgabe nicht, oder es gibt da nichts zu programmieren.
https://www.herber.de/bbs/user/84326.xlsx
Das gelbe ist nur eine Überprüfung.
Für das kopieren der drei Spalten brauchst du aber kein Makro, oder?

Grüße,
1337-N!(kn4me


  

Betrifft: AW: bitte auch andere Antworter von: TheBeginner
Geschrieben am: 13.03.2013 16:01:02

Hallo zusammen,

ich glaube nun habe ich alle Namen auf meinen Klarnamen umgestellt. Bitte entschuldigt, dass ich nicht gleich alles überrissen habe.
Ich glaube ich kann es mal wieder nicht rüberbringen. Aber ich versuche es gerne nochmal:
Auf Basis der Wegdaten will ich einen Mittelwert aus der Spannungsänderung berechnen. Nehmen wir beispielsweise den Weg bei 2 mm. Der Wert für die Spannungsänderung befindet sich für V1 in G124, für V2 G112 und für V3 in G191. Würde man nun jeweils nur den Wert in beispielsweise C124 über alle drei Tabellenblätter nehmen, so würde man große Fehler erhalten. Wie kann ich es nun bewerkstelligen, dass zu einem bestimmten Weg immer die entsprechenden Zeilen gefunden und in die Mittelwert- und Standardabweichungsberechnung miteinbezogen werden. Die Krux an der Sache: Dies muss nicht nur für einen Wert funktionieren sondern im Bereich von 0 bis 5,8 mm. Die Schrittweite kann ich aktuell noch nicht sagen.
Sehe ich es richtig, dass dann in der langen Datenreihe erst entsprechende Klassen gebildet werden müssen um gleich lange Datenreihen zu erhalten?

Gruß
Richard


  

Betrifft: AW: bitte auch andere Antworter von: Klaus M.vdT.
Geschrieben am: 13.03.2013 16:11:59

Hallo Richard,

bitte bedenke, dass nur du verstehst, was in deiner Datei steht. Auch was für dich intuitiv selbstverständlich ist, musst du uns Helfern erst erklären. Dass hat nichts mit Excel-Profi oder Excel-Neuling zu tuen, sondern nur mit "im-Thema-Sein-Oder-Nicht".

Ich hab grad einen ganz langen Text geschrieben und danach wieder gelöscht, weil ich plötzlich begriffen habe was du willst, hoffe ich.
https://www.herber.de/bbs/user/84328.xlsx

aus V1 den einen Weg von 2mm rausgesucht, ebenso aus V2 und V3.
nicht genau 2mm, sondern am nächsten dran.

Grüße,
Klaus M.vdT.


  

Betrifft: AW: bitte auch andere Antworter von: TheBeginner
Geschrieben am: 13.03.2013 16:26:39

Hallo Klaus M.vdT.,

genau das wollte ich. Genial. Irgendwie findet deine Formel aber nicht den am nächsten liegenden Wert zu zum Beispiel 0,1 mm. Hast du eine Idee woran das liegen könnte?
Ich würde mir dann gerne ein Makro schreiben, welches die maximale Länge der jeweiligen Datenreihen in den einzelnen Tabellenblättern bestimmt und diese jeweils in eine eigene Variable speichert. Die zahlenmäßig kleinste Variable kann dann als Datengrundlage dienen. Das soll dann von Zeile 2 bis zum Erreichen des Werts der Variable für alle Zeilen gemacht werden.
Was meinst du zu diesem Vorgehen?
Vielen Dank schon mal für deine Anregungen.

Gruß
Richard.


  

Betrifft: AW: bitte auch andere Antworter von: Klaus M.vdT.
Geschrieben am: 13.03.2013 20:40:44

Hallo Richard,

die Listen V1 bis V3 sind doch sortiert, oder? Es kann sein dass die Formel ein Problem mit dem kleinsten und dem größtem Wert hat, das schau ich mir mal an. Wenn die Listen entgegen meines Eindrucks NICHT sortiert sind, dann müsste Blödsinn heraus kommen.
Ich melde mich morgen dazu, momentan hab ich kein Excel zur Hand.

Grüße,
Klaus M.vdT.


  

Betrifft: AW: bitte auch andere Antworter von: Klaus M.vdT.
Geschrieben am: 14.03.2013 08:11:28

Hallo Richard,

ich teste grad mit deinen Musterdaten für 0,1mm
bei V1 passt die Formel.
Bei V2 sehe ich jetzt, dass die Werte aus C nicht aufsteigend sortiert sind!
Hier mal die Werte aus C2:C7
0
0,01155
0,00805
0,00325
0,0008
0,017
Da muss ich nicht weiter prüfen. Mein Formelvorgehen macht nur Sinn, wenn die Liste aufsteigend sortiert ist!
Als alternative, falls du die Listen aus irgendeinem Grund nicht sortieren kannst oder willst, hätte ich jetzt nur eine schrecklich unperformante VBA-Hintenrum-Lösung mit langen For-Next Schleifen. Die bastel ich mal fix und lade sie hoch ...

Ich würde mir dann gerne ein Makro schreiben, welches die maximale Länge der jeweiligen Datenreihen in den einzelnen Tabellenblättern bestimmt und diese jeweils in eine eigene Variable speichert. Die zahlenmäßig kleinste Variable kann dann als Datengrundlage dienen. Das soll dann von Zeile 2 bis zum Erreichen des Werts der Variable für alle Zeilen gemacht werden.
Was meinst du zu diesem Vorgehen?

Ich verstehe nur Bahnhof. Du musst dich echt präziser Ausdrücken, ich hab doch keine Ahnung von deiner Aufgabe / deinem Fachbereich. Stell dir einfach vor, du musst das einem idiotischem Kind mit Inselbegabung erklären und versuchs nochmal! Ich bin schon nicht beleidigt - lieber zu viel und zu detailreicher Input als zu wenig, um die Aufgabe zu lösen!

Grüße,
Klaus M.vdT.


  

Betrifft: AW: bitte auch andere Antworter von: Klaus M.vdT.
Geschrieben am: 14.03.2013 08:45:03

Hi Richard,

lass mal das Makro HoleWerteAusV1bisV3 über die Musterdatei laufen. Das findet den kleinsten Vergleichswert auch bei unsortierten Listen.
Ich hätte gedacht, dass läuft etwas länger, hält sich bei mir aber im Rahmen. Wie lang sind denn die Datenlisten, die du realistisch erhälst? Ähnlich Lang, oder eher je eine Million Zeilen?
Wenn du mich die Listen (per Makro!) sortieren lässt, kann ich die Laufzeit deutlich reduzieren.
(Hintergrund: Momentan läut eine Schleife über JEDEN Eintrag in V1-V3. Bei einer sortierten Liste könnte man per MATCH den nächstgrößeren Wert zum Suchwert ermitteln, und von da an prüfen bis der Vergleichswert nicht mehr kleiner wird - das würde die Durchläufe pro Liste von X (=Anzahl Zeilen) auf 2 oder 3 insgesamt reduzieren)

Option Explicit

Public iColWeg As Integer
Public iColWert As Integer
Public lRowF As Long
Public lRowL As Long
Public dSearch As Double

Private Sub HoleWerteAusV1bisV3()

Dim wksV1 As Worksheet
Dim wksV2 As Worksheet
Dim wksV3 As Worksheet
Dim wksZiel As Worksheet
Dim rV1 As Range
Dim rV2 As Range
Dim rV3 As Range
Dim rWeg As Range

'* Variablen definieren
'Namen der Arbeitsblätter
Set wksV1 = Sheets("V1")
Set wksV2 = Sheets("V2")
Set wksV3 = Sheets("V3")
Set wksZiel = Sheets("V1bis3")
'Zeilen und Spalten definieren
iColWeg = 3         'Wege stehen in Spalte C (=3)
iColWert = 7        'die Kommazahlen (Spannung??) stehen in Spalte G (=7)
lRowF = 2           'es wird ab Zeile 2 ausgewertet (Zeile1 = Überschriften)
'hier kommen die Ausgabewerte hin
Set rV1 = wksZiel.Range("C4")
Set rV2 = wksZiel.Range("C5")
Set rV3 = wksZiel.Range("C6")
'hier steht der Eingabewert
Set rWeg = wksZiel.Range("C2")

'hole den Suchwert automatisch
dSearch = rWeg.Value

'* Programm startet
rV1.Value = VergleicheWeg(wksV1)
rV2.Value = VergleicheWeg(wksV2)
rV3.Value = VergleicheWeg(wksV3)

End Sub


Function VergleicheWeg(wksMy As Worksheet)
Dim r As Range
Dim dDiffOld As Double
Dim dDiffNew As Double

With wksMy
    'Vergleichswert unrealistisch hoch ansetzen
    dDiffOld = 9 ^ 9
    'letzte Zeile
    lRowL = .Cells(.Rows.Count, iColWeg).End(xlUp).Row
    'jeden Wert abklopfen
    For Each r In .Range(.Cells(lRowF, iColWeg), .Cells(lRowL, iColWeg))
        
        'Differenz zwischen gefundenem und Suchwert, immer positiv
        dDiffNew = r.Value - dSearch
        If dDiffNew < 0 Then dDiffNew = dDiffNew * -1
        
        'bei kleinerer Differenz, den aktuellen Wert übernehmen
        If dDiffNew < dDiffOld Then
            dDiffOld = dDiffNew
            VergleicheWeg = .Cells(r.Row, iColWert)
        End If
    Next r
End With
End Function
Für das andere Problem warte ich noch auf die Erklärung.

Grüße,
Klaus M.vdT.


  

Betrifft: AW: bitte auch andere Antworter von: Klaus M.vdT.
Geschrieben am: 14.03.2013 08:47:10

Hi Richard,

lass mal das Makro HoleWerteAusV1bisV3 über die Musterdatei laufen. Das findet den kleinsten Vergleichswert auch bei unsortierten Listen.
Ich hätte gedacht, dass läuft etwas länger, hält sich bei mir aber im Rahmen. Wie lang sind denn die Datenlisten, die du realistisch erhälst? Ähnlich Lang, oder eher je eine Million Zeilen?
Wenn du mich die Listen (per Makro!) sortieren lässt, kann ich die Laufzeit deutlich reduzieren.
(Hintergrund: Momentan läut eine Schleife über JEDEN Eintrag in V1-V3. Bei einer sortierten Liste könnte man per MATCH den nächstgrößeren Wert zum Suchwert ermitteln, und von da an prüfen bis der Vergleichswert nicht mehr kleiner wird - das würde die Durchläufe pro Liste von X (=Anzahl Zeilen) auf 2 oder 3 insgesamt reduzieren)

Option Explicit

Public iColWeg As Integer
Public iColWert As Integer
Public lRowF As Long
Public lRowL As Long
Public dSearch As Double

Private Sub HoleWerteAusV1bisV3()

Dim wksV1 As Worksheet
Dim wksV2 As Worksheet
Dim wksV3 As Worksheet
Dim wksZiel As Worksheet
Dim rV1 As Range
Dim rV2 As Range
Dim rV3 As Range
Dim rWeg As Range

'* Variablen definieren
'Namen der Arbeitsblätter
Set wksV1 = Sheets("V1")
Set wksV2 = Sheets("V2")
Set wksV3 = Sheets("V3")
Set wksZiel = Sheets("V1bis3")
'Zeilen und Spalten definieren
iColWeg = 3         'Wege stehen in Spalte C (=3)
iColWert = 7        'die Kommazahlen (Spannung??) stehen in Spalte G (=7)
lRowF = 2           'es wird ab Zeile 2 ausgewertet (Zeile1 = Überschriften)
'hier kommen die Ausgabewerte hin
Set rV1 = wksZiel.Range("C4")
Set rV2 = wksZiel.Range("C5")
Set rV3 = wksZiel.Range("C6")
'hier steht der Eingabewert
Set rWeg = wksZiel.Range("C2")

'hole den Suchwert automatisch
dSearch = rWeg.Value

'* Programm startet
rV1.Value = VergleicheWeg(wksV1)
rV2.Value = VergleicheWeg(wksV2)
rV3.Value = VergleicheWeg(wksV3)

End Sub


Function VergleicheWeg(wksMy As Worksheet)
Dim r As Range
Dim dDiffOld As Double
Dim dDiffNew As Double

With wksMy
    'Vergleichswert unrealistisch hoch ansetzen
    dDiffOld = 9 ^ 9
    'letzte Zeile
    lRowL = .Cells(.Rows.Count, iColWeg).End(xlUp).Row
    'jeden Wert abklopfen
    For Each r In .Range(.Cells(lRowF, iColWeg), .Cells(lRowL, iColWeg))
        
        'Differenz zwischen gefundenem und Suchwert, immer positiv
        dDiffNew = r.Value - dSearch
        If dDiffNew < 0 Then dDiffNew = dDiffNew * -1
        
        'bei kleinerer Differenz, den aktuellen Wert übernehmen
        If dDiffNew < dDiffOld Then
            dDiffOld = dDiffNew
            VergleicheWeg = .Cells(r.Row, iColWert)
        End If
    Next r
End With
End Function
Für das andere Problem warte ich noch auf die Erklärung.

Grüße,
Klaus M.vdT.


  

Betrifft: AW: bitte auch andere Antworter von: TheBeginner
Geschrieben am: 14.03.2013 14:50:08

Hallo Klaus,

da bin ich wieder. Vielen Dank für das tolle Programm, ich werde es mal gleich ausprobieren.
Die Daten kann ich leider nicht sortieren. Das Problem ist hier der Wegmesstaster der eingesetzt wurde. Bei diesem entsprucht ein Inkrement 50 nm. Kommt es nun zu Erschütterungen des Sensors, so zeigt sich das in einem "Zittern / Springen" der Ergebnisse.
Die Erklärung: Meine Intention war, die kürzeste Datenreihe zu nutzen, um feststellen zu können, wie lang die anderen höchstens sein dürfen. Die in dier Datenreihe enthaltenen Weginformationen hätte ich genutzt, um in den anderen Datenreihen die entsprechenden Tupel für Weg und Spannungsänderung zu suchen, diese zu kopieren und dann neben den Werten der kürzesten Datenreihe entsprechend einzufügen. Dabei hätte ich darauf geachtet, dass immer Werte für einen bestimmten Weg, z.B. 0,5 mm, in einer Zeile stehen, um hinterher dann den Mittelwert zeilenweise bilden zu können. Steht nämlich der Weg 0,5 mm einmal in Zeile 50 und einmal in Zeile 150, so würde eine zeilenweise Bildung von MW und STABW zu einem Fehler führen.
Ich hoffe nun ist es klarer geworden. Sollten weitere Fragen bestehen, immer heraus damit.

Gruß
Richard


  

Betrifft: AW: bitte auch andere Antworter von: Klaus M.vdT.
Geschrieben am: 14.03.2013 14:55:27

Hallo Richard,

danke für deine ausführlichen Erklärungen ... für mich ist das eher chinesisch ;-)

Schau dir halt mal die Makro-Ergebnisse an und sag mir ob dir das so passt. Man könnte das auch einfacu ausweiten und für zB 10 verschiedene mm-Angaben laufen lassen, die dann nebeneinander aufgelistet werden.
Sag halt welche Zahlen du wo brauchst, dann basteln wir weiter!

Grüße,
Klaus M.vdT.


  

Betrifft: AW: bitte auch andere Antworter von: TheBeginner
Geschrieben am: 14.03.2013 15:02:58

Hallo Klaus,

daher auch meine "knappen" Antworten. Mit solchen Dingen ackere ich schon länger jeden Tag herum. Versuchsdaten erzeugen ist einfach, aber die Auswertung hat es dann oft in sich.
Mein Makro läuft nicht. Es kommt die Fehlermeldung "Innerhalb einer Prozedur ungültig". Langsam dreh ich durch. Was mache ich dauernd falsch?
Mein Programm beginnt folgendermaßen:

Sub makro_edited()
Option Explicit
....
End Sub

Vielen Dank für deine Hilfe.

Gruß
Richard


  

Betrifft: AW: bitte auch andere Antworter von: Klaus M.vdT.
Geschrieben am: 14.03.2013 15:19:27

Option Explicit
Sub makro_edited()
....
End Sub

Option Explicit gehört nach ganz oben, nicht ins Makro.

Grüße,
Klaus M.vdT.


  

Betrifft: AW: bitte auch andere Antworter von: TheBeginner
Geschrieben am: 18.03.2013 11:04:05

Hallo Klaus,

da bin ich wieder. Letzte Woche war leider einiges los, sodass ich nicht dazugekommen bin, mich dem Makro voll zu widmen.
Ich habe mir das Makro mal angesehen. Vielen Dank dafür. Habe bereits auch damit rumgespielt und es funktioniert schon echt gut.
Das Makro tut auch prinzipiell das was es tun soll. Ich habe nur eine Frage:
Wie kann ich es schaffen, dass das Makro nicht nur für einen Wert sucht, sondern beispielsweise im Bereich von 0 bis 6 mm in Schritten von 0,05 mm. Wobei es schön wäre, wenn die Schrittweite variierbar wäre. Ich habe versucht das hinzubekommen, aber es funktioniert einfach nicht.
Vielen Dank für deine Hilfe.

Gruß
Richard


  

Betrifft: AW: bitte auch andere Antworter von: Klaus M.vdT.
Geschrieben am: 18.03.2013 11:27:13

Wie kann ich es schaffen, dass das Makro nicht nur für einen Wert sucht, sondern beispielsweise im Bereich von 0 bis 6 mm in Schritten von 0,05 mm. Wobei es schön wäre, wenn die Schrittweite variierbar wäre
Hi,
das Makro sucht einen Wert. Wenn du einen nächsten Wert haben möchtest, startest du das Makro einfach nochmal mit anderen Eingangsvariablen!
Ich hab dir das mal gebastelt. Aufgrund der 15-stellingen Ergebnisse ist die Tabelle grob unübersichtlich, aber das bekommst du selbst hingebastelt dass das gut aussieht. Wenn du mehr als 14
Steps durchlaufen willst, musst du evt. die Formatierungen usw von Hand nach rechts kopieren.

https://www.herber.de/bbs/user/84419.xlsm

Grüße,
Klaus M.vdT.


  

Betrifft: AW: bitte auch andere Antworter von: TheBeginner
Geschrieben am: 14.03.2013 14:57:42

Hallo Klaus,

die maximale Zeilenzahl liegt bei ca. 1500. Mehr werde ich sicher nicht machen.
Laufzeit spielt keine Rolle. Selbst wenn es einige Stunden dauern sollte ist es kein Problem. Ich habe hier mehrere Rechner zur Verfügung. Dann beschäftigen sich meine Rechenknechte nicht mit FEM sondern VBA. Auch kein Problem.

Gruß
Richard


  

Betrifft: AW: bitte auch andere Antworter von: TheBeginner
Geschrieben am: 13.03.2013 16:03:56

Nochmal hallo zusammen,

auf Wunsch von Klaus M.vdT. hier meine Vorstellung.
Mein Name ist Richard F. und bin aktuell dabei meine Abschlussarbeit im Bereich Maschinenbau zu erstellen. Um die hier anfallenden Daten bewältigen zu können brauche ich Eure Unterstützung.
Ich hoffe das genügt nun, um nicht gleich wieder als unhöflicher Mensch betitelt zu werden.

Gruß
Richard


  

Betrifft: nichts für ungut! von: Klaus M.vdT.
Geschrieben am: 13.03.2013 16:15:04

Hallo Richard,

nichts für ungut! Siehs mal so: hier antworten Menschen, keine Roboter. Eine Anrede am Anfang und ein Gruß am Ende machen den Beitrag einfach viel freundlicher zu lesen.
Ob du tatsächlich Richard heisst, kann und werde ich natürlich nicht überprüfen. Nur, wenn ich Diskussionen mit NickNames führen möchte, dann geh ich ins Pokemon-Forum. Hier bei Herber.de sind wir Antworter stock-Konservativ und haben keinerlei Humor, darum fühlen wir uns von NickNames angegriffen und bedroht.

Grüße,
Klaus M.vdT.


  

Betrifft: OT: Muss ich jetzt ins Pokemon-Forum ? ;-) _oT von: NoNet
Geschrieben am: 13.03.2013 18:37:50

_oT = "ohne Text"

ein humorloser "NickNamer" (NoNet ;-)


  

Betrifft: Warum nicht, NoNet, ... von: Luc:-?
Geschrieben am: 13.03.2013 19:31:26

…irgendwie hast du doch fast die Form, pardon, natürlich nur im Breitbild oder gar der Panoramaansicht… ;-))
Gruß Luc :-?

PS: Hatte da ganz unten dir noch was geschrieben!


  

Betrifft: OT: DejaVu oder Fehler in der Matrix? von: Klaus M.vdT.
Geschrieben am: 13.03.2013 20:38:12

Das hatten wir doch schon ausführlich, Thomas :-) Ich nehme aber zur Kentniss, dass du auf mein Bitten hin (*einbild*) endlich diese schrecklichen Smiley-Gifs unterlässt.

I choose you, NoNet!

Grüße,
Klaus M.vdT.


  

Betrifft: AW: OT: DejaVu oder Fehler in der Matrix? von: TheBeginner
Geschrieben am: 14.03.2013 15:04:28

Hallo zuammen,

freut mich, wenn es Euch hier gefällt. ;-)))

Gruß
Richard


  

Betrifft: nur 1x noch von mir :-) von: Oberschlumpf
Geschrieben am: 13.03.2013 16:19:07

Hallo Richard +
Herzlich Willkommen Richard!

Mit "Vorstellen" meinte Klaus, glaube ich, etwas anderes - einfach nur deinen Realvornamen nennen.

Der Hintergrund ist, dass in diesem Forum sehr gerne natürlich jeder seinen Nicknamen wählen kann, wie er möchte.
Aber ich + viele Andere finden es halt schöner, unsere Gesprächspartner mit dem Vornamen anschreiben zu können.

Natürlich könnte jetzt der seinen Vornamen nicht verraten möchte, darauf hinweisen, dass dies doch bitte jeder für sich entscheiden soll, und nicht "gezwungen" wird - derjenige hätte sogar Recht damit.
Trotzdem werden wir nicht müde, daruf hinzuweisen, doch den Vornamen zu verraten.

Noch etwas.
Wenn du Excel-Probleme hast, dann bist du in diesem Forum genau richtig!
Ich kenne kein anderes, in dem sehr viele Antworten soo schnell da sind und so kompetent sind.
Ich denke zwar, deine Aufgabe ist wirklich knifflig + könnte etwas länger dauern, aber vielleicht irre ich mich ja, weil ich hier eh nicht der Richtige bin.

Ich wünsche dir weiterhin viel Spaß in....The Best Of Excel-Forum :-))

Ciao
Thorsten


  

Betrifft: AW: nur 1x noch von mir :-) von: TheBeginner
Geschrieben am: 13.03.2013 16:35:18

Hallo Thorsten,

ich finde nichts schlimmes dran, meinen Vornamen preiszugeben. Das hat bis jetzt denke ich noch niemanden umgebracht. ;-)
Bei deiner ersten Antwort hatte ich allerdings den Eindruck, du würdest mit einer Art Automatic-Reply arbeiten, die den Namen des Fragenden ausliest und dann automatisch wieder einsetzt. Ich hatte gedacht, das ist einfach der Arrayname. Daher war ich beim ersten Mal von einem Fehler ausgegangen.
Und konservativ ist der Maschinenbau auch. Daher weiß ich was ihr meint.
Das Problem ist wirklich knifflig. Die Lösung wird schon irgendwie gefunden werden.
Danke trotzdem für deine Mühen.

Gruß
Richard (ja, das ist mein echter Vorname)


  

Betrifft: AW: nur 1x noch von mir :-) von: TheBeginner
Geschrieben am: 13.03.2013 18:59:50

Hallo zusammen,

wenn ich diese Formel per VBA aufrufe, dann bekomme ich immer Fehler 1004 geschmissen. Was ist nur falsch?

Range("B2").Value = WorksheetFunction.Index("Pretests2!Range(Cells(2, 7), Cells(minimum, 7))", Application.WorksheetFunction.Match("Zusammenfassung!A2", "Pretests2!Range(Cells(2, 3), Cells(minimum, 3))", 1)).End(xlUp).Row

Ich möchte hier die Funktion Index in Zusammenhang mit Vergleich durchführen, wobei beim Vergleich immer der Fehler 1004 auftritt. Woran liegt das?
Wie kann ich eigentlich einen Absatz in der Formel einfügen?
Danke!

Gruß
Richard


  

Betrifft: In d.Programmierung nennt man so etwas ... von: Luc:-?
Geschrieben am: 13.03.2013 19:26:17

…An- bzw hier Zuweisung, Richard,
nicht „Formel“! Außerdem hättest du einen Umbruch (mit VBA-Zeilentrenner _) einbauen können, damit sie keine Überlaänge erreicht (normaler macht das schon die Forumssoftware - etwas willkürlich), so wie folgt:

Range("B2").Value = WorksheetFunction.Index("Pretests2!Range(Cells(2, 7), _
Cells(minimum, 7))", Application.WorksheetFunction.Match("Zusammenfassung!A2", _
"Pretests2!Range(Cells(2, 3), Cells(minimum, 3))", 1)).End(xlUp).Row

Woran das liegt? Willst du wissen, was du da „berechnen“ lassen willst?
INDEX soll aus einem Text den mit VERGLEICH aus ebenfalls einem Text per Vgl mit einem Text ermittelten xten Wert zurückgeben. Da dabei nix Xcheits rauskommen kann, hast du den Fehler.
Warum in aller Welt verwendest du hier inflationär die Text-Kennzeichnungszeichen? Was soll wohl eine XlFkt mit einem aus VBA-Anweisungen bestehenden Text anfangen können? Weg mit den Dingern und dann ggf noch mal fragen!
Gruß Luc :-?


  

Betrifft: AW: In d.Programmierung nennt man so etwas ... von: TheBeginner
Geschrieben am: 13.03.2013 19:34:44

Hallo Luc,

danke für deine Hinweise, das hatte ich bereits. Dann kommt lediglich der Laufzeitfehler 424 mit "Objekt erforderlich" als Fehlermeldung. Wie könnte man das beheben?

Gruß
Richard


  

Betrifft: Ja, wenn der Fehler wirklich an dieser ... von: Luc:-?
Geschrieben am: 13.03.2013 20:21:42

…Stelle auftritt, Richard,
fehlt ein Objekt, weil entweder nicht definierbar oder nicht vorhanden. Da INDEX stets einen Bereich liefert (sonst würde der Zusatz .End(xlUp).Row nicht fktionieren!), wird es hier wohl Nothing liefern. Das könnte daran liegen, dass das Blatt (bzw die 1blättrige Mappe) Pretests2 nicht exist… Auweia! Das kann man natürlich nicht machen, xl- und vbSchreibweise mixen! Da sollte sich nach Entfernen der Text-"" eigentlich die VBE-Syntax-Überwachung melden und die Kompilierung nicht möglich sein!

Dim wsPT2 As Worksheet
…
Set wsPT2 = Sheets("Pretests2")
With WorksheetFunction
    Range("B2") = .Index(wsPT2.Range(wsPT2.Cells(2, 7), wsPT2.Cells(minimum, 7)), _
                  .Match(Sheets("Zusammenfassung").Range("A2"), wsPT2.Range( _
                  wsPT2.Cells(2, 3), wsPT2.Cells(minimum, 3)), 1)).End(xlUp).Row
End With

So, jetzt sollte es nur noch an minimum oder dem 3.Argument von Match haken können, aber ich glaube, du machst Letzteres absichtlich (falls ich mich recht erinnere).
Gruß Luc :-?


  

Betrifft: AW: Ja, wenn der Fehler wirklich an dieser ... von: TheBeginner
Geschrieben am: 13.03.2013 20:34:51

Hallo Luc,

danke für die Info. Ich werde das morgen mal gleich ausprobieren. Meine VBA-Kenntnisse sind leider bescheiden.

Gruß
Richard


  

Betrifft: AW: Ja, wenn der Fehler wirklich an dieser ... von: TheBeginner
Geschrieben am: 14.03.2013 14:58:35

Hallo Luc,

scheint zu funktionieren. Werde weiter testen!
Vielen Dank!

Gruß
Richard


  

Betrifft: was generelles zu Excel (Nachkommastellen) von: Klaus M.vdT.
Geschrieben am: 14.03.2013 09:20:12

Hallo Richard,

mal was generelles zu Excel:
es werden 15 Nachkommastellen bearbeitet, alles mit über 15 Nachkommastellen ergibt Rundungsfehler. Ich finde in deiner Musterdatei spontan Zahlen mit 20 Nachkommastellen.
Sei dir bitte im klaren darüber, dass du mit deinen Zahlen in dieser Genauigkeit in Excel nicht weiterrechnen darfst!

Grüße,
Klaus M.vdT.


  

Betrifft: AW: was generelles zu Excel (Nachkommastellen) von: TheBeginner
Geschrieben am: 14.03.2013 14:54:40

Hallo Klaus,

danke für den Hinweis, diese vielen Nachkommastellen kommen aus unserem Transientenrekorder raus. Mir reichen eigentlich die ersten 6-7 Nachkommastellen völlig aus. Ich musste den nur so "scharf" stellen, da ich mir nicht sicher war, inwieweit unsere Messverstärker schaffen, das schwache Signal zu verstärken. Leider bewegen uns wir hier im Grenzbereich was gerade noch möglich ist.

Gruß
Richard


 

Beiträge aus den Excel-Beispielen zum Thema "Unterschiedlich lange Dateinreihen Mittelwerte"