SPARKLINE renders a small in-cell chart from a range of values — a column visualization that fits inside a single cell, perfect for dashboards where you want a glance-able trend next to a metric. This tutorial covers the column variant specifically, including the option pairs that control color, axis behaviour, and edge cases.

Basic column sparkline

=SPARKLINE(B2:M2, {"charttype", "column"; "color1", "#0F7B5A"})

SPARKLINE takes a data range and an options array. The options are key/value pairs in a 2-column array literal. The most useful keys are charttype (line, bar, column, winloss), color1 through color4, negcolor, min, max, and axis. Set the row height taller (40–60px) and the cell will render the chart at a usable size.

column-specific options

For the column variant, the colour and axis options matter most. color1 sets the foreground; for column and winloss charts, negcolor sets the colour of negative values; highcolor, lowcolor, firstcolor, and lastcolor let you spotlight specific points. axis TRUE draws a baseline at zero, which is essential for any chart that mixes positive and negative values.

Pairing with conditional formatting

Spark charts work brilliantly alongside conditional formatting. Put the metric in column A, the SPARKLINE in column B, and a conditional-formatted delta-vs-target in column C. The eye scans the metric, then the trend, then the status — three layers of information in three columns. Resist the temptation to fit too much into a single sparkline; if you need axes and gridlines, build a real chart.

Worked example: 12-month metric strip

Lay out months across columns C through N. Put the metric name in B and the SPARKLINE in O: =SPARKLINE(C2:N2, {"charttype","column";"color1","#0F7B5A";"axis",TRUE}). Copy down for every metric. Resize the row to 50px and the column to 200px and you have a clean executive-summary table.

Worked examples

Trend line

=SPARKLINE(B2:M2, {"charttype","line";"color1","#0F7B5A"})

Line is the default if you omit charttype.

Win/loss strip

=SPARKLINE(B2:M2, {"charttype","winloss";"color1","#0F7B5A";"negcolor","#A4365A"})

Each value renders as up or down — handy for trade results or daily sales targets.

Bar with target reference

=SPARKLINE(B2, {"charttype","bar";"max", 100; "color1", "#0F7B5A"})

A single-value bar that fills proportionally to a defined max — great for percent-of-target.

Common mistakes (and how to avoid them)

  • Forgetting to set the row height. The sparkline still renders at default size and looks cramped.
  • Using too narrow a range for a meaningful trend. SPARKLINE needs at least 6–8 data points to read as a trend rather than noise.
  • Mixing units (percentages and absolute numbers) in the same sparkline. Build two side by side instead.
  • Not setting axis TRUE when the data crosses zero — without the baseline the chart misleads.

Tips that pay off later

  • Put the options array in a named range or a hidden cell so styling stays consistent across many sparklines.
  • Combine SPARKLINE with TEXT() in adjacent cells to surface the underlying number alongside the chart.
  • Set min and max manually when comparing several sparklines — auto-scaling makes them visually inconsistent.

When to reach for something else

When you need axes, gridlines, or a legend, SPARKLINE is the wrong tool — use a real chart and shrink it instead.

Functions used in this tutorial