Wie vermeide ich das "# DIV / 0!" Fehler in der Google Docs-Tabelle?


76

Ich habe eine Spalte average(K23:M23), die damit beginnt, #DIV/0!wenn die K23Durchgangszellen M23leer sind. Am liebsten möchte ich nur den Durchschnitt der Zellen ermitteln, die Werte ungleich Null und nicht leer enthalten. Ich denke, es ist möglich mit dem Abfragebefehl:

https://docs.google.com/support/bin/answer.py?hl=de&answer=159999

Aber ihr Beispiel hilft mir nicht.


3
Gehört zu webapps.stackexchange.com.
Justin Niessner

1
Seltsam. 0/3 sollte 0 sein, kein Fehler beim Teilen durch Null.
Marc B

Antworten:


151

Wickeln Sie Ihre Formel mit IFERROR.

=IFERROR(yourformula)

6
Dies scheint die einfachste Antwort zu sein, obwohl ich mir wünschte, Google würde Funktionen hinzufügen, um nach bestimmten Arten von Fehlern zu suchen. Das Umschließen der Funktion in einen generischen IFERROR erschwert das Debuggen, wenn ein anderer Fehler auftritt.
Brionius

2
Dies bricht einige sehr grundlegende Prinzipien in Logik und Programmierung. Wenn Sie wissen, welchen Fehler / welche Ausnahme Sie vermeiden, sollten Sie dies explizit so behandeln. Die Antwort von Peregrination ist in diesem Sinne besser. Aber ich werde noch eine Antwort posten.
Suamere

3
Könnte helfen zu wissen, dass Sie einen Standardwert angeben können : =IFERROR(K23/M23, "Invalid data"). Quelle
rideron89

39

Sie können eine IF-Anweisung verwenden, um die referenzierten Zellen zu überprüfen und ein Ergebnis für Null oder Leer zurückzugeben. Andernfalls können Sie Ihr Formelergebnis zurückgeben.

Ein einfaches Beispiel:

=IF(B1=0;"";A1/B1)

Dies würde eine leere Zeichenfolge zurückgeben, wenn der Divisor B1 leer oder Null ist; Andernfalls wird das Ergebnis der Division von A1 durch B1 zurückgegeben.

Wenn Sie einen Durchschnitt ausführen, können Sie überprüfen, ob Ihr Datensatz einen Wert hat oder nicht:

=IF(SUM(K23:M23)=0;"";AVERAGE(K23:M23))

Wenn nichts oder nur Nullen eingegeben werden, wird eine leere Zeichenfolge zurückgegeben. Wenn ein oder mehrere Werte vorhanden sind, erhalten Sie den Durchschnitt.


Die Formel für AVERAGE hat in LibreOffice Calc perfekt für mich funktioniert.
RevNoah

3

Wenn Sie die vorhandene Formel in IFERROR einbinden, wird Folgendes nicht erreicht:

Der Durchschnitt der Zellen, die Werte ungleich Null und nicht leer enthalten.

Ich schlage vor, zu versuchen:

=if(ArrayFormula(isnumber(K23:M23)),AVERAGEIF(K23:M23,"<>0"),"")

Sehr froh, darauf gestoßen zu sein, danke! Ich wünschte, es wäre höher in den Antworten.
Pär Winzell

1

Da Sie explizit auch darum bitten, noch nicht ausgefüllte Spalten zu behandeln, und ich gehe davon aus, dass Sie sich auch nicht mit ihnen anlegen möchten, wenn sie ein Wort anstelle einer Zahl enthalten, sollten Sie Folgendes in Betracht ziehen:

=If(IsNumber(K23), If(K23 > 0, ........., 0), 0)

Dies sagt nur ... Wenn K23 eine Zahl ist; Und wenn diese Zahl größer als Null ist; Dann machen Sie etwas ......... Andernfalls geben Sie Null zurück.

In ......... können Sie Ihre Divisionsgleichung dort A1/K23einfügen , z. B. , und Sie können sicher sein, dass K23 eine Zahl ist, die größer als Null ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.