Wie summiere ich einen Zellbereich mit N / A-Werten?

89512
Nam G VU

Ich habe einen Bereich und muss ihn mit der SUMME-Funktion summieren, aber das Ergebnis ist N / A, wenn ein N / A-Wert vorhanden ist. Wie kann ich die SUM-Funktion so einrichten, dass der N / A-Wert als 0-Wert behandelt wird? Bitte helfen

11

7 Antworten auf die Frage

15
wilson

Verwenden Sie die Array-Formel

=SUM(IF(ISNA(A1:A4),0,A1:A4)) 

Drücken Sie nach der Eingabe der Formel Ctrl+ Shift+Enter

Hinweis: Ersetzen Sie A1:A4durch Ihren Bereich

+1: Eine schöne Verbesserung meiner Lösung - keine Änderung der Originaldaten. Mike Fitzpatrick vor 14 Jahren 1
Nett. Ich habe nie daran gedacht, eine Array-Formel zu verwenden. Ich war zufrieden mit der Verwendung von = SUMIF (A1: A4, "<> # N / A"), bis ich herausfand, dass es bricht, wenn die Kalkulationstabelle in einer für eine andere Sprache lokalisierten Version von Excel geöffnet wird! Das Ersetzen von "<> # N / A" durch "ISNA ()" funktioniert leider nicht, aber die Matrixformel ist eine schöne mehrsprachige Lösung. Leider ist es für AVERAGEIF () kein geeigneter Ansatz für dieselbe Herausforderung… :-( Joe Carroll vor 10 Jahren 1
@JoeCarroll können Sie `= AVERAGE (IF (ISNA (A1: A4)," ", A1: A4))` verwenden wilson vor 10 Jahren 0
Danke @wilson! Als ich kurz darüber nachdachte, dachte ich nicht daran, "" anstelle von Null zu verwenden, dumm von mir :-) Die Verwendung von Null beeinflusst natürlich die Probengröße, was mich dazu veranlasst hat, die Lösung zu verwerfen, aber leere Zellen werden einfach ignoriert. Joe Carroll vor 10 Jahren 0
Funktioniert nicht mit dem magischen Cr @ pXcel 2013, aber die Antwort unten (= Aggregat) funktioniert wie ein Zauber! vor 8 Jahren 0
Mark, stimmen Sie zu, dass `= aggregate (...)` eine elegantere Lösung für Excel 2010 und höher ist. Übrigens, ich habe nur Office 2010/2003 zur Hand, deshalb kann ich die Array-Formel 2013 nicht testen. wilson vor 8 Jahren 0
@wilson Ich wünschte, ich hätte 2013 auch nicht, aber es ist corp.policy :) Es scheint, als würden Formeln funktionieren * wie * Interpreter (die Definition ist auf der Tech-Ebene falsch, ich weiß ...), wenn Sie also etwas sagen Wie "SUMME A1: Axe IF A1: Axe [Bedingung] ..." stoppt Excel die Verarbeitung beim 1. Treffer und ignoriert, dass Sie einen Bereich SUMMEN möchten, nicht "SUM den ersten gültigen Eintrag" (bei sich selbst?). Merkwürdig und hässlich. vor 8 Jahren 0
5
JNK

Der einfachste Weg:

Verwenden Sie SUMIFden Wert> 0.

Die Syntax für diese ist also

=SUMIF(A1:B2, "> 0")

Sie erhalten dasselbe Ergebnis, da nicht numerische oder 0-Werte ignoriert werden.

Ihr Vorschlag funktioniert nicht mit negativen Zahlen. Danke trotzdem. Nam G VU vor 14 Jahren 2
Könnte `= SUMIF (A1: B2,"> = 0 ") + SUMIF (A1: B2," <0 ")` machen, um negative Zahlen aufzunehmen. Ich vermute, das wäre schneller als die akzeptierte Arrayformellösung, wenn die Leistung ein Problem darstellt. kizzx2 vor 11 Jahren 1
3
Muhammad Wajid Raza

Es gibt eine neue Funktion in Excel, die alle positiven oder negativen Werte hinzufügt und NA ignoriert.

=aggregate(9,6, range of your data) 

9 wird für die Summe verwendet, während 6 für das Ignorieren aller NAs verwendet wird. Neben dem Zusatz gibt es noch andere Optionen. Sie können beispielsweise Produkte, Standardabweichungen usw. erstellen.

Weitere Informationen zu AGGREGATE hier .

elegante Lösung für Excel ab 2010 :) wilson vor 8 Jahren 0
0
variant

Verwenden Sie stattdessen SUBTOTAL:

=SUBTOTAL(9,A1:A50) 
Ich versuche "sumtotal", aber ich habe das gleiche Problem wie mit "sum" fguillen vor 9 Jahren 0
0
Mike Fitzpatrick

Sie können die # N / A in Nullen in Ihrem Quellbereich umwandeln und dann die normale SUM-Funktion verwenden:

= IF (ISNA (OriginalFormula), 0, OriginalFormula) 
Seit Office 2007 gibt es die neue Funktion "IFERROR", die dann wie folgt aussehen kann: "= IFERROR (OriginalFormula, 0)" macht es viel schöner. Michael vor 12 Jahren 1
@agentmike, stimmte zu, ich benutze es heutzutage häufig. Mike Fitzpatrick vor 12 Jahren 0
0
cynthia

Wenn es Formeln gibt, die ich als Zahlen kopieren würde, ersetzen Sie # N / A in der Spalte durch 0 und addieren Sie dann wie üblich

-1
Bruno

So scheint es zu funktionieren:

SUMIF(range;"<>#N/A";range) 

Nicht so robust, aber effektiv!