我正在创建很多图表,因此我制作了一个通用比例,以便能够使用我在图表中隐藏为单独系列的 MAX/MIN 值来比较它们。我的垂直轴 (Y) 以 5 为单位。
问题是,如果我的最大值是 27.5,那么图表中的比例将是 35,而不是 30。它总是会增加额外的 5。我的数据范围(和空间)要求我保持紧凑,因此:
我如何修改我的 MAX/MIN 值/系列以便它 ROUNDS() 到下一个更高的单位 5?
那么如何将图表比例限制为下一个最近5 为一个单位?
希望这不是每个图表都需要手动完成的事情。
答案1
我认为你必须使用虚拟专用网络。
您可以先计算单元格中的最大值、最小值和主要单位值。
D1:=CEILING(MAX(B:B),5)
给出下一个更高的单位 5(例如 25)
D2、D3:任意固定值或公式然后使用以下脚本将图表的
MaximumScale
、MinimumScale
和链接MajorUnit
到单元格。Option Explicit Private Sub ChangeAxisScales() With ActiveSheet.ChartObjects("Chart 1").Chart ' Value (Y) Axis With .Axes(xlValue) .MaximumScale = ActiveSheet.Range("$D$1").Value .MinimumScale = ActiveSheet.Range("$D$2").Value .MajorUnit = ActiveSheet.Range("$D$3").Value End With End With End Sub
(或者,您也可以在 VBA 中计算这些值。)
参考链接:http://peltiertech.com/Excel/Charts/AxisScaleLinkToSheet.html
答案2
@DMA57361 有正确的解决方案,CEILING 函数是你的朋友。
http://office.microsoft.com/en-us/excel-help/ceiling-HP005209007.aspx