Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1588to1592
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

Alle Zahlen innerhalb einer Zelle addieren

Alle Zahlen innerhalb einer Zelle addieren
14.11.2017 12:58:24
Alex
Hallo ihr lieben Helfende,
ich such jetzt schon eine Ewigkeit und finde keine passende Lösung.
Folgendes Problem:
In Zelle A1 steht folgender Text:
"Peter 100 Ralf 15 Werner 1038,50 Silvia 3" usw...
In B1 hätte ich gerne die Summe ALLER Zahlen dieser Zelle, in diesem Fall also 1156,50, stehen.
Nun meine Fragen:
1. Geht das ohne VBA?
2. Wenn nein, wie? :-)
Jetzt schon vielen Dank für Eure Hilfe
Viele Grüße
Alex

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Für dieses Beispiel
14.11.2017 13:06:30
Fennek

Sub iFen()
Ar = Split(Cells(1, 1))
For i = 0 To UBound(Ar)
Ar(i) = Replace(Ar(i), ",", ".")
S = S + Val(Ar(i))
Next i
Debug.Print S
End Sub

Und, wenn es keine Leerzeichen gibt ?
14.11.2017 13:26:03
WF
.
Aber in der Aufgabe sind doch welche.
14.11.2017 14:14:58
lupo1
Oder hast Du statt 32er etwa 160er entdeckt? Das habe ich nun nicht kontrolliert.
Und wenn keine Leerzeichen (32), sondern z.B. ";", dann ersetzt man halt das erste " " damit.
...Dann könnte halt zusätzlich die UDF 'MaskOn' …
14.11.2017 18:21:26
Luc:-?
…benutzt wdn, Walter;
anschließd sind im Text dann garantiert welche! ;-]
Für den Text Peter=100, Ralf=15, Werner=1038,50, Silvia=3 lautete die Fml dann so: {=SUMME(WENNFEHLER(--GLÄTTEN(
TEIL(WECHSELN(MaskOn(A7;"zw");" ";WIEDERHOLEN(" ";999));SPALTE(A$1:Z$1)*999-998;999));0))}
Und siehe da, ihr Ergebnis wäre ebenfalls 1156,50!
Gruß, Luc :-?
Anzeige
MaskOn war vor 3 Tagen am 11.11.
14.11.2017 18:57:16
WF
.
Sicher, und das 1.Argument ist ja bei Dir klar, …
15.11.2017 00:52:25
Luc:-?
…Walter,
Düsseldorfer. Fragt sich dann nur noch, wie das 2. und ggf 3. lautet. Sagen wir mal das 2. würde Bremer lauten, dann käme es ganz auf das 3. an. Würde das fehlen oder 0 sein, wärst Du Teil des Ergebnisses, wäre es 1, würdest Du vom närrischen Treiben ausgeschlossen wdn…
Na, wie lautet das 3.Argument nun in Deinem speziellen Fall…‽ ;-)
Morrn, Luc :-?
AW: Alle Zahlen innerhalb einer Zelle addieren
14.11.2017 13:11:23
Rudi
Hallo,
Matrixformel
{=SUMME(WENNFEHLER(--GLÄTTEN(TEIL(WECHSELN(A1;" ";WIEDERHOLEN(" ";999));SPALTE(A1:Z1)*999-998;999)); 0)) }
Gruß
Rudi
AW: Alle Zahlen innerhalb einer Zelle addieren
14.11.2017 13:12:42
Ralf
Hi Alex,
1. schon möglich, aber wahrscheinlich echt aufwändig.
2. so:
Public Function addTextTeile(t As Range) As Double
Dim a, var, summe As Double
a = Split(t, " ")
For Each var In a
If IsNumeric(var) Then summe = summe + CDbl(var)
Next
addTextTeile = summe
End Function
Aufruf dann so in einer beliebigen Zelle: =addTextTeile(A1)
AW: Alle Zahlen innerhalb einer Zelle addieren
14.11.2017 13:12:42
Daniel
Hi
ohne VBA könnte es so gehen, das ist dann allerdings statisch, dh der Vorrang müsste wiederholt werden, wenn sich der Zellwert ändert:
1. führe mit der Spalte A die Aktion DATEN - DATENTOOLS - TEXT IN SPALTEN aus, mit dem Leerzeichen als Trennzeichen. Gib ggf im Schritt 3 die Zelle B1 als Ziel ein, damit die Ausgangswerte nicht überschrieben werden.
Dabei wird jedes Wort in eine neue Zelle in der gleichen Zeile geschrieben (der Platz sollte vorhanden sein)
die Zahlen aus dem Text werden dabei in echte Zahlen umgewandelt.
2. Bilde die Summe über die Zeile 1 bzw die neu entstandenen Zellen.
in der Funktion SUMME stören die Texte in den Zwischenzellen nicht.
Mit VBA kannst du das über folgende benutzerdefinierte Funktion lösen.
1. kopiere diesen Code in ein allgemeines Modul der Tabelle:
Function SummeAusText(txt As String) As Double
Dim x
For Each x In Split(txt, " ")
If IsNumeric(x) Then SummeAusText = SummeAusText + CDbl(x)
Next
End Function

2. Schreibe in die Zelle B1 die Formel: =SummeAusText(A1)

Gruß Daniel
Anzeige
AW: Alle Zahlen innerhalb einer Zelle addieren
14.11.2017 13:29:16
Alex
Hallo,
vielen lieben Dank für die ultraschnellen Antworten. Ich weiß jetzt nicht welche Lösungen alle funktionierten. Ich habe Daniels Lösung genommen und die funzt perfekt!!
Vielen Dank und Gruß
Alex
Es fktionieren alle und auch die folgenden 3 ...
14.11.2017 13:45:48
Luc:-?
…Varianten, Alex,
die ebenfalls UDFs (eigene Funktionen) benutzen, aber nicht so speziell ausgelegt sind wie Daniels und deshalb einen hohen Wiederverwendungswert (in ähnlichen Zusammenhängen) haben:
=TxEval(WECHSELN(WECHSELN(MaskOn(A1;"zw");" ";"+");",";"."))
Oder kürzer:
=SUMME(VSplit(MaskOn(A1;"nv");;1))
Und noch kürzer:
=SUMME(VSplit(A1;;1))
Links zu den UDF-Pgmm:
MaskOn (Vs2.1) https://www.herber.de/cgi-bin/callthread.pl?index=1344962#1345181
TxEval (Vs1.0) https://www.herber.de/forum/archiv/1476to1480/1476498_Projektplan.html#1477400
VSplit (Vs1.1) https://www.herber.de/bbs/user/99024.xlsm (BspDatei mit UDFs)
Feedback nicht unerwünscht! Gruß, Luc :-?
„Die Intelligenz ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
Schade, wo ich der einzige ohne VBA war
14.11.2017 14:26:35
lupo1
{=SUMME(WENNFEHLER(--TEIL(WECHSELN(A1;" ";WIEDERHOLEN(" ";99));ZEILE($1:$19)*99-98;99);0)) } mit Nr. 5
Aber es wird ja immer das Vorgekauteste genommen.
AW: Schade, wo ich der einzige ohne VBA war
14.11.2017 14:31:12
Alex
Hallo,
ich hatte den letzten Beitrag am einfachsten kapiert, somit habe ich den gleich genommen und ausprobiert. Dir natürlich auch vielen Dank für deine Bemühungen. Jetzt weiß ich zumindest wie man eine Matrixformel eingibt.
Gruß Alex
du warst nicht der einzige ohne VBA, sondern
14.11.2017 14:34:45
Daniel
nur der einzige mit einer reinen Formellösung
Gruß Daniel
Deine "güldet" nicht
14.11.2017 14:46:30
lupo1
erstens warst Du 5 Minuten später
zweitens mit umständlichen Prozeduren und Hilfszellen und
drittens mit VBA als Alternative
nee, nee.
Anzeige
och menno
14.11.2017 15:55:29
Daniel
darf man jetzt keine zwei Lösungsvarianten gleichzeitg vorstellen?
btw, was ist an TEXT IN SPALTEN jetzt umständlich?
Die Formellösung ist ja nur dann für einen Anfänger "einfach" wenn er die Formel einfach kopiert ohne sie verstehen zu wollen.
Gruß Daniel
Dann dürfte bespielsweise neopa ...
14.11.2017 18:41:44
lupo1
Die Formellösung ist ja nur dann für einen Anfänger "einfach" wenn er die Formel einfach kopiert ohne sie verstehen zu wollen.
... mit den AGGREGAT-Formeln kaum noch antworten. Es geht nun mal nicht alles gleichzeitig: Einfach, ohne Hilfszellen und schnell. Aber ich bin am nahesten dran.
Bevor es jetzt ein Daniel-Thread wird: Ich lasse Dir lieber gleich ausdrücklich das letzte Wort, denn das lässt Du Dir ja eh nicht nehmen.
Anzeige
oT AW: ist teilweise Ansichtssache ...
14.11.2017 19:26:50
...
Hallo Lupo,
... was z.B. einfach ist und was nicht.
Aber bzgl. Einsatzmöglichkeiten der Funktionen AGGREGAT() und WIEDERHOLEN() in Formellösungen ist erstere wohl unbestritten der zweiten um Längen voraus.
Gruß Werner
.. , - ...
AW: Warum sollte NEOPA dann nicht mehr
14.11.2017 20:30:37
Daniel
antworten drüfen?
nur weils nicht einfach ist?
natürlich kann man auch komplizierte Antworten posten, aber man sollte eben auch aktzeptieren, wenn einfachere Lösungen geboten werden.
btw, in einer vernünftigen Diskussion sollten die letzten relevanten Worte (wenn man vom Höflichkeitsgelplänkel mal absieht) eigentlich so was sein:
"Stimmt du hast recht, deine Argumente haben mich überzeugt".
Wundert mich also nicht, dass ihr nicht diejeinigen sein möchtet, die unbedingt das letzte Wort haben wollen.
Anzeige
Dann mache ich das mal (wg letztem Satz)!
15.11.2017 01:52:54
Luc:-?
Höflichkeit muss man besitzen und sich im Gegenzug auch verdienen, Daniel!
Eine einfache Lösung mit Bordmitteln kann auch sehr sinnvoll sein, vor allem dann, wenn der Daten­Umfang nicht allzu groß und die Sache eilig ist. Anderen­falls könnte aber auch eine halbe Stunde Arbeit + 10min Pgm­Lauf­zeit einer Arbeit von meh­reren Tagen ggüber­stehen…
Aber darum ging's Lupo hier ja nicht! Er hatte primär doch nur bedauert, dass - wie so oft - nur die letzte AW/Lö­sung vom Frage­Steller g/benutzt wird (und dabei seine raffi­nierte ohne VBA unter den Tisch fällt), wobei ja offen blieb, welches von deinen Ange­boten er nun tat­sächlich ver­wendet hat! Aber wenig­stens hat er sich überhpt zu den Lösungen geäußert und zumindest den Erstel­ler der von ihm verwendeten Lösung genannt. Das ist ja oft auch nicht mal der Fall.
Falls es doch die UDF war, weißt du ja, was ich von solchen Trivial-UDFs halte. Xl hat ja schon eine Summen­Fkt, folg­lich muss man kei­ner­lei spezielle Summen­Fktt dazu erfin­den, sondern nur das ergänzen, was in Xl fehlt → hier die Iso­lation der Zahlen­werte aus einem Text. Das kann man mit Stan­dard­Metho­den bzw -Fktt tun oder UDFs schrei­ben/benut­zen, die das erle­digen. Damit ergänzt man den großen Xl-Baukasten um weitere Steine, nicht gleich komplette Häuser (die hier kaum die „Anwen­dungs­Freund­lich­keit“ einer einfachen Xl-Logik-Fkt wie UND/ODER hätten).
Und das mit dem RechtHaben (wollen) ist ja nun wirklich eher deine Domäne. Ansonsten gilt stets nur, man hat recht (mitunter auch zT) oder eben nicht, aber beides muss bewiesen, nicht nur behauptet wdn (wie weiland im WENN-Fall), soweit es machbar ist (gewisse Speku­la­tionen müssen auch in Wissen­schafts­disziplinen [auch IT] erlaubt sein, quasi wissen­schaft­liches brain­storming). Unbewiesene oder gar falsche Behauptungen sind eher in Gesell­schaft(s­wissen­schaften), Poli­tik und Medien üblich, aber auch die ver­folgen meist einen bestimm­ten Zweck (neu­deutsch fake news).
Übrigens, in antiken und wohl auch mittelalterlichen Argumentations- und Rededuellen trug derjenige den Sieg davon, der das letzte Wort hatte, so aberwitzig seine Argumente auch sein mochten…
🙈 🙉 🙊 🐵 Gruß, Luc :-?
„Die Intelligenz ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige