Why the Built‑in UI Only Updates One Series
Excel’s Data Label dialog applies changes to the currently selected series. In a stacked column, each segment is a separate series, so the dialog will only affect the series you click on. With dozens of series, you must select each one individually, which is impractical.
Manual Selection Shortcut
You can select every series at once by opening the Select Data dialog (Chart Design > Select Data), clicking the "Select All" button in the legend entries list, and then applying the Series Name option. This works for a few dozen series but becomes tedious when you have hundreds.
VBA: One‑Click Mass Update
A simple macro loops through all series in the active chart and turns on the Series Name label, turning off the value display. This updates every segment in a single click.
Sub ShowSeriesNames()
Dim ch As ChartObject
Dim s As Series
For Each ch In ActiveSheet.ChartObjects
For Each s In ch.Chart.SeriesCollection
With s.DataLabels
.ShowValue = False
.ShowSeriesName = True
.ShowCategoryName = False
.ShowLegendKey = False
.ShowPercentage = False
End With
Next s
Next ch
End Sub
Best Practices
1. Keep the chart’s legend visible to avoid confusion. 2. Use a consistent font and color for labels to improve readability. 3. Test the macro on a copy of your sheet to ensure it behaves as expected.
Takeaway: Use a short VBA loop to set DataLabels.ShowSeriesName = True for every series, instantly replacing all value labels with series names.
People also ask
Can I apply the Series Name option without VBA?
Yes, by selecting all series in the Select Data dialog and then choosing Series Name in the Data Label options.
Will this work in Excel 365 and older versions?
The VBA approach works in all Excel versions that support the DataLabels object; the manual method requires the Select Data dialog available from Excel 2007 onward.
Inspired by a public discussion on Stack Overflow. This article is an original explanation for learners.