Алгоритм обозначения оси даты для Excel - PullRequest
4 голосов
/ 05 октября 2010

Я регулярно отображаю данные временных рядов в Excel и нахожу стандартную маркировку оси даты Excel на линейных графиках очень уродливой. В частности,

1) Даты часто поворачиваются по горизонтали или по вертикали, что сжимает площадь участка и затрудняет чтение меток даты. Это потому, что есть два основных тиковых знака.

2) Метки показывают слишком высокую точность: базы данных временных рядов, как правило, будут выгружать в электронную таблицу что-то вроде ежемесячного временного ряда со значениями дат, такими как 01.01.2001, 01.01.2001 и т. Д. Excel будет пытаться показать полная строка даты мм / дд / гггг по умолчанию, которая может быть предпочтительна для коротких ежедневных временных рядов, но нежелательна для недневных рядов или рядов, которые выполняются в течение длительного периода времени. В этих случаях предпочтительным может быть форматирование, например, мм / гггг или гггг.

Мой вопрос: у кого-нибудь уже есть хороший алгоритм, который может сделать красивую ось метки даты? Горизонтальные метки только с галочками, расположенными достаточно далеко, чтобы приспособиться к этому, и интеллектуальное форматирование даты, когда данные начинают охватывать все более и более длительный промежуток времени (то есть метки, которые преобразуются с 01.01.2001 по 1/2001 по 2001). В конечном итоге мне придется написать это с использованием VBA, но я мог бы перевести алгоритм, написанный на другом языке.

Спасибо.

1 Ответ

3 голосов
/ 25 октября 2010

Это не верный ответ, но, возможно, удобрение .... Я разделяю ваши опасения, так как я часто сталкиваюсь с такими же проблемами.

Excel (2003) не поддерживает диаграммы сось истинной даты (где расстояние с 01 февраля по 01 марта составляет 28 единиц, а с 01 марта по 01 апреля - 31 единица).Наилучшее приближение, которое я нашел (для графиков, охватывающих более 2-3 месяцев):

  • , используйте X / Y-диаграмму
  • , чтобы вручную установить минимум и максимум значения (X) масштабировать до целого числа, представляющего первое число месяца (например, 01 февраля 2010 года, представленное целым числом 40210)
  • установить основную единицу измерения равной 30,42 (средняя продолжительность месяца - Excel не может выполнять переменную мажорную)отметки)
  • установить второстепенную единицу на 7 (поэтому я получаю, по крайней мере, недели очистки)
  • использовать пользовательский формат чисел (например, "MMM-YYYY") на оси X

Иногда я настраиваю вышеупомянутое, временно отображая дату как «ДД-ММ-ГГГГ», и просматриваю, сколько первых дней месяца я беру со своей шкалой, и корректирую Минимум, чтобы получить оптимальное значение.Чем длиннее диапазон дат, тем менее точным он становится.

Надеюсь, это поможет хоть немного ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...