Tableau Hide Null Values

//

There are three ways to hide Null values in Tableau:

  • Format
  • Filter
  • Formula

The first is to Format the nulls, second is to Filter out the null values, and third handling nulls with a Formula.

To begin, what is a null value? A Null in Tableau means there is no data in that field, it is unknown, a blank value.

Whether it’s better to handle null values with a Format, a Filter, or a Formula depends on the circumstances.

Format – Hide the Null values by Format Special Values

One of the simpler ways to remove null values in Tableau is to format them. This option isn’t always available, it only works for continuous (green pill) measures. This technique is recommended to remove nulls from a line chart.

Right-click on the Measure pill and select Format. In the format window, go to Pane and hopefully the Special Values will be there.

The Format - Special Values to hide nulls in Tableau
Hide Nulls in Tableau

Select Hide in the Special Values section of the pane to hide the Null values.

Filter – Remove Null values using a Filter

Filtering is another way to remove null values in Tableau.

The technique and suitability of this option differs slightly depending on whether the Null value is found in:

  • a discrete (blue) dimension – i.e. a Product field
  • a continuous (green) measure – i.e. SUM([Sales])

How to filter continuous (green) Null values

Put the continuous pill, for example SUM([Sales]), to the filter shelf. Filter out the null values using the Special section.

In the Special section of the filter you will see Non-null. Select ‘Non-null values’ and it will hide the null values. However this could inadvertently filter out some of the data you want including so be careful when using this.

Filter - Special to remove Null continuous values in Tableau

How to filter discrete (blue) values

To filter Null dimensions / discrete measures put the pill to the filter shelf and deselect Null. The Null value will appear in the list with discrete values where it is simple to remove.

Excluding nulls from a list of values in a dimension filter
Exclude Nulls and other values using a filer on a dimension

If applying this filter to a dimension be careful. Filtering out a dimension value will remove all records from the worksheet. For example, in a case where you’re also showing the totals, the totals would reduce by the amounts filtered out.

With a dimension, it may be better to use a formula to replace the Null values.

Formula – Handle Null values in Tableau using a Formula

There are three Tableau formulas specifically designed to handle Null values:

  1. ZN()
  2. IFNULL()
  3. ISNULL()

Let’s run through these in reverse order.

Replace Null with zero in Tableau – the ZN function

The Tableau ZN function converts Null numeric values to 0. Once your Null is zero, you’re able to format zero to dash, etc. Or just leave as 0, of course.

ZN only works with numbers – i.e. Integer, Float. Entering a String or Date field to ZN will cause an error. The syntax of ZN in Tableau is:

[ZN]: ZN([NumericField])

Converting Null to zero with ZN is very useful when aggregating, such as a SUM.

For example 3 + Null = Null.

Often it would be preferable for that sum to equal 3. Therefore the formula could change to 3 + ZN(Null), which calculates the same as 3 + 0.

When dealing with numbers ZN is great, it’s far simpler than delving into IFNULL statements or combining IF statements with ISNULL.

Handle Nulls using IFNULL in Tableau

The IFNULL function is a simple way to convert a Null value to something else. It works for numbers, string and dates.

The logic behind IFNULL is very simple. It checks if the field is null and, if it is null, converts it to what you specify.

However, the data type going into IFNULL has to match the data type coming out.

For example, if checking whether a number is null, the replacement has to be a number. Or if checking if a date is null the replacement value also has to be a date. Otherwise, it errors.

Tableau IFNULL with an integer

Following on from the ZN example, this also works to convert Null integers to 0. However it’s a longer way of writing ZN() so I don’t recommend you do this.

[IFNULL to 0]: IFNULL([NumericField],0)

Tableau IFNULL with a date

Remember the input and output have to be the same. Therefore the replacement value also has to be a date.

[IFNULL to 1 Jan]: IFNULL([DateField],#2020-01-01#)

This converts Null dates to the 1 Jan 2020.

Tableau IFNULL with a string

Replace a Null text value with any text you want.

[IFNULL to text]: IFNULL([TextField],"whatever text you want")

Tableau IFNULL to replace null values with values from another field

IFNULL can also substitute the null values in one field with the values from another field. For example, using date fields, replace the Null values in DateField with values from OtherDateField:

[IFNULL Replace Date]: IFNULL([DateField],[OtherDateField])

Another example, this time with strings, replace Null Country field values with the City value:

IFNULL([Country],[City])

Handle Nulls using ISNULL in Tableau

ISNULL differs to the other formulas. It only checks whether a value is Null. ISNULL doesn’t convert a Null to something else.

It is a Boolean function, it returns either True (it is null) or False (it is not null).

Usually this is used within an IF statement. In plain English, if a value is null then do something, else do something else:

IF ISNULL([Field]) THEN "Do something" ELSE "Do Something Else" END

It can be a long-winded way to write IFNULL or ZN:

IF ISNULL([NumericField]) THEN 0 ELSE [NumericField] END

A benefit of using ISNULL in an IF statement is additional flexibility. The example below would not work using IFNULL:

IF ISNULL([DateField]) THEN "No Date" ELSE LEFT(DATENAME('month',[DateField]),3) + "-" + STR(YEAR([DateField])) END

The above formula does the following:

When the date is null it shows the text “No Date”

When the data is not null it converts it to MMM-YYYY. Note it converts this date to string. The data types returned from this IF statement must be the same. As “No Date” is a string, the date also has to be a string.

Is Not Null in Tableau

Many software/programming languages use IS NULL and IS NOT NULL instead of the boolean ISNULL of Tableau.

For example, this is common for IS NULL (but doesn’t work in Tableau):

IF [FIELD] IS NULL THEN A ELSE B END

In Tableau this would be:

IF ISNULL([Field]) THEN A ELSE B END

To write IS NOT NULL in a Tableau calculated field means altering the order of those words to:

NOT ISNULL()

In other languages IS NOT NULL, is often written:

IF [FIELD] IS NOT NULL THEN A ELSE B END

In Tableau this “is not null” formula is:

IF NOT ISNULL([Field]) THEN A ELSE B END

How to count Nulls in Tableau

To count Nulls in Tableau, use ISNULL to convert each Null to True and each not null to False.

ISNULL returns either True or False. Wrapping a boolean in INT converts True to 1 and False to 0. Therefore, the formula to count nulls in Tableau is:

INT(ISNULL([Field]))

Sum that field to count the null values.

Replace Null with 0

NOT ISNULL() also works as an (unrecommended) alternative to ZN, to replace a Null value with a zero:

INT(NOT ISNULL([Field]))

This is useful where the business rules are more complicated than simply replacing all Null values with 0. For example, perhaps only those Nulls with a category of chairs should convert to 0:

INT(NOT ISNULL(IF [Category]="Chair" THEN [Field] ELSE something else END))

Wrapping up

There you have it, the main ways of handling null values in Tableau.

If the above isn’t enough for you, there are a number of other examples in this post on the Tableau site.

There you have it, the main ways of hiding null values in Tableau!

6 thoughts on “Tableau Hide Null Values”

  1. I have a viz that displays profit by regions N, S, W, E (rows) and product (columns). I set a filter on profit to only show profits less than zero, that is, losses. So within each region, I see either a graph that shows a loss or nothing when a region/product combination does not have a loss. That part works. The problem is that I have one region with no losses. This region does not display at all. I lose the information that there is a regions with no losses. Is there a way to get the region to display even though all values within it are filtered?

    Reply
    • I haven’t spent long looking at this but it could be something to do with filtering out the underlying data when what you actually want to do is only filter the data on display.

      When filtering a standard field the entire underlying dataset is filtered. When filtering a table calc only the data on display is filtered. From your brief description this could be the solution for your problem – convert your measure (profit/loss) into a table calculation and filter this new calculated field.

      Read this article on filtering table calculations for further details should you need them.

      If that doesn’t help please send me the workbook to look into this properly.

      Reply
  2. Hi ,

    Below is my query, I am executing the below query in tableau

    in below query if promo code is there for customer the it will populate as present, if not it will populate ‘not present’

    my question is that if no one has promo code then it will populate has blank in my bucket in tableau

    can any one help me on this how to get this possible

    SELECT loan_id,
    CASE
    WHEN lr.promo_code IS NULL THEN ‘Not Present’
    ELSE ‘Present’
    END AS promo_code_presence,

    FROM loan_request lr

    Reply

Leave a Reply to awatson Cancel reply