Free calculator

Frequency Distribution Table Maker

Paste raw data and get a complete frequency table: classes or single values, tally marks, midpoints, relative, percent and cumulative frequency, ready to copy into Excel or Word.

  • Tally marks
  • Relative & cumulative
  • Copy to Excel
  • Free

Your data

25 numbers

Table options

Show classes as

Frequency distribution table

ClassTallyFrequencyMidpointRelativePercentCumulativeCumulative %
50–59||254.50.088%28%
60–69||||564.50.220%728%
70–79|||||||874.50.3232%1560%
80–89||||||784.50.2828%2288%
90–99|||394.50.1212%25100%
Total251100%

About these classes

Draw this table as a histogram →

How to make a frequency distribution table by hand

  1. Find the range: largest value minus smallest value.
  2. Choose the number of classes (5–15) and divide the range by it. Round the result up to a convenient class width. The class width calculator does this step.
  3. Write the classes, starting at or just below the smallest value: 50–59, 60–69, 70–79…
  4. Tally each value into its class, then count the tallies to get the frequency.
  5. Add columns for relative frequency (f ÷ n), percent and cumulative frequency, and check the total.

Example

25 test scores from 55 to 95, grouped with class width 10:

ScoreFrequencyRelativeCumulative
50–5920.082
60–6950.207
70–7980.3215
80–8970.2822
90–9930.1225

This is the “Test scores” example above. From the table, 15 of 25 students (60%) scored below 80, and the 70s are the modal class.

Next steps

Common mistakes to avoid

  • Overlapping classes. With classes like 50–60 and 60–70, decide which class gets 60 and stick to it. Limits like 50–59, 60–69 avoid the problem for whole numbers.
  • Unequal class widths. Keep widths equal unless you have a good reason, and then use density when you draw it.
  • Too many or too few classes. Aim for 5–15 classes.
  • A total that doesn’t match n. Always check that the frequencies add up to the number of values.

Do it in other software

SoftwareHow
Excel=FREQUENCY(data, upper_limits), or =COUNTIFS(data, ">="&lo, data, "<"&hi) for each class. A PivotTable with grouped rows also works.
Google Sheets=FREQUENCY(data, upper_limits) or =COUNTIFS.
Pythonpd.cut(df["x"], bins=range(50, 101, 10), right=False).value_counts().sort_index()

Related tools: Histogram Maker, Class Width Calculator, Grouped Data Calculator, Ogive Maker and Descriptive Statistics Calculator.

Frequently asked questions

What is a frequency distribution table?

A table that lists each value, or each class (range of values), together with how many times it occurs. Extra columns often show relative frequency (the share of the total), percent and cumulative frequency (the running total).

Grouped or ungrouped frequency table?

Use an ungrouped table ('Each value') when there are only a few different values, such as shoe sizes or the number of pets. Use a grouped table (classes) when the data has many different values, such as heights or test scores.

How many classes should I use?

Usually between 5 and 15. Sturges' rule (log₂ n + 1) is a good starting point, and the class width calculator works it out for you. Prefer round class widths like 5 or 10.

What is the difference between class limits and class boundaries?

Class limits are the smallest and largest values that can go in a class, such as 50–59 for whole numbers. Class boundaries sit halfway between classes (49.5–59.5) so that classes meet without gaps. Histograms use the boundaries.

How do I calculate relative and cumulative frequency?

Relative frequency = class frequency ÷ total. Cumulative frequency = the class frequency plus all the frequencies above it in the table. The last cumulative frequency always equals the total.

Related tools