3k Aufrufe
Gefragt in Tabellenkalkulation von berpre Mitglied (452 Punkte)
Hallo Excel Freunde,

Mehrere einzelne Excelzellen H5 – M5 als eine Zelle berechnen
Ich habe in verschiedenen vorhandenen älteren Excel Tabellen die Aufgabe Gewichte zu addieren.

In der Zeile „ 5 „ sind die einzelnen Excelzellen H5, I5, J5, K5, L5, M5
In der Zeile „ 6 „ sind die einzelnen Excelzellen H6, I6, J6, K6, L6, M6
In der Zeile „ 7 „ sind die einzelnen Excelzellen H7, I7, J7, K7, L7, M7
bis
In der Zeile „ 20 „ sind die einzelnen Excelzellen H20, I20, J20, K20, L20, M20
Jede einzelne Zelle ist mit einer Zahl belegt.

In der Zeile „ 21 „ in den Zellen: H21 bis M21 soll das Ergebnis stehen.

Kann mir einer einen Tipp oder eine Lösung geben.

Gruß Berpre

9 Antworten

0 Punkte
Beantwortet von
hallo,

gesamten Bereich H5 bis L20 markieren und auf Symbol für AutoSumme klicken, dann erscheinen von H21 bis L21 die jeweiligen Summenergebnisse.

War es das was du wolltest?

MfG
0 Punkte
Beantwortet von berpre Mitglied (452 Punkte)
Hallo Zaehler,

War es das was du wolltest? Nein.

In den Excelzellen H5, I5, J5, K5, L5, M5 ist ein Gewicht angegeben
z.B. J5=3, K5=2,L5=6,M5=4 das heist: 326,4 Kg

In den Excelzellen H6, I6, J6, K6, L6, M6 ist ein Gewicht angegeben
z.B. J5=2, K5=1,L5=4,M5=8 das heist: 214,8 Kg

usw. bis zur Zeile 20

in der Zeile 21, in den Zellen: H21 bis M21 soll das Ergebnis
( 541,2 Kg ) stehen.

Gruß Berpre
0 Punkte
Beantwortet von
Hallo Berpre,

ob das nur mit Formel geht, weiß ich nicht, hab sowas in der Art noch nicht gebraucht.
Per VBA sicher möglich, aber da bin ich auch nicht firm drin. Gibt aber noch einige kompetente Excelfreaks hier im Supportnet.

MfG
0 Punkte
Beantwortet von nostalgiker6 Experte (7.1k Punkte)
Schau dir mal DIES an - mit ein paar Hilfsspalten geht es - aber einigermassen mühsam.
0 Punkte
Beantwortet von
Hallo nostalgiker,

Deine Lösung habe ich mir angesehen und konnte feststellen, dass mit Formeln nicht mehr herauszuholen ist (vielleicht mit VBA).

Texte kann man in Excel in Zellen aufteilen bzw. in eine Zelle vereinen, aber mit Zahlen scheint es ein Problem zu geben.

Was ich nicht verstehe ist, dass eine Zahl, die in einer Zelle bereits als Zahl formatiert steht beim Aufteilen in mehreren Spalten (oder umgekehrt) zum Text wird.

Dieser Umstand macht so manche Problemlösungen zur Schwerarbeit.

Es sollte nur eine Erkenntnis von mir sein nach einigen vergeblichen Versuchen Zahlen als Zahlen in der Form weiterzuverarbeiten.

Schöne Grüße

Paul1
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi paul :-)

vielleicht hilfreich :-))

zahlenisolierung
der index prüft linksbuendig

gruss nighty

z.b.
isoliert die erste zahl eines string linksbuendig
=SumZahlen(A2;1)

isoliert die zweite zahl eines string linksbuendig
=SumZahlen(A2;2)

usw.

Function SumZahlen(Zellen As Variant, IndexBlock As Integer) As String
Dim Zelle As Range
Dim Zeichen As Integer
Dim Schalter As Boolean
Dim ArrInd As Integer
ReDim ArrFeld(Len([Zellen])) As String
ArrInd = 1
Application.Volatile
If IndexBlock > Len([Zellen]) Then IndexBlock = Len([Zellen])
For Zeichen = 1 To Len([Zellen])
If Mid([Zellen], Zeichen, 1) Like "[0-9,.]" = True Then
ArrFeld(ArrInd) = ArrFeld(ArrInd) & Mid([Zellen], Zeichen, 1)
Schalter = True
End If
If Schalter = True And Mid([Zellen], Zeichen, 1) Like "[0-9,.]" = False Then
ArrInd = ArrInd + 1
Schalter = False
End If
Next Zeichen
SumZahlen = ArrFeld(IndexBlock)
End Function
0 Punkte
Beantwortet von
Hallo nighty,

Für Deine Antwort auf meine Antwort (obwohl ich nicht der Fragesteller bin) bedanke ich mich vorerst auf das Allerbeste.

Das muß ich mir in Ruhe ansehen und würde dann dazu auch Stellung nehmen.
Die Lösung von nostalgiker finde ich mit den zur Verfügung stehenden Möglichkeiten in Excel (Standard) ausgezeichnet.

Dieses Problem mit der Aufteilung von Zellinhalten (Zahlen) stellt sich aber immer wieder, solange Excel diesbezüglich nicht userfreundlich umprogrammiert wird.

Mich würde auch die Meinung vom Fragesteller interessieren, sonst sieht es vielleicht so aus, als würde man die Rechnung ohne den Wirt machen.

bis dahin
schöne Grüße

Paul1
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi paul und all :-)

hier noch ein wenig spielerei einer stringverarbeiten function,bei sehr guten kenntnissen der exceleigenen functionen wahrscheinlich auch ueberfluessig

zum ueben in vb war es allemale gut :-))

gruss nighty

Rem StrBe() ist eine string verarbeitenden function die anhand der eingestellten parameter die angegebenen bereiche addiert wie auch zusammenfuegt
Rem einsatzgebiete zur zahlen und texttrennung und oder addierung wie auch trennung von steuerzeichen
Rem StrBe(Bereich, Parameter 1,Parameter 2, Parameter 3 bis flexibles ende)
Rem Bereich=zellenangabe oder bereich
Rem parameter 1
Rem 0 fuer diese erlaubten zeichen ("0-9"),ergaenzend dazu das alle zahlen addiert werden bei 0
Rem 1 fuer diese erlaubten zeichen ("A-Za-zßÄäÖöÜü")
Rem 2 fuer diese erlaubten zeichen ("0-9,.A-Za-zßÄäÖöÜü")
Rem parameter 2
Rem 0=links beginnend
Rem 1=rechts beginnend
Rem parameter 3
Rem positionen der zeichenbloecke,auch gemischt darstellbar
Rem z.b.
Rem =StrBe(A1:A3;0;0;1;3)
Rem Paraneter sind A1:A3;0;0;1;3
Rem A1:A3 =Bereich
Rem 0=erlaubte zeichen ("0-9")
Rem 0=links beginnend
Rem 1=erste Zahlenblock
Rem 3=dritte Zahlenblock
Rem das ParamArray gestattet eine flexible Anzahl von Zahlenblöcken
Function StrBe(Zellen As Variant, ZahlText As Integer, LinksRechts As Boolean, ParamArray AnzBl() As Variant) As Variant
Application.Volatile
Dim schalter As Boolean
Dim ZeichenPos As Integer, ZeichenSammelnPos As Integer, ZeichenDurchlauf As Integer
Dim Modus As String
Dim Zelle As Range
If ZahlText = 0 Then Modus = "0-9"
If ZahlText = 1 Then Modus = "A-Za-zßÄäÖöÜü"
If ZahlText = 2 Then Modus = "0-9,.A-Za-zßÄäÖöÜü"
For Each bereich In Zellen
ReDim ZeichenSammeln(Len(Cells(bereich.Row, bereich.Column))) As String
For IndexArr = 0 To UBound(AnzBl())
ZeichenSammelnPos = 1
If AnzBl(IndexArr) > Len(Cells(bereich.Row, bereich.Column)) Then AnzBl(IndexArr) = Len(Cells(bereich.Row, bereich.Column))
If LinksRechts = False Then
For ZeichenPos = 1 To Len(Cells(bereich.Row, bereich.Column))
If Mid(Cells(bereich.Row, bereich.Column), ZeichenPos, 1) Like "[" & Modus & "]" = True Then
ZeichenSammeln(ZeichenSammelnPos) = ZeichenSammeln(ZeichenSammelnPos) & Mid(Cells(bereich.Row, bereich.Column), ZeichenPos, 1)
schalter = True
End If
If schalter = True And Mid(Cells(bereich.Row, bereich.Column), ZeichenPos, 1) Like "[" & Modus & "]" = False Then
ZeichenSammelnPos = ZeichenSammelnPos + 1
schalter = False
End If
Next ZeichenPos
Else
For ZeichenPos = Len(Cells(bereich.Row, bereich.Column)) To 1 Step -1
If Mid(Cells(bereich.Row, bereich.Column), ZeichenPos, 1) Like "[" & Modus & "]" = True Then
ZeichenSammeln(ZeichenSammelnPos) = Mid(Cells(bereich.Row, bereich.Column), ZeichenPos, 1) & ZeichenSammeln(ZeichenSammelnPos)
schalter = True
End If
If schalter = True And Mid(Cells(bereich.Row, bereich.Column), ZeichenPos, 1) Like "[" & Modus & "]" = False Then
ZeichenSammelnPos = ZeichenSammelnPos + 1
schalter = False
End If
Next ZeichenPos
End If
If ZahlText = 0 And AnzBl(0) = 0 Then
For ZeichenDurchlauf = 1 To UBound(ZeichenSammeln())
If ZeichenSammeln(ZeichenDurchlauf) = "" Then Exit For
StrBe = Val(StrBe) + Val(ZeichenSammeln(ZeichenDurchlauf))
Next ZeichenDurchlauf
Exit For
End If
If ZahlText = 0 And AnzBl(0) > 0 Then StrBe = Val(StrBe) + Val(ZeichenSammeln(AnzBl(IndexArr)))
If ZahlText = 1 And AnzBl(0) = 0 Or ZahlText = 2 And AnzBl(0) = 0 Then
For ZeichenDurchlauf = 1 To UBound(ZeichenSammeln())
If ZeichenSammeln(ZeichenDurchlauf) = "" Then Exit For
StrBe = StrBe + ZeichenSammeln(ZeichenDurchlauf)
Next ZeichenDurchlauf
Exit For
End If
If ZahlText = 1 And AnzBl(0) > 0 Or ZahlText = 2 And AnzBl(0) > 0 Then StrBe = StrBe + ZeichenSammeln(AnzBl(IndexArr))
For ZeichenDurchlauf = 1 To UBound(ZeichenSammeln())
ZeichenSammeln(ZeichenDurchlauf) = ""
Next ZeichenDurchlauf
schalter = False
ZeichenSammelnPos = 0
Next IndexArr
Next bereich
End Function
0 Punkte
Beantwortet von berpre Mitglied (452 Punkte)
Hallo nostalgiker6,
Hallo Paul1,
Hallo nighty,

Die ersten Versuche hatte ich mit Hilfsspalten versucht, was recht mühsam ist, wie auch " nostalgiker6 " festgestellt hat.

" Paul1 " Mich würde auch die Meinung vom Fragesteller interessieren, sonst sieht es vielleicht so aus, als würde man die Rechnung ohne den Wirt machen.
Paul, nach 23 Jahren der Abstinenz in der Programierarbeit (Fortran, Pascal ), wobei von VBA ich zwar gehört, dies aber nie erlernt habe, jetzt im ruhigen Farwasser VBA Neu erlernen will.
So gehe ich doch selbstbewust an das Neue heran.

Ich bin erstaunt darüber, wie Ihr an dieser Aufgabenstellung herangeht. Jede Neue Aufgabensituation stellt eine Herausforderung dar, die gelöst werden will.

Ich kann Paul nur zustimmen, dass die Probleme mit der Aufteilung von Zellinhalten ( Zahlen ) nicht Userfreundlich programmiert ist.

So bin ich seit ca. 4 Wochen an dieser Aufgabenstellung dabei, diese unter Hilfen von Fachbüchern, Googeln usw. zu lösen.

Ich möchte mich bei Euch für die bis jetzt gegebene Unterstützung bedanken.

Gruß Berpre
...