3

Я пытаюсь создать линейный график, который показывает количество запросов на доступ к моему серверу за определенный период времени.

Данные журнала выглядят так:

  • 10/05/2013
  • 10/05/2013
  • 10/05/2013
  • 11/05/2013
  • 11/05/2013
  • 14/05/2013
  • 14/05/2013

Если посмотреть на график, то 14.05.13 в электронной таблице было 2 строки.

Как мне представить это в линейном графике.

Колонка "D", где проходят все мои даты.

Спасибо

3 ответа3

4

Хм, вы можете сделать сводку с этими данными или вставить столбец, который будет иметь количество вхождений каждой даты.

Сводная таблица

  1. Убедитесь, что у вас есть имя столбца, а затем выполните сводную таблицу в поле D (перейдите в "Вставка"> "Сводная таблица"> выберите данные и нажмите "ОК").
  2. Перетащите поле в "Метки строк" и "Значения".

  3. Затем вы можете вставить линейный график из самой сводной таблицы.

Добавление нового столбца

Добавьте столбец справа от дат, содержащих формулу (я предполагаю, что D1 содержит имя столбца и данные начинаются в ячейке D2):

=COUNTIF(D:D,D2)

Назовите столбец (например, Количество запросов доступа) и вставьте линейный график, основанный на двух столбцах.

2

Если эти данные необходимо будет регулярно обновлять, можно использовать сводную таблицу, снабженную таблицей.

  1. Преобразуйте ваши данные в таблицу (Вставка> Таблица). Это будет обновляться всякий раз, когда вы добавляете данные. Кроме того, если ваши данные поступают из ODBC-совместимого источника (например, SQL Server), вы можете автоматически обновлять их текущими данными.
  2. Добавьте столбец в вашу таблицу с именем Count. Затем введите формулу =1 . Это автоматически заполнит 1 для каждого значения в вашей таблице.
  3. Создайте сводную таблицу («Вставка»> «Сводная таблица»), используя вашу таблицу в качестве источника данных.
  4. Отформатируйте сводную таблицу следующим образом (она будет похожа на сводную таблицу Джерри):
    • Метки строк = Дата
    • Значения = Количество
  5. Выделив сводную таблицу, создайте линейную диаграмму («Вставка»> «Линия»). Это создаст сводную диаграмму, которая будет автоматически обновляться вместе с вашей сводной таблицей.

Когда вы закончите с этой настройкой, каждый раз, когда вы добавляете значение в свою основную таблицу данных, вы можете обновлять свою сводную таблицу, и соответствующая сводная диаграмма также будет обновляться.

1

Я думаю, что вам нужен шаг-график, основанный на вашем описании. Чтобы нарисовать такую диаграмму, я предлагаю вам использовать бесплатную надстройку Funfun Excel, которая позволяет использовать код JavaScript непосредственно в Excel. График шага можно было бы легко нарисовать с помощью JavaScript. Вот пример, который я нарисовал на основе ваших данных.

По сути, надстройка Funfun Excel позволяет использовать JavaScript для обработки данных, которые вы сохранили в электронной таблице. При этом вы можете использовать библиотеки, такие как HighCharts.js или D3.js, чтобы рисовать графики. В этом примере я использовал HighCharts.js. Для ваших примеров данных не всегда есть логины на каждый день. Если вы не предоставите данные (0 входов) для дат, которые без журналов, ваша строка не будет отображаться правильно. Здесь я создал массив со всеми датами месяца, каждая из которых будет иметь 0 имен входа по умолчанию. Затем, основываясь на ваших журналах в электронной таблице, я сравниваю их дату с предварительно созданным массивом и добавляю логины в массив. Вот код

var dayFirst,
      monthFirst,
      dayLast,
      monthLast;

  dayFirst = parseInt(data[1].split('/')[0]);
  monthFirst = parseInt(data[1].split('/')[1]) - 1;
  dayLast  = parseInt(data[data.length-1].split('/')[0]);
  monthLast = parseInt(data[data.length-1].split('/')[1]) - 1;

  for(var i=monthFirst;i<=monthLast;i++ ){
    for(var j=dayFirst;j<=dayLast;j++){
        logins.push(
            [Date.UTC(2017, i, j),0]
        );
    }
  }

  for(var i=1;i<data.length;i++){
    var dateThis = data[i];
    var year = parseInt(dateThis.split('/')[2]);
    var month = parseInt(dateThis.split('/')[1]-1);
    var day = parseInt(dateThis.split('/')[0]);

        for(var j =0;j<logins.length;j++){
            if(logins[j][0]==Date.UTC(year, month, day)){
                logins[j][1] += 1;
            }
        }    
  }

Funfun также имеет онлайн-редактор, в котором вы можете изучить свой код JavaScript и результат. Вы можете проверить детали того, как я сделал пример диаграммы в ссылке ниже.

https://www.funfun.io/1/#/edit/5a4e571b1010eb73fe125cd9

Если вы удовлетворены результатом, которого вы достигли в онлайн-редакторе, вы можете легко загрузить результат в Excel, используя указанный выше URL. Но, конечно, во-первых, вам нужно добавить надстройку Funfun в ваш Excel, используя Insert - надстройки Office. Вот несколько скриншотов, показывающих, как вы загружаете пример в Excel.

Раскрытие информации: я разработчик Funfun

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .