2017-06-29 8 views
0

Ich habe für einige Stunden gesucht und ich konnte keine Lösung für dieses Problem finden.Summennummern in einer Zelle, die Zeilenumbruch enthält - Excel

See the image

Wie man auf dem Bild sehen kann ich 3 Spalten und 2 Zeilen. Mein Ziel ist es, die Kostenzeile zu summieren (Zeilenumbrüche) oder Geräte- und Kostenspalten in 3 kleinere Zeilen aufzuteilen. Ist das möglich?

+1

IMO sollten Sie die Abteilung beteiligt Reihen fusionieren und in getrennten Reihen Ausrüstung und Kosten zu halten; dann wird das trivial. https://superuser.com/questions/1022533/is-it-possible-to-sum-numbers-separated-with-newlines-using-a-formula – xQbert

Antwort

1

Leider gibt es keinen besonders sauberen Weg (meines Wissens). Hier sind ein paar Dinge, könnten Sie versuchen, obwohl:

Methode 1 - Arbeitsblatt Lösung

Wenn Ihre erste Kosten-Zelle ist in A1 dann den Cursor in die Zelle B1 setzen und einen neuen benannten Bereich mit dem folgenden erstellen formula:

=EVALUATE(SUBSTITUTE(A1,CHAR(10),"+")) 

Sie können dann den Namen des benannten Bereichs in Zelle B1 eingeben, und Sie erhalten die Summe wie erwartet. Leider müssen Sie dafür einen benannten Bereich erstellen, da EVALUATE nicht als Arbeitsblattfunktion verfügbar ist - nur eine benannte Bereichsfunktion und auch in VBA verfügbar.

Ich rief meinen benannten Bereich "eval". Sie können diese Formel nach unten ziehen und sie wird ausgefüllt, wobei immer die linke Zelle ausgewertet wird.

enter image description here


Methode 2 - VBA Lösung

können Sie einige einfache VBA verwenden. Fügen Sie diese in ein neues Modul und verwenden Sie dann diese Formel auf das Arbeitsblatt wie folgt aus:

=SumAlt(A1) 

kehren 600 in Ihrem Beispiel, wenn A1 Ihre enthaltenen 100 200 300

Function SumAlt(s As String) As Long 
    SumAlt = Evaluate(Replace(s, Chr(10), "+")) 
End Function 
+0

Wenn ich versuche, die erste Methode macht mich wachsam: That Funktion ist nicht gültig. Die zweite Methode funktioniert nicht, vielleicht weil ich auf Mac bin? –

+0

@StefanMarkovic, beide sollten auf einem Mac funktionieren. Ich habe den Verweis auf "Sheet1" in meiner ersten Formel entfernt, da dies möglicherweise nicht der Name Ihres Arbeitsblatts ist - versuchen Sie es vielleicht noch einmal. – CallumDA

1

So etwas wie dies in VBA funktioniert :

Function SumLines(ByVal str As String) As Long 

    Dim arr() As String 

    arr = Split(str, Chr(10)) 

    For a = 0 To UBound(arr) 
     SumLines = SumLines + CLng(arr(a)) 
    Next 

End Function 

dies wird jedoch nur funktionieren, wenn Sie andere beliebige Zeichen haben nicht als Ziffern und Chr (10) s (neue Linien).

Sie verwenden diese dann in Ihrem Arbeitsblatt, z.B .:

=SumLines(A1) 
+0

Das kommt Ihnen bekannt vor! ;) Ich würde keine Ganzzahl zurückgeben, da sie bei ~ 35k überlaufen würde – CallumDA

+0

Du hast Recht! Ich hatte keine Ahnung, dass die ganzen Zahlen in Excel so klein waren! Vielen Dank. –

Verwandte Themen