Zusammenfassen von Tabellenkalkulationsdaten, wenn eine Spalte "# N / A" enthält

10

Ich verwende Goggle Spreadsheet, um einige historische Bestandsdaten zu verarbeiten, und ich verwende eine Google-Funktion ( =googlefinance=…), um die historischen Schlusskurse für eine Aktie zu importieren. Dann arbeite ich weiter mit diesen Daten. In dieser Liste von Daten, die aus der =googlefinance=…Funktion generiert wurden , wird jedoch eine der Mengen als angezeigt #N/A. Ich weiß nicht warum, aber es passiert für verschiedene Symbole, die ich ausprobiert habe.

Wenn ich eine Max-Funktion für das Array verwende, die die N/AZeile enthält, liefert die Max-Funktion nur eine N/A, sodass N/Aalle weiteren Funktionen deaktiviert werden. Ich dachte, ich würde eine zweite Spalte rechts von den importierten Daten erstellen, in der ich ihr eine IFFunktion geben kann If ((A1 <0), "0", A1), mit der Erwartung, dass sie zurückkehren würde, 0wenn Zelle A1 die ist N/A, und den Zellenwert, wenn dies nicht der Fall ist N/A. Dies kehrt jedoch immer noch zurück N/A. Ich habe auch eine IS BLANKFunktion ausprobiert , aber das führte zum selben Ergebnis NA.

Hat jemand Vorschläge für eine Problemumgehung, um die N/Aaus einer Reihe von Zahlen zu entfernen, mit denen ich arbeiten möchte?


quelle
Der Titel handelt von "Summieren", aber dann sagen Sie "Wenn ich eine Max-Funktion für das Array verwende ...". Nur einer von ihnen kann Recht haben :)
Tanius

Antworten:

9

Als ich darauf stieß und dann herumfummelte, stellte ich fest, dass dies großartig funktioniert:

=sumif(A1:A20,"<>0")

Dies funktioniert auch dann, wenn innerhalb des Bereichs ungültige Werte vorhanden sind

Schlosser
quelle
6
Sollte in =sumif(A1:A20,"<>#N/A")diesen Tagen sein, siehe meine Antwort für Details.
Tanius
4

#N/AVerwenden Sie diese Formel, um Werte zusammenzufassen, die möglicherweise enthalten :

=sumif(A1:A20,"<>#N/A")

Details: Es scheint, dass in früheren Versionen von Google Sheets =sumif(A1:A20,"<>0")stattdessen wie in der Antwort von Lockzmith verwendet werden könnte . Google Sheets berücksichtigt dies jedoch #N/A<>0, sodass es nicht mehr funktioniert und zurückgegeben wird, #N/Awenn ein Teil der Summe vorhanden ist #N/A. Wie auch immer, hier ist die neue Art, die heutzutage funktioniert.

Tanius
quelle
3

Mit der isna(value)Funktion können Sie testen, ob googlefinancezurückgegeben wird N/A. Sie können dies in einer ifFunktion verwenden, um alles auszugeben, was Sie möchten, wenn N/Aes zurückgegeben wird.

Zum Beispiel:

=if(isna(googlefinance("DoesNotExist"; "price"),"NA returned",googlefinance("DoesNotExist"; "price")))

Oder dieses Beispiel:

ColA

CCLXXX
=googlefinance(A1; "price")
=if(isna(A2,"Not avail",A2))

Hier ist ein Screenshot der isnaArbeit in einer Google-Tabelle:

Geben Sie hier die Bildbeschreibung ein


quelle
1

Nehmen wir an, Ihre Werte befinden sich in Spalte A und einige enthalten N / A-Fehler. Tragen Sie dies in Spalte B ein:

=if(isna(A1),0,A1)

Wenn in Spalte A ein Fehler auftritt, wird 0 verwendet, andernfalls der Wert in A - dann können Sie in Spalte B max usw. ausführen.

Paul
quelle
iserrhat bei googlefinancemir nicht funktioniert , hat aber isnafunktioniert. Hast du das selbst versucht?
iserrSollte ein Fehler auftreten, konnte ich nicht mit Google Finance testen, um sicherzustellen, dass er übereinstimmt - ist aber isnagenauso geeignet.
Paul
Das Problem dabei iserrist, dass es das nicht als n/aFehler betrachtet. Siehe meine Antwort, die beides zeigt.
@HeatfanJohn Ah richtig. Danke, behoben.
Paul
0

Bitte versuche:

=ArrayFormula(max(if(not(iserror(A:A)),A:A)))
pnuts
quelle
0

Bin gestern auf dieses Problem gestoßen. Schließlich wurde mir klar, dass mein Datenbereich, auf den ich in der ursprünglichen Tabelle verwies, einige Fehlercodes enthielt, nicht nur Zahlen.

Wenn eine der Zellen im Tabellenkalkulationsbereich, auf die Sie verweisen (z. B. das A1:A100Teil in IMPORTRANGE("SpreadsheetURL","SheetName!A1:A100")), Fehler wie z

#NULL!
#DIV/0!
#VALUE!
#REF!
#NAME?
#NUM!
#N/A

Dann muss Ihre Formel SUMIF()wie folgt geändert werden

=SUMIF(IMPORTRANGE("SpreadsheetURL","SheetName!A1:A100"), ">0")

Dies stellt sicher, dass nur tatsächliche Zahlen und keine Fehlercodes hinzugefügt werden (was nur einen weiteren Fehler auslöst).

paulhastings0
quelle