Единицы времени и автоматическое форматирование оси Y в Excel

4286
Matteo

У меня есть график со значениями времени по вертикальной оси (Y). Поскольку значения могут сильно изменяться, форматирование младших и главных единиц оси выполняется автоматически.

Проблема в том, что Excel выбирает значения, которые могут быть хорошими, если они имеют десятичное значение, но не идеальны при использовании времен.

Например, 0:00, 0:28, 0:57, 1:26, 1:55, 2:24, 2:52 (они соответствуют шагам в 0.02 десятичного числа)

Скриншот

Есть ли способ иметь автоматический масштаб, который выглядит хорошо при использовании времени на вертикальной оси?

1

1 ответ на вопрос

4
teylyn

Вы можете использовать VBA, чтобы гарантировать, что максимальное значение всегда равно целому часу, скажем, и что младшая единица составляет 5 минут, а основная 10 минут.

Макрос может быть очень сложным в зависимости от того, сколько вы хотите автоматизировать. Намного проще было бы четыре ячейки рабочего листа, где вы можете ввести желаемые минимальные, максимальные, основные, второстепенные значения времени и график мгновенно обновляется.

Например, событие изменения в листе может выглядеть так:

Option Explicit  Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("chrtSettings")) Is Nothing Then  With ActiveSheet.ChartObjects("Chart 1").Chart .Axes(xlValue).MinimumScale = Range("min") .Axes(xlValue).MaximumScale = Range("max") .Axes(xlValue).MajorUnit = Range("major") .Axes(xlValue).MinorUnit = Range("minor") End With   End If End Sub 

И на листе есть диапазон ячеек (с именами диапазонов), где значения могут быть установлены быстро