我有一组自动生成的图表,我需要稍微调整一下。我的 Y 轴从 0 到 1000,但我有一些超出此范围的值。对于超过 1000 的值,我想在 1000 处绘制一个点,以提醒用户数据存在的事实。
一个期望的特性:如果可以根据单元格值(即大于 1000 的单元格值)更改单个数据点的格式,那就太棒了;这不是必需的,但它会使查看数据(近 100 个图表)变得更加容易。
谢谢!
您可以在散点图上实现此效果,方法是在现有系列超过 1000 且其他地方有空白处添加一个值为 1000 的新数据系列。必须对每个轴的值超过您设置的最大值执行此操作。
例如,这是一个小型数据集,如果散点图上的最大 Y 值设置为 10,则需要额外的数据系列。
当您将新的 Y 系列添加到图表时,您需要指定添加的 Y 系列范围和原始 X 系列范围。如果您希望图例表明新数据点的含义,请提供描述性系列名称,
这是图表的(略微)清理版本,其中设置了 Y 轴最大值和新数据点的图例条目。如果超过最大值的点在 X 轴上,您将经历类似的过程。
如果您使用宏来构建图表,您介意先使用宏向数据中添加其他列吗?你可以添加两个额外的列,第一列有这个简单的代码来调整你的一些数据:
ActiveCell.FormulaR1C1 = "= IF(RC[-1]>999, 1000,RC[-1])"
....then fill down
然后下一列有一个简单的数据点计数(稍后用于查找您正在修改的点):
Dim i as integer
Dim rng As Range
Set rng = Range("Your Range")
For Each Cell In rng
i = i + 1
cell.value = i
Next
现在像使用宏一样绘制图表,但现在您使用的是调整值列。并添加此格式化宏:
Dim rng As Range
Dim Point As String
Set rng = Range("c2:c9")
For Each Cell In rng
If Cell.Value > 999 Then
Point = Cell.Offset(0, 1).Value
ActiveSheet.ChartObjects("Your Chart").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Points(Point).Select
Selection.MarkerStyle = -4105
With Selection
.MarkerStyle = 2
.MarkerSize = 25
.MarkerColor = 'Your Color (could base this off of the degree that it is above 1k)
End With
End If
Next
这有点强化系统,但它会给你你需要的东西。
祝你好运。
-ZL