Dies kann mit einer Formel erfolgen:
=SUMPRODUCT(--TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),(ROW($A$1:INDEX(A:A,LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1))-1)*99+1,99)))
Dies teilt sich auf ,
und iteriert die Teile und summiert sie.
Ich habe mir ähnliche Fragen dazu angeschaut, konnte aber keine exakte Lösung für mein Problem finden. Wenn es ein Duplikat gibt, das dieses Problem lösen kann, werde ich diese Frage schließen.
In Zelle A1 könnte ich eine Zeichenfolge haben, die immer aus einer Zahl, einem Komma, einer Nummer usw. besteht.
Es kann mehrere Nummern geben, immer durch Komma getrennt.
Zum Beispiel:
12,12,10,10
oder
12,12,1
In Zelle B1 würde ich gerne die Zahlen summieren, also würde ich ein Ergebnis von 44
oder erhalten 25
.
Wie kann ich das erreichen?
Das Einzige, was ich mir vorstellen konnte, war die Verwendung von Text to Columns, aber dies macht die Struktur der Arbeitsmappe irgendwie durcheinander, da mehr Spalten verwendet werden müssen. Ich hoffte auf eine Formel, die ich einfach in B1 eingeben und wenn möglich nach unten ziehen konnte.
Ich habe keine Ahnung, wie ich damit anfangen soll
Fügen Sie den folgenden Code in das Modulfenster ein:
Public Function ParseAndSum(source As String) As Integer Dim tmp() As String, i As Integer tmp = Split(source, ",") For i = LBound(tmp) To UBound(tmp) ParseAndSum = ParseAndSum + Val(tmp(i)) Next i End Function
Schließen Sie den VBA-Editor.
Das ist alles.
PS. Vergessen Sie nicht, die Ausführung von Makros in den Excel-Einstellungen zu aktivieren.
Eine andere Art und Weise, wie dies herkömmlich beantwortet wird, ist die Verwendung eines Befehls aus dem "alten" Excel 4-Makrosatz.
Sie MÜSSEN diese Befehle in benannten Bereichen (oder auch Makros) verwenden. Normalerweise suchen die Leute jedoch nach einer Lösung ohne Makros.
Diese Lösung hat zwei Aspekte. Der erste ist, wie man die Grundlagen macht:
(Ihre Daten befinden sich in Zelle A1, und Ihr Ergebnis würde sich in der gewünschten Zelle in B1 befinden.)
Richten Sie einen benannten Bereich ein (möglicherweise als "Ergebnis" bezeichnet). Gib es die Formel:
=EVALUATE(SUBSTITUTE(A1,",","+"))
Verwenden Sie dann den benannten Bereich in der Formel in Zelle B1: = Ergebnis
In der Formel wird SUBSTITUTE () "normal" verwendet, um die Kommas für die Pluszeichen zu ändern, die für die Funktion von EVALUATE () erforderlich sind. EVALUATE () ist der Excel 4-Makrobefehl, der genau das tut: alles auswerten, was es als Formel erkennt (deshalb müssen die Kommas ersetzt werden).
Der Grund, warum es in einer Named Range verwendet werden muss, ist etwas mysteriös. Sie funktionieren nicht direkt in die Zellen der Tabelle. Sie werden in echten Makros arbeiten. Der Gedanke wäre also, dass Named Ranges von Excel als eine Version (eine "Lite-Version", um sicherzugehen) von Makros betrachtet werden muss, deren Arbeit von der Makro-Engine ausgeführt wird, nicht als Blattberechnungs-Engine.
Der zweite Aspekt ist, wie man die Formel dazu bringt, sich auf "die Zelle unmittelbar links von der Zelle zu beziehen, in der ich das Ergebnis haben möchte" ...
Markieren Sie Zelle A2 und geben Sie die Formel wie oben ein. Geben Sie die Formel ein (Kopieren und Einfügen, geben Sie, wie Sie möchten) und speichern Sie sie. Überprüfen Sie die Formel, nachdem der benannte Bereich festgelegt wurde, und stellen Sie sicher, dass für die Zellenreferenz kein "$" vorhanden ist (Sie möchten "A1", NICHT eine Version von "$ A $ 1").
Alles bereit. Jetzt, wo sich in Ihrem Arbeitsblatt befindet, bezieht sich das "= Ergebnis" auf die Zelle, die sich unmittelbar links befindet. Kopieren Sie es in die B-Spalte oder was auch immer nützlich sein könnte, und es wirkt sich auf die Zelle links vom Inhalt aus.
Sie müssen den zweiten Teil richtig machen, aber es ist einfach, oder?
Suchen Sie nach Excel 4-Makrobefehlen, und Sie werden das gesamte Handbuch zur Verfügung haben, etwa 600 Seiten davon. Hier befinden sich einige Juwelen, obwohl uns einige davon in den letzten Jahren in neuen Funktionen zur Verfügung gestellt wurden.