仅将数据标签添加到最后一个值

Ale*_*sky 5 charts microsoft-excel

所以我有一个多条线的折线图。像那样。 在此处输入图片说明

我想为每一行添加数据标签,但只添加到右侧的最后一个值。

我知道是否可以删除单个标签。但是当我向我的表中添加新值时,新值将出现一个新标签,这很好,但之前的我必须手动删除。有没有办法让标签自动向右移动?

在此处输入图片说明

Jon*_*ier 5

如果选择整个系列,Excel 会在该系列中的每个点上放置一个标签。

\n\n

仅选择您想要添加标签的单个点:单击一次以选择该系列,然后再次单击以选择一个点。现在,当您使用右键菜单或加号图标添加数据标签时,它将仅在您选择的一个点上添加标签。

\n\n

对于仅向最后一个点添加标签并且不会在图表中留下一堆“”标签的 VBA 方法,以下是我的教程《Excel 2007 的标签最后一个点》中的一个简单过程。它使用系列名称专门标记活动图表中每个系列的最后一个点。

\n\n
Sub LastPointLabel()\n  Dim mySrs As Series\n  Dim iPts As Long\n  Dim vYVals As Variant\n  Dim vXVals As Variant\n\n  If ActiveChart Is Nothing Then\n    MsgBox "Select a chart and try again.", vbExclamation\n  Else\n    Application.ScreenUpdating = False\n    For Each mySrs In ActiveChart.SeriesCollection\n      With mySrs\n        vYVals = .Values\n        vXVals = .XValues\n        \' clear existing labels\n        .HasDataLabels = False\n        For iPts = .Points.Count To 1 Step -1\n          If Not IsEmpty(vYVals(iPts)) And Not IsError(vYVals(iPts)) _\n              And Not IsEmpty(vXVals(iPts)) And Not IsError(vXVals(iPts)) Then\n            \' add label\n            mySrs.Points(iPts).ApplyDataLabels _\n                ShowSeriesName:=True, _\n                ShowCategoryName:=False, ShowValue:=False, _\n                AutoText:=True, LegendKey:=False\n            Exit For\n          End If\n        Next\n      End With\n    Next\n    \' legend is now unnecessary\n    ActiveChart.HasLegend = False\n    Application.ScreenUpdating = True\n  End If\nEnd Sub\n
Run Code Online (Sandbox Code Playgroud)\n\n

我写了很多关于这个的文章:

\n\n\n\n

此外,我的商业 Excel 图表软件包含此功能的更新版本。

\n


Jon*_*ier 5

在我的另一个答案中,我没有考虑移动最后一点(即添加的数据点)。调整数据以允许单个移动标签并不是什么大问题。

我只展示了一个数据系列,但一旦您掌握了窍门,就可以轻松完成所需的多个数据系列。在下面的数据集中,我有一个“日期”列和两个具有相同标题“值”的列。第一个值列的值一直到日期范围的中间。第二列有一个仅显示最后一个值的公式。这是单元格 C2 中的公式:

=IF(AND(ISNUMBER(B2),LEN(B3)=0),B2,NA())
Run Code Online (Sandbox Code Playgroud)

该公式被复制到该列中。

现在制作所有数据的图表。第一个值系列是蓝色圆圈和线条,第二个值系列只是最后一个蓝点上的橙色圆圈。我为橙色系列添加了标签,而不是蓝色系列。

第二个图表只是显示了它的清理情况:我已经格式化了第二个值系列,因此它不使用标记和线条,并且我删除了图例。

在此输入图像描述

在下一个图表中,我所做的只是添加几个数据点。无需我做任何进一步的努力,标签已移至新的最后一点。

在此输入图像描述