动态里程碑趋势分析图在 Excel 和 VBA 中需要与 x 轴相同的 y 轴

Dynamic Milestone Trend Analysis Graph needs same y-axis as x-axis in Excel with VBA

经过几个小时的工作,我带着这个图形问题来找你们。我需要创建一个可以在 german wikipedia 上看到的里程碑-趋势分析,但在英文版中看不到。

一般信息

简而言之,图表的 x 轴上有报告日期(目前,每个月的第一天,都会有另一份报告到期)。 y 轴应完全镜像 x 轴。长度和刻度线。日期从底部到顶部变大。 在我的例子中,x 轴位于图的顶部。

每份报告都包含多个“截止日期”,一个用于每个正在进行的任务。它们是该特定作业的估计“完成日期”。

如果预计完成日期在下一个报告期间保持不变,则该分配的图表将保持在同一水平。如果估计较早,则图表趋于下降。通常它们会上升,因为分配有一些延迟:-D

x轴需要是动态的,因为当它的最后一个作业完成时,整个项目基本上就完成了。如果其中一项作业延迟 运行,则整个项目都会延迟,因此 x 轴需要 longer/get 个刻度。 由于 y 轴反映了这一点,它也必须改变。

我的问题

x 轴有许多离散值,因为每个月或每两周都会收到报告。但这并没有改变。 完成日期的值是连续的,因为分配可以随时终止。

这给我留下了一个问题,即必须将 y 轴分成大小相等的块,尽管一年中的月份大小不相等。至少我认为 excel 迫使我去做。

我可以为 y 轴分配一个最大限制和一个最小限制,我可以分配每个主要刻度线之间的距离。由于 Excel 每个日期都使用连续数字,因此 2014/01/01 为 41640。而 2015/01/01 为 42005。因为我在 x 轴上有 12 个月,我需要 12 y 轴,我必须让主刻度线位于 30.42 的距离处......这让我在我的轴上有接下来的月份

一月一月三月....十二月十二月

有人知道这个问题的答案吗?有没有办法让 excel 使 y 轴上的刻度线不等距?

非常感谢任何意见。

卡兹

我没有找到使 Excel 具有可变刻度线距离的方法。但因为我不能那样做,所以我不得不让这个月同样长。

现在对我有用:

'calculate the norm for different type of month including Schaltjahr
Select Case cellMonth

        'February
    Case 2

        'Schaltjahr and Schaltjahrhundert
        If (cellYear Mod 4 = 0) Or (cellYear Mod 400 = 0) Then

            resultDay = (30 / 29) * cellDay

        Else

            resultDay = (30 / 28) * cellDay
        End If

        '31 day months
    Case 1, 3, 5, 7, 8, 10, 12

        resultDay = (30 / 31) * cellDay

        '30 day months
    Case Else

        resultDay = cellDay

End Select

现在我只需要将轴缩放到 numberOfMonths * 30。它现在离开调整 y 轴的名称,这似乎是一个完全不同的故事。

卡兹

您可以通过添加虚拟 XY 系列来沿 Y 轴放置任意标签。

以下是我认为可以解决您的问题的一些数据,以及显示数据的折线图,以及我将用来构建虚拟 Y 轴的数据。

我使用了折线图,所以至少 X 轴很容易。您只需确保轴的格式设置为具有基本天数的日期轴。

这是我构建轴的方法。

左上图下方: 我复制了虚拟轴数据,数据的两列都包括 header 行。我选择了图表,并使用选择性粘贴将数据添加为新系列,列中的数据,第一行中的系列名称,第一列中的类别(但不要替换现有类别)。

右上角图表如下:我right-clicked在添加的系列上,单击“更改系列图表类型”,然后选择带有线条和标记的 XY 散点图。 Excel 也把这个系列放在副坐标轴上。

下方中间左图:我将添加的系列格式化为绘制在主轴上。

下图右中: 我改变了纵轴的比例,给它第一个日期的最小值和最后一个日期的最大值(1/1/16 到9/1/16).

下图左下角:我将垂直轴格式化为不显示标签。

下图右下角:格式格式格式。我格式化了虚拟轴系列,因此它使用了浅色加里线(与水平轴匹配)和浅灰色十字标记(模拟刻度线)。我更改了水平轴的刻度线,使它们穿过轴,与虚拟系列的十字标记相匹配。我在虚拟系列点的左侧添加了数据标签,模拟垂直轴标签。