## Creating a waterfall chart

A waterfall chart is a type of bar chart used to show a whole value and the breakdown of that value into other subvalues, all in one chart. We can implement it in QlikView using the **Bar Offset** option.

In this example, we are going to demonstrate the chart showing a profit and loss breakdown.

### Getting ready

Load the following script:

LOAD * INLINE [ Category, Value Sales, 62000 COGS, 25000 Expenses, 27000 Tax, 3000 ];

### How to do it…

The following steps show you how to create a waterfall chart:

Create a new bar chart. There is no dimension in this chart. We need to add three expressions:

**Sales $**`Sum({<Category={'Sales'}>} Value)`

**COGS $**`Sum({<Category={'COGS'}>} Value)`

**Expenses $**`Sum({<Category={'Expenses'}>} Value)`

**Tax $**`Sum({<Category={'Tax'}>} Value)`

**Net Profit $**`Sum({<Category={'Sales'}>} Value)`

`-Sum({<Category={'COGS','Expenses','Tax'}>} Value)`

Once you have added the expressions, click on

**Finish**.Edit the properties of the chart. On the

**Expressions**tab, click on the + sign beside the**COGS $**expression. Click on the**Bar Offset**option. Enter the following expression into the**Definition**box:Sum({<Category={'Sales'}>} Value) -Sum({<Category={'COGS'}>} Value)

Repeat for the

**Expenses $**expression. Enter the following expression for the**Bar Offset**:Sum({<Category={'Sales'}>} Value) -Sum({<Category={'COGS', 'Expenses'}>} Value)

Repeat once more for the

**Tax $**expression. Enter the following expression for the bar offset:Sum({<Category={'Sales'}>} Value) -Sum({<Category={'COGS', 'Expenses', 'Tax'}>} Value)

Click on

**OK**to save the changes.The waterfall chart should look like the following screenshot:

### How it works…

The **Bar Offset** option for bar charts allows us to calculate the start position for each of the bars, other than the `0`

default value.

We use a `Set Analysis`

expression to easily calculate the values.

### There's more…

While this example is reasonably trivial, it is reflective of a real-life example and there are many others. Using `Set Analysis`

functions to calculate the value for the offset is very typical.