مارتین دارای یک کاربرگ شامل 50 ردیف داده است که هر ردیف یک شی را توصیف می کند. ستون A شامل نام شیء، ستون B شامل مختصات X و ستون C شامل مختصات Y است. هنگامی که او یک نمودار پراکنده XY (ستون B در مقابل ستون C) ایجاد می کند، نتیجه، همانطور که می خواهید، نموداری است که آرایه ای از نقاط را نشان می دهد که مکان اشیاء را نشان می دهد. با این حال، به نظر می رسد مارتین نمی تواند نقاط داده را با نام فردی آنها (از ستون A) برچسب گذاری کند. هنگامی که او سعی می کند نقاط داده را برچسب گذاری کند، تنها گزینه های موجود این است که هر نقطه را با مقدار X، مقدار Y یا نام سری برچسب گذاری کند. مارتین به این فکر می کند که آیا راهی وجود دارد که بتواند به راحتی از ستون A برای برچسب گذاری نقاط داده ترسیم شده استفاده کند.
این را می توان به صورت دستی انجام داد، اما در بهترین حالت خسته کننده است. برای 50 ردیف به سرعت بی رحمانه خواهد بود، بنابراین بهتر است به یک رویکرد کلان گرا نگاه کنید. یک ایده این است که از یک ماکرو مشابه زیر استفاده کنید، که از نقاط داده در نمودار XY عبور می کند و مقادیر برچسب را از ستون A می خواند.
Sub DataLabelsFromRange()
Dim Cht As Chart
Dim i, ptcnt As Integer
Set Cht = ActiveSheet.ChartObjects(1).Chart
On Error Resume Next
Cht.SeriesCollection(1).ApplyDataLabels _
Type:=xlDataLabelsShowValue, _
AutoText:=True, _
LegendKey:=False
ptcnt = Cht.SeriesCollection(1).Points.Count
For i = 1 To ptcnt
Cht.SeriesCollection(1).Points(i).DataLabel.Text = _
ActiveSheet.Cells(i + 1, 1).Value
Next i
End Sub
ماکرو فرض می کند که ردیف اول کاربرگ حاوی اطلاعات هدر است و داده های واقعی از ردیف 2 شروع می شود. (این رویکرد ماکرو در واقع تغییری از یک ماکرو است که در صفحات 570-571 کتاب John Walkenbachs Excel 2003 Power Programming with VBA یافت می شود. علیرغم عنوان کتاب، ماکرو هنوز با نسخه های بعدی اکسل به خوبی کار می کند.)
یک رویکرد غیرماکرو نسبتا منحصر به فرد، استفاده از فرمت های سفارشی اکسل است. تنها کاری که باید انجام دهید این است که مجموعه ای از قالب های سفارشی را تنظیم کنید که فقط حاوی متنی باشد که می خواهید نمایش داده شود. به عنوان مثال، اگر مقادیر Age، 15 و 23 را در سلول های A3 تا C3 دارید، می توانید سلول های B3 یا C3 را برای نمایش کلمه "Age" فرمت کنید، حتی اگر مقدار به ترتیب 15 یا 23 باقی بماند. فقط "سن" (از جمله علامت نقل قول) را برای قالب سفارشی برای سلول وارد کنید. سپس نمودار را برای نمایش برچسب برای مقدار X یا Y فرمت کنید.
وقتی این کار را انجام می دهید، مقادیر محور X نمودار احتمالاً به هر نام قالب (یعنی سن) تغییر می کنند. با این حال، پس از قالب بندی محور X به عدد (بدون رقم بعد از اعشار در این مورد) به جای عمومی، نمودار باید به درستی نمایش داده شود.
بدیهی است که اجرای این رویکرد همچنان کمی زمان می برد که شما مجموعه ای از قالب های سفارشی را برای هر مقدار در سری داده خود اعمال می کنید. اگر نمی خواهید با نوشتن و آزمایش ماکروهای خود یا ایجاد دسته ای از قالب های سفارشی مشکلی نداشته باشید، همیشه می توانید به افزونه های نوشته شده توسط دیگران روی بیاورید. Microsoft MVP Rob Bovey یک افزونه عالی (رایگان) برای اکسل ایجاد کرده است که شامل یک ویژگی برچسب گذاری XY در میان چندین ویژگی دیگر است. از این آدرس قابل دانلود است:
http://www.appspro.com/Utilities/ChartLabeler.htm