2017-11-13 2 views
1

Ich habe meine Tableau-Arbeitsmappe und ich zähle derzeit durch ein Feld namens ID - COUNT ([Id]) - während das ist toll, an Tagen ohne Aktivität zeigt mein Armaturenbrett nichts und ich möchte, dass es null zeigt, wenn es keine Aktivität gab - also ändere ich das, um zu zählen, aber auch null durch 0 (null) zu ersetzen?Tableau isNull dann 0 berechnet Feld

Antwort

3

Zuerst stellen Sie sicher, dass Sie verstehen, was Count ([ID]) tut. Es gibt die Anzahl Datensätze in der Datenquelle zurück, die einen Wert ungleich null in der Spalte [ID] haben.

Count() wird nie als null ausgewertet. Wenn Sie jedoch nach der Filterung in Ihren Daten überhaupt keine Zeilen mehr haben, erhalten Sie eine leere Ergebnismenge - d. H., Dass die Ansichtsdaten überhaupt keine zusammenfassenden Daten zeigen - egal ob null oder null.

Wrapping COUNT() in einem Aufruf von ISNULL() oder ZN() wird in diesem Fall nicht helfen.

Die Lösung besteht darin, sicherzustellen, dass Sie mindestens eine Datenzeile pro Tag haben, auch wenn alle anderen Felder neben dem Datum null sind. Aggregationsfunktionen ignorieren Nullen, daher sollte das Auffüllen Ihrer Daten Ihre Ergebnisse nicht stören. Die einfachste Möglichkeit besteht darin, eine Kalendertabelle mit einer Zeile pro Tag mit Nullwerten in den meisten Spalten zu erstellen. Verwenden Sie dann eine Union, um den Kalender mit Ihrer ursprünglichen Datenquelle zu kombinieren. Dann gibt Count (ID) an Tagen, an denen außer dem Kalendereintrag keine weiteren Datensätze vorhanden sind, Null zurück.

Sie können auch ähnliche Ergebnisse mit Daten mischen, obwohl mit ein bisschen mehr Komplexität.

+0

Die einfachste Möglichkeit besteht darin, eine Kalendertabelle mit einer Zeile pro Tag mit Nullwerten in den meisten Spalten zu erstellen. Verwenden Sie dann eine Union, um den Kalender mit Ihrer ursprünglichen Datenquelle zu kombinieren. Dann gibt Count (ID) an Tagen, an denen außer dem Kalendereintrag keine weiteren Datensätze vorhanden sind, Null zurück. --- Gibt es eine Möglichkeit für Tableau, diese "Tabelle" zu erstellen, ohne dass ich in der DB anlegen muss? – Tony

+1

Nicht wirklich. Sie können on-fly zur Abfragezeit mithilfe von benutzerdefinierten SQL-Anweisungen je nach Datenquelle erstellen oder sie zu einer statischen Liste zusammenführen. – tyvich