*The tutorial shows 3 different techniques to plot a histogram in Excel - using the special Histogram tool of Analysis ToolPak, FREQUENCY or COUNTIFS function, and PivotChart.*

While everyone knows how easy it is to create a chart in Excel, making a histogram usually raises a bunch of questions. In fact, in the recent versions of Excel 2019, 2016, Excel 2013, and Excel 2010, creating a histogram is a matter of minutes and can be done in a variety of ways - by using the special Histogram tool of the Analysis ToolPak, formulas or the old good PivotTable. Further on in this tutorial, you will find the detailed explanation of each method.

Wikipedia defines a histogram in the following way: "*Histogram is a graphical representation of the distribution of numerical data.*" Absolutely true, and… totally unclear :) Well, let's think about histograms in another way.

Have you ever made a bar or column chart to represent some numerical data? I bet everyone has. A histogram is a specific use of a column chart where each column represents the frequency of elements in a certain range. In other words, a histogram graphically displays the number of elements within the consecutive non-overlapping intervals, or *bins*.

For example, you can make a histogram to display the number of days with a temperature between 61-65, 66-70, 71-75, etc. degrees, the number of sales with amounts between $100-$199, $200-$299, $300-$399, the number of students with test scores between 41-60, 61-80, 81-100, and so on.

The following screenshot gives an idea of how an Excel histogram can look like:

The Analysis ToolPak is a Microsoft Excel data analysis add-in, available in all modern versions of Excel beginning with Excel 2007. However, this add-in is not loaded automatically on Excel start, so you would need to load it first.

To add the Data Analysis add-in to your Excel, perform the following steps:

- In Excel 2010, Excel 2013, Excel 2016, and Excel 2019, click
*File*>*Options*. In Excel 2007, click the Microsoft Office button, and then click*Excel Options*. - In the
*Excel Options*dialog, click*Add-Ins*on the left sidebar, select**Excel Add-ins**in the*Manage box*, and click the*Go*button.

- In the
*Add-Ins*dialog box, check the**Analysis ToolPak**box, and click*OK*to close the dialog.If Excel shows a message that the Analysis ToolPak is not currently installed on your computer, click

*Yes*to install it.

Now, the Analysis ToolPak is loaded in your Excel, and its command is available in the *Analysis* group on the *Data* tab.

Before creating a histogram chart, there is one more preparation to make - add the bins in a separate column.

**Bins** are numbers that represent the intervals into which you want to group the source data (input data). The intervals must be consecutive, non-overlapping and usually equal size.

Excel's *Histogram* tool includes the input data values in bins based on the following logic:

- A value is included in a certain bin if it is greater than the lowest bound and equal to or less than the greatest bound for that bin.
- If your input data contain any values greater than the highest bin, all such numbers will be included in the
*More category*. - If you do not specify the bin range, Excel will create a set of evenly distributed bins between the minimum and maximum values of your input data range.

Considering the above, type the bin numbers that you want to use in a separate column. The bins must be entered in **ascending order**, and your Excel histogram bin range should be limited to the input data range.

In this example, we have order numbers in column A and estimated delivery in column B. In our Excel histogram, we want to display the number of items delivered in 1-5 days, 6-10 days, 11-15 days, 16-20 days and over 20 days. So, in column D, we enter the bin range from 5 to 20 with an increment of 5 as shown in the below screenshot:

With the Analysis ToolPak enabled and bins specified, perform the following steps to create a histogram in your Excel sheet:

- On the
*Data*tab, in the*Analysis*group, click the**Data Analysis**button.

- In the
*Data Analysis*dialog, select**Histogram**and click*OK*.

- In the
*Histogram*dialog window, do the following:- Specify the
**Input range**and the**Bin range**.To do this, you can place the cursor in the box, and then simply select the corresponding range on your worksheet using the mouse. Alternatively, you can click the

*Collapse Dialog*button , select the range on the sheet, and then click the*Collapse Dialog*button again to return to the*Histogram*dialog box.**Tip.**If you included column headers when selecting the input data and bin range, select the**Labels**check box. - Select the
**Output options**.To place the histogram on the same sheet, click

*Output Range*, and then enter the upper-left cell of the output table.To paste the output table and histogram in a new sheet or a new workbook, select

*New Worksheet Ply*or*New Workbook*, respectively.Finally, choose any of the additional options:

- To present data in the output table in descending order of frequency, select the
**Pareto**(sorted histogram) box. - To include a cumulative percentage line in your Excel histogram chart, select the
**Cumulative Percentage**box. - To create an embedded histogram chart, select the
**Chart Output**box.

- To present data in the output table in descending order of frequency, select the

For this example, I've configured the following options:

- Specify the
- And now, click
*OK*, and review the output table and histogram graph:

As you've just seen, it's very easy to make a histogram in Excel using the Analysis ToolPak. However, this method has a significant limitation - the embedded histogram chart is **static**, meaning that you will need to create a new histogram every time the input data is changed.

To make an **automatically updatable** **histogram**, you can either use Excel functions or build a PivotTable as demonstrated below.

Another way to create a histogram in Excel is using the FREQUENCY or COUNTIFS function. The biggest advantage of this approach is that you won't have to re-do your histogram with each change in the input data. Like a normal Excel chart, your histogram will **update automatically** as soon as you edit, add new or delete existing input values.

To begin with, arrange your source data in one column (column B in this example), and enter the bin numbers in another column (column D), like in the screenshot below:

Now, we will use a Frequency or Countifs formula to calculate how many values fall into the specified ranges (bins), and then, we will draw a histogram based on that summary data.

The most obvious function to create a histogram in Excel is the FREQUENCY function that returns the number of values that fall within specific ranges, ignoring text values and blank cells.

The FREQUENCY function has the following syntax:

FREQUENCY(data_array, bins_array)

- Data_array - a set of values for which you want to count frequencies.
- Bins_array - an array of bins for grouping the values.

In this example, the data_array is B2:B40, bin array is D2:D8, so we get the following formula:

`=FREQUENCY(B2:B40,D2:D8)`

Please keep in mind that FREQUENCY is a very specific function, so follow these rules to make it work right:

- An Excel Frequency formula should be entered as a
**multi-cell array formula**. First, select a range of adjacent cells where you want to output the frequencies, then type the formula in the formula bar, and press Ctrl + Shift + Enter to complete it. - It's recommended to enter one more Frequency formula than the number of bins. The extra cell is required to display the count of values above the highest bin. For the sake of clarity, you can label it "
*More*" like in the following screenshot (but don't include that "*More*" cell in your bins_array!):

Like the *Histogram* option of the Analysis ToolPak, the Excel FREQUENCY function returns values that are greater than a previous bin and less than or equal to a given bin. The last Frequency formula (in cell E9) returns the number of values greater than the highest bin (i.e. the number of delivery days over 35).

To make things easier to understand, the following screenshot shows the bins (column D), corresponding intervals (column C), and computed frequencies (column E):

Another function that can help you calculate frequency distributions to plot histogram in Excel is COUNTIFS. And in this case, you will need to use 3 different formulas:

- The formula for the first cell -
**top bin**(F2 in the screenshot below):

`=COUNTIFS($B$2:$B$40,"<="&$D2)`

The formula counts how many values in column B are less than the smallest bin in cell D2, i.e. returns the number of items delivered within 1-5 days.

- The formula for the last cell -
**over the highest bin**(F9 in the screenshot below):

`=COUNTIFS($B$2:$B$100,">"&$D8)`

The formula counts how many values in column B are greater than the highest bin in D8.

- The formula for remaining bins (cells F3:F8 in the screenshot below):

`=COUNTIFS($B$2:$B$40,">"&$D2,$B$2:$B$40,"<="&$D3)`

The formula counts the number of values in column B that are greater than the bin in the above row and less than or equal to the bin in the same row.

As you see, the FREQUENCY and COUNTIFS functions return identical results:

"What is the reason of using three different formulas instead of one?" you may ask me. Basically, you get rid of the multi-cell array formula and can add and delete bins easily.

`=FREQUENCY(B2:B1000,D2:D8)`

Now that you have a list of frequency distributions computed with either FREQUENCY or COUNTIFS function, create a usual bar chart - select the frequencies, switch to the *Insert* tab and click the 2-D Column chart in the *Charts* group:

The bar graph will be immediately inserted in your sheet:

Generally speaking, you already have a histogram for your input data, though it definitely requires a few improvements. Most importantly, to make your Excel histogram easy to understand, you need to replace the default labels of the horizontal axis represented by serial numbers with your bin numbers or ranges.

The easiest way is to type the **ranges** in a column left to the column with the Frequency formula, select both columns - *Ranges* and *Frequencies* - and then create a bar chart. The ranges will be automatically used for the X axis labels, as shown in the below screenshot:

If there is no way you can type the desired histogram labels on your sheet, then you can enter them directly on the chart, independently of the worksheet data. The final part of this tutorial explains how to do this, and shows a couple of other improvements that can be made to your Excel histogram.

As you may have noticed in the two previous examples, the most time-consuming part of creating a histogram in Excel is calculating the number of items within each bin. Once the source data has been grouped, an Excel histogram chart is fairly easy to draw.

As you probably know, one of the fastest ways to automatically summarize data in Excel is a PivotTable. So, let's get to it and plot a histogram for the *Delivery* data (column B):

To create a pivot table, go to the *Insert* tab > *Tables* group, and click **PivotTable**. And then, move the *Delivery* field to the ROWS area, and the other field (*Order no.* in this example) to the VALUES area, as shown in the below screenshot.

If you have not dealt with Excel pivot tables yet, you may find this tutorial helpful: Excel PivotTable tutorial for beginners.

By default, numeric fields in a PivotTable are summed, and so is our *Order numbers* column, which makes absolutely no sense :) Anyway, because for a histogram we need a count rather than sum, right-click any order number cell, and select *Summarize Values By* > **Count**.

Now, your updated PivotTable should look like this:

The next step is to create the intervals, or bins. For this, we will be using the *Grouping* option. Right-click any cell under *Row Labels* in your pivot table, and select **Group**…

In the *Grouping* dialog box, specify the starting and ending values (usually Excel enters the minimum and maximum value automatically based on your data), and type the desired increment (interval length) in the *By* box.

In this example, the minimum delivery time is 1 day, maximum - 40 days, and the increment is set to 5 days:

Click OK, and your pivot table will display the intervals as specified:

One final step is left - draw a histogram. To do this, simply create a column pivot chart by clicking the **PivotChart** on the *Analyze* tab in *PivotTable Tools* group:

And the default column PivotChart will appear in your sheet straight away:

And now, polish up your histogram with a couple of finishing touches:

- Delete the legend by clicking the
*Chart Elements*button and removing the tick from the*Legend*Or, select the legend on the histogram and press the*Delete*key on your keyboard. - Replace the default
*Total*title with something more meaningful. - Optionally, choose another chart style in the
*Chart Styles*group on the*PivotChart Tools*>*Design*tab. - Remove the chart buttons by clicking
**Field Buttons**on the*PivotChart Tools*>*Analyze*tab, in the*Show/Hide*group:

Additionally, you may want to achieve a conventional histogram look where **bars touch each other**. And you will find the detailed guidance on how to do this in the next and final part of this tutorial.

Whether you create a histogram using the Analysis ToolPak, Excel functions or a PivotChart, you might often want to customize the default chart to your liking. We have a special tutorial about Excel charts that explains how to modify the chart title, legend, axes titles, change the chart colors, layout and style. And here, we will discuss a couple of major customizations specific to an Excel histogram.

When creating a histogram in Excel with the Analysis ToolPak, Excel adds the horizontal axis labels based on the bin numbers that you specify. But what if, on your Excel histogram graph, you want to display ranges instead of bin numbers? For this, you'd need to change the horizontal axis labels by performing these steps:

- Right-click the category labels in the X axis, and click
**Select Data…**

- On the right-hand side pane, under
*Horizontal (Category) Axis Labels*, click the**Edit**button.

- In the
*Axis label range*box, enter the labels you want to display, separated by commas. If you are entering the**intervals**, enclose them in double quotes like in the following screenshot:

- Click OK. Done!

When making a histogram in Excel, people often expect adjacent columns to touch each other, without any gaps. This is an easy thing to fix. To eliminate empty space between the bars, just follow these steps:

- Select the bars, right-click, and choose
**Format Data Series…**

- On the Format Data Series pane, set the
*Gap Width*to zero:

And voila, you have plotted an Excel histogram with bars touching each other:

And then, you can embellish your Excel histogram further by modifying the chart title, axes titles, and changing the chart style or colors. For example, your final histogram may look something like this:

This is how you draw a histogram in Excel. For better understanding of the examples discussed in this tutorial, you can download the sample Excel Histogram sheet with source data and histogram charts. I thank you for reading and hope to see you on our blog next week.

Excel formulas
Excel functions
Vlookup in Excel
Merge data in Excel
SumIf
Excel CountIf
Excel Compare
Excel If statement
Excel Charts
Pivot Table
Updates
Excel conditional formatting
Excel formatting
Excel time
Excel duplicates
Excel date
Excel tips
Excel macro
Outlook
Google Sheets
Outlook duplicates
Outlook templates

## 15 Responses to "How to create a histogram chart in Excel 2019, 2016, 2013 and 2010"

Thanks so much! Very helpful during a last minute attempt to draw histograms for a dataset on Excel.

Thanks for giving such a good knowledge about 'Histogram' now i am looking for to present my work info. using Histogram..

Thanks so much for making this step by step chart. I was trying to use a histogram on my entire dataset but the bins were all over the place. Your help makes it produce the graph as exactly what was needed. Thanks much!!

please how can someone plot a histogram chart of one column against another column.

and if one is plotting it from column B against column D

Perfect explanation of histograms created from a frequency table that already exists. The only problem is that I want to create a polygon at the same time without having to insert a duplicate column of the frequency.

Trying to customize a statistical histogram chart on one column of data. I want to set the range of the histogram bins, have the ticks labeled instead of the bins and want to set the left of the axis to zero. How do I do this customization?

This women is great, I have read many articles of her and all of them are easily explained and detailed. Thanks for sharing your knowledge !!

Hi Team,

Kindly let me know why there is difference in frequency created by data analysis tool and frequency created by frequency formula. why it it is not same as data analysis tool

Impressive detail. I learned a lot.

Thanks for this post. I found it easier to do the COUNTIFS version by using just COUNTIFS($H$3:$H$26,"<="&$B3) for all rows (cumulative histogram), then making another column where I calculated the histogram values as C3-C2, C4-C3, etc.

impressive summary i got something thanks

Thank you for this post. This is very useful.

Thank you for the detailed explanation, it is really helpful!

This is an excellent tutorial but I have to make a note from my experience. Up to version 2013 (and I suspect in later versions too), the FREQUENCY function and Data Analysis > Histogram produce the same results but these can actually be wrong in the case that the data used are results of calculations. That's because both methods use the binary representation of the numbers and this can cause those that are equal to a bin, to be included to the next range. For example, if the result of a calculation that you see in a cell e.g. B2, is 1.89 (no matter how many decimals you display), it is possible that the actual number used in making the histogram will be e.g. 1.890000000000000222044604925031 and you can see the difference between the two numbers with =B2-ROUND(B2,2)-0. If 1.89 is a bin, then the number should be included in the respective range but instead it is included in the next. One way to get around this is to round the results (e.g. =ROUND(B2,2)) before using them. Note also that simple coping and pasting as numbers has no effect. Another way is to use the functions COUNTIF, COUNTIFS or a pivot table instead which don't have this problem.