Hi, I've had similar problems. In order to reasonably add unique labels to
data points, I found the easiest way was just to code a macro that would
create a new series for each point (don't worry, I've included the code), and
then you can choose to display all data labels as their series names or else
you can choose select points and have only their labels show up. (That
should be pretty straight forward, just right click and format data labels,
make sure you select series name for the labels).
As far as reformatting all the individual plots, you could make your life a
lot simpler if you record a macro to do it for you, especially if all your
plots look the same. Make sure you have the chart in question selected.
Then just go to tools, record new macro, then give it some sweet name and hit
ok. It will record all of your key strokes. Do everything like you would
normally do and then at the end hit stop. The next time that you have a
chart, select it, go to tools, macros, and play your macro. It will take
care of all the formatting for you.
Now, the code for data labels (note this makes all the points blue diamonds.
That shouldn't be too hard to change if you just learn a little visual
basic). First create an xy scatter chart in the same sheet as your data, but
don't add any series (it'll prompt you for those later), just hit finish.
Then run the macro LabelPoints
Sub LabelPoints()
'
'
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
Dim myXValues As Range
Dim myYValues As Range
Dim myNameValues As Range
Set myXValues = Application.InputBox(prompt:="Range of X Values?",
Type:=8)
Set myYValues = Application.InputBox(prompt:="Range of Y Values?",
Type:=8)
Set myNameValues = Application.InputBox(prompt:="Range of Labels?",
Type:=8)
For i = 1 To 20
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(i).XValues = myXValues(i)
ActiveChart.SeriesCollection(i).Values = myYValues(i)
ActiveChart.SeriesCollection(i).Name = myNameValues(i)
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
With Selection
.MarkerBackgroundColorIndex = 25
.MarkerForegroundColorIndex = 25
.MarkerStyle = xlDiamond
.Smooth = False
.MarkerSize = 5
.Shadow = False
End With
Next
End Sub
Just put this into a new module in Visual Basic and it should work pretty
well.