Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1296to1300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mittelwert berechnen.

Mittelwert berechnen.
07.02.2013 12:28:09
Heinz
Schönen Tag im Excelforum
In unserer Firma haben wir ein Gerät,das den Innendurchmesser vom Hals an mehreren tiefen einer Glasflasche misst.
Diese Auswertung können wir in Excel übertragen.- Siehe Dateianhang.
Wie könnte ich mit dieser Tabelle am schnellsten den Mittelwert von z.B.in E2 berechnen ?
Bisher muß ich alles mit Taschenrechner oder Kopfrechnen berechnen.
Gruß Heinz
https://www.herber.de/bbs/user/83809.xlsx

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mittelwert berechnen.
07.02.2013 12:34:39
Klaus
Hi,
in E2 steht: 19.12 / 19.20
Ich nehme an, du möchtest den Mittelwert aus 19,12 und 19,20 errechnen. Wenn richtig: WO soll der stehen?
Kann in E2 auch stehen 19.1 / 19.2 / 19.4 / 1000.1 (sprich mehrere Werte)?
Gibt es ein fixum der Werte? In deinem Beispiel sind es mal 2, mal nur einer .. könnten es theoretisch auch drei oder dreihundert Werte in einer Zelle sein?
Ist ein kleines VBA Script in Ordnung? Oder ein händisches "TEXT-In-Spalten" ausführen? Oder nichts davon?
Grüße,
Klaus M.vdT.

AW: Mittelwert berechnen.
07.02.2013 12:51:12
Heinz
Hallo Klaus
Ich nehme an, du möchtest den Mittelwert aus 19,12 und 19,20 errechnen. 
Ja richtig.
WO soll der stehen?
Es könnte eventuell eine Spalte eingefügt werden.
Kann in E2 auch stehen 19.1 / 19.2 / 19.4 / 1000.1 (sprich mehrere Werte)?
Nein es stehen immer maximal 2 Werte. Minimum + Maximum.
Wenn nur ein Wert steht ist das minimum + maximum gleich groß.
Ist ein kleines VBA Script in Ordnung? Oder ein händisches "TEXT-In-Spalten" ausführen? Oder nichts davon?

Wenn du bitte helfen könntest, wäre mir jede Methode recht.
Recht herzlichen Dank, Heinz

Anzeige
AW: Mittelwert berechnen.
07.02.2013 12:56:08
Matze
Hallo Heinz,
besser die 2 Werte in getrennt Spalten und als Zahl formatiert
Tabelle1
 EF
1 Mdg innen 3 mm  
219,1219,20
318,7118,82
418,6218,75
518,6918,84
618,6218,76
718,5218,64
819,0619,22
919,3819,43
1018,6718,81
11   
12Mittelwert E219,16
13Mittelwert E318,77
14Mittelwert E418,69
15Mittelwert E518,77
16Mittelwert E618,69
17Mittelwert E718,58
18Mittelwert E819,14
19Mittelwert E919,41
20Mittelwert E1018,74

verwendete Formeln
Zelle Formel Bereich
F12 =MITTELWERT($E2:$F2) 
F13 =MITTELWERT($E3:$F3) 
F14 =MITTELWERT($E4:$F4) 
F15 =MITTELWERT($E5:$F5) 
F16 =MITTELWERT($E6:$F6) 
F17 =MITTELWERT($E7:$F7) 
F18 =MITTELWERT($E8:$F8) 
F19 =MITTELWERT($E9:$F9) 
F20 =MITTELWERT($E10:$F10) 

Tabellendarstellung in Foren Version 5.50


Matze

Anzeige
AW: Mittelwert berechnen.
07.02.2013 13:00:49
Heinz
Hallo Matthias
besser die 2 Werte in getrennt Spalten und als Zahl formatiert

Ja bis jetzt habe ich es auch so gemacht. Ist aber sehr Zeitaufwendig.
Deshalb hatte ich nachgefragt, ob es nicht eine schnellere Lösung gebe.
Danke Heinz

AW: Mittelwert berechnen.
07.02.2013 13:13:36
Klaus
Heinz,
leg dir folgendes Makro auf einen Tastenshortcut.
Selektiere einen Bereich, und es überschreibt alles in dem Bereich mit dem richtigem Mittelwert.
ACHTUNG!
Keinerlei Fehlerbehandlung, keinerlei Plausibilitätsprüfung! Mache eine Sicherheitskopie, bevor du es ausprobierst.
Sub MittelwertAusText()
Dim rCells As Range
Dim iA
Dim iB
For Each rCells In Selection
'Debug.Print Application.WorksheetFunction.Find("/", rCells.Value)
If IsNumeric(rCells.Value) Then
rCells.Value = rCells.Value * 1
Else
iA = VBA.Left(rCells.Value, Application.WorksheetFunction.Find("/", rCells.Value) - 1) * _
1
iB = VBA.Mid(rCells.Value, Application.WorksheetFunction.Find("/", rCells.Value) + 1,  _
99) * 1
rCells.Value = Application.WorksheetFunction.Average(iA, iB)
End If
Next rCells
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: Mittelwert berechnen.
07.02.2013 13:29:56
Heinz
Hallo Klaus
Auf den ersten Blick sieht es sehr gut aus.
Könnte man in deinen Makro,nicht gleich den Text in Zahlen mit 0 Dezimalstellen umwandeln?
Weiters wäre es SUPER wenn zB. 1871 in 18,71 umgewandelt würde.
Aber es ist schon ein haufen Zeitersparniss. (Könnte jetzt von der übrigen Zeit Kaffee trinken gehen)
Danke Heinz

AW: Mittelwert berechnen.
07.02.2013 13:36:44
Klaus
Hi,
ich brauche eine weitere Musterdatei von dir!
Könnte man in deinen Makro,nicht gleich den Text in Zahlen mit 0 Dezimalstellen umwandeln?
ja natürlich ... aber du kannst den Bereich doch einfach und einmalig als Zahl formatieren?
Weiters wäre es SUPER wenn zB. 1871 in 18,71 umgewandelt würde
Nach welcher Logik? Wenn ich 1871 ind 18,71 umwandel, dann wird nach meiner Logik analog dazu aus zB 19,1 der Wert 0,191
Ausserdem kam ein solcher Wert in deiner Musterdatei nirgendwo vor ...
Grüße,
Klaus M.vdT.
Genieß den Kaffee! Lern weiter VBA, dann reichts auch noch für ein Stück Kuchen ;-)

Anzeige
Versteh ich nicht
07.02.2013 13:59:18
Klaus
Hi,
macht bei mir genau was es soll. Es kommt 19,11 heraus, nicht 1911. Sind vielleicht deine Ländereinstellungen schuld?
Grüße,
Klaus M.vdT.

AW: Versteh ich nicht
07.02.2013 14:07:12
Heinz
Hallo Klaus
Sind vielleicht deine Ländereinstellungen schuld?
Komisch habe alles auf Deutsch-Österreich gestellt.
Danke Heinz

AW: Versteh ich nicht
07.02.2013 14:23:56
Klaus
Hallo Heinz,
dann kann ich leider nicht weiter helfen! Schade .. reicht nur für Kaffe, nicht noch für den Kuchen.
Probier nochmal aus, die Zellformatierung zu ändern. Mehr Ideen hab ich dann nicht mehr.
Grüße,
Klaus M.vdT.

Anzeige
AW: Versteh ich nicht
07.02.2013 14:26:06
Heinz
Hallo Klaus
Ich bedanke mich recht herzlich bei dir.
Super Arbeit.
Gruß Heinz

AW: Versteh ich nicht
07.02.2013 14:37:43
Heinz
Hallo Matthias
Jetzt ist es Perfekt !!
Recht herzlichen Dank !!
Gruß Heinz

aus Prinzip nochmal drüber optimiert :-P
07.02.2013 14:47:49
Klaus
Hi,
diese Variante ist etwas performanter, da ich alle unnötigen Schleifen und Variablen rausgeworfen habe (ab einer Auswahl von ein paar Millionen Zellen merkt man vielleicht sogar den Unterschied ...)
Ausserdem hab ich noch eingebaut, das leere Zellen leer bleiben und nicht mit 0,00 gefüllt.
Nochmal danke an Matze für den Anstoß mit dem NumberFormat!
Sub MittelwertAusText()
Dim rCells As Range
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart 'Punkt durch Komma ersetzt
Selection.NumberFormat = "0.00" 'hier die Kommastellen anpassen
For Each rCells In Selection
If IsNumeric(rCells.Value) Then
If Not IsEmpty(rCells) Then rCells.Value = rCells.Value * 1
Else
rCells.Value = Application.WorksheetFunction.Average(VBA.Left(rCells.Value, Application. _
WorksheetFunction.Find("/", rCells.Value) - 1) * 1, VBA.Mid(rCells.Value, Application.WorksheetFunction.Find("/", rCells.Value) + 1, 99) * 1)
End If
Next rCells
End Sub

Anzeige
@Klaus,....Oder Andere wissende!
07.02.2013 16:39:40
Matze
hab da noch ne Rückfrage.
Was bewirkt das VBA. vor den Funktionen? bekomme in der Hilfe nichts darüber raus.
Matze

Siehe weiter oben, ...
07.02.2013 16:44:40
Luc:-?
…Matze!
Im Archiv!
Wurde früher schon oft vorgeschlagen – Quelle: Empirie!
Gruß Luc :-?

AW: Siehe weiter oben, ...
07.02.2013 17:43:29
Klaus
Hmm, Lustig ...
das ich hier immer VBA.xxx genommen habe, hat keinerlei kausalen Zusammenhang mit dem fehlenden VBA. in meinem anderen Beitrag. Ich hatte irgendwo mal aufgeschnappt, dass es kein "application.worksheetfunction.left()" gibt, weil es "left" bereits als Befehl gibt ... "VBA.left()". In diesem Fall habe ich VBA. einfach statt worksheetfunction. genutzt und nicht weiter drüber nachgedacht, weil es ja funktioniert hat.
Ich merke immer wieder, dass einem durch autodidaktisches Lernen in jeder Ebene immer wieder Grundlagen fehlen. Vielleicht sollte ich mal "VBA für Anfänger" an der Volkshochschule belegen ...
Grüße,
Klaus M.vdT.

Anzeige
OT: Na, das wird wohl kaum helfen, denn ...
07.02.2013 19:10:13
Luc:-?
…das hängt stark vom Stundenplan (Zeitfonds des Lehrgangs), Qualität/Wissen des Lehrers und Können/Wissen der anderen Teilnehmer ab, Klaus!
Vieles, was aus Empirie „geboren“ ist, wie zB Application.Match statt [Application.]WorksheetFunction.Match oder VBA.Left statt nur Left*, wird dort sicher nicht vermittelt (wohl auch nicht bei Fortgeschrittenen-Kursen, die meist ohnehin nicht wirklich zustandekommen). Dafür sind dann Foren (da kommt's sehr darauf an, wer gerade anwesend ist und antworten will!) und besonders ihre Archive gut geeignet. Allerdings wirst du da auch nicht alles° finden. Internationales Agieren vergrößert deine Chancen!
Was die Autodidaktik betrifft — da kommt's doch wohl sehr auf die Selbstorganisation und das Vorwissen an! Wer pgmieren mit VBA lernt, hat zwar den Vorteil, den der Basic-Kern der Sprache bildet (für andere mag das ein Nachteil sein, aber es lernt sich leichter), aber den generellen Nachteil, dass er die PgmierLogik (inkl ihrer Fachausdrücke!) erst erlernen muss. Und darauf sind auch Anfängerkurse jeder Pgmiersprache idR ausgerichtet. Beherrschst du diese Logik bereits, macht ein Anfängerkurs eh nicht viel Sinn.
* Auch das ist eine vbFkt, die nur Bestandteil einer Anweisung („Befehl“) sein kann.
° Bspw wirst du in dt-sprachigen Foren kaum eine voll praxistaugliche (automatische) VBA-Methode zum Feststellen des gezeigten Formats einer Zelle, also inkl möglicher Bedingt­Formatierung, finden, obwohl es sie gibt. So etwas lernt man in Lehrgängen eher nicht.

Gruß Luc :-?

Anzeige
AW: Versteh ich nicht
07.02.2013 14:41:38
Klaus
Hi Matze,
kommt bei mir genau das gleiche raus :-)
For Each rCells In Selection ' 'Punkt durch Komma ersetzt
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next rCells
'Eventuell die 2te Schlaufe sparen

Braucht keine Schleife,
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
alleine reicht schon.
Statt
rCells.NumberFormat = "0.00" 'hier die Kommastellen anpassen
würd ich ganz ans Ende einmal
selection.NumberFormat = "0.00" 'hier die Kommastellen anpassen
stellen, dann muss der Befehl nur 1-mal statt n-mal ausgeführt werden. Spart auf einem modernen Computer innerhalb von 100 Jahren bestimmt eine halbe Sekunde :-) aber aus Prinzip optimiert.
ob das Heinz hilft weiss ich nicht, da es bei mir ja schon vorher gut ging :-) Könnte aber der richtige Weg sein. Danke fürs Einspringen!
Grüße,
Klaus M.vdT.

Anzeige
AW: Versteh ich nicht
07.02.2013 14:46:21
Heinz
Hallo Klaus
ob das Heinz hilft weiss ich nicht
Ja, jetzt kommt bei mir das Ergebniss zB. 18,76 raus.
Ich bedanke mich nochmals recht herzlich bei dir.
Jetzt ist auch Kuchen essen drinnen.
Danke & Gruß Heinz

Zeitaufwändig...
07.02.2013 13:17:02
Marc
Hallo!
Kennst du die Möglichkeit, die Daten automatisiert in mehrere Spalten zu schreiben?
Bereich Markieren, Menü "Daten" - "Text in Spalten"
Von Hand wäre es natürlich zu aufwändig....
Gruß, MCO

AW: Zeitaufwändig...
07.02.2013 13:23:28
Heinz
Hallo Marc
Kennst du die Möglichkeit, die Daten automatisiert in mehrere Spalten zu schreiben?
Bereich Markieren, Menü "Daten" - "Text in Spalten"

Habe ich auch schon getestet,ebenfalls Zeitaufwendig.
Danke Heinz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige