当我在 Excel x 轴上使用间隔 5 作为标签时,Excel 将使用 0、5、10 作为标签。
当起始值为 3 时,Excel 将使用 3、8、13 作为标签。
我怎样才能继续使用 5、10、15?
答案1
据我所知,这在 Excel 中无法实现。但有一种解决方法可以很好地模拟这一点。设置一个系列,其 x 值等于您想要用作刻度标签的值,y 值等于图表底部的 y。(稍后,如果您发现可能需要更改此 ymin 值,请在此范围内的每个单元格中使用公式来引用您修改的单个单元格。您甚至可以设置一个用户定义函数来检索该值Axis.MinimumScale
)。
然后添加该系列,并使用相同的 x 值为其添加标签。将标签放在点下方。我建议您使用XY图表标签机作者:Rob Bovey(他的其他实用工具也值得一试)。对于系列,请选择无线条和一个您选择的标记,最有可能是垂直线。微调格式。
我经常使用此技巧来制作任何类型的自定义轴刻度标签,例如逆温度刻度等。
使用了一段时间后,我觉得我更详细地了解了Jon Peltier 的网站。我强烈推荐他的网站,其中包含与 Excel 图表相关的任何内容。
答案2
尽管听起来可能很荒谬和侮辱,但我并不是想这么说:
起始值应该只是 0。否则,您使用的任何图表的起始值(您没有在问题中指定,这很难帮助您,而且我的声誉也不足以发表评论)应该是您期望找到的最低可能值,四舍五入到最接近的间隔。所以如果说Min(possibleValues) = 13
你的起始值应该保持为 0,或者设置为 10。您可以使用模数找到它:
可能值 = {33, 21, 66, 35, 23, 40}
x = Min(possibleValues)
x = 21
y = x % interval #You stated interval = 5
y = 1
StartingValue = x-y
StartingValue = 20
请注意,重要的行已被注释掉,因此图表从零开始:
现在用我们的线设置图表轴的属性:
代码如下:
Sub CreateChartWithStartValue()
Dim x, y, interval As Integer
Dim chart As Object
Dim rng As Range
Set rng = ActiveSheet.Range("A2:A7")
Set chart = ActiveSheet.Shapes.AddChart2
chart.chart.SetSourceData Source:=rng
chart.chart.ChartType = xlBarClustered
interval = 5
x = Application.WorksheetFunction.Min(rng)
y = x Mod interval
chart.chart.Axes(xlValue).MinimumScale = x - y
End Sub
如果这没有意义,请不要否决答案,而是发表评论,以便我们澄清。