Обработка лога в excel

Файл логов сайта позволит узнать что создает нагрузку, какие страницы или картинки на сайте «битые», кто «стучится» к вам на сайт и прочее. Давайте откроем его в Excel, что позволит анализировать более удобно.

Получим в итоге вот такой внешний вид:

Как открыть файл логов в Excel

Увеличить. Открытый файл логов сайта .log в Excel

Приступим.

Для начала переходим в меню Excel Данные и нас интересует пункт Из текстового/CSV-файла.

Excel Данные Из текстового/CSV-файла

Увеличить. Excel > Данные > Из текстового/CSV-файла

В открывшемся окне выберите Все файлы, чтобы отобразило ваш фай логов, т.к. он имеет нестандартное расширение .log

Выбираем тип "Все файлы"

Увеличить. Выбираем тип «Все файлы»

Теперь проверяем кодировку и правильно ли выставлен разделитель. Посмотрите на скриншот ниже: у вас должно получиться аналогично. Если нет такого разделения по столбцам, то пробуйте экспериментировать с Разделителем: в зависимости от хостинга и настроек формирования файла лога, в качестве разделителя могут быть запятые, точки и другие знаки.

Настройка отображения файла лога

Увеличить. Настройка отображения файла лога

В итоге получаем таблицу с каким-то набором колонок, что позволит нам проанализировать файл логов и найти решение своего вопроса.

Как открыть файл логов в Excel

Увеличить. Открытый файл логов сайта .log в Excel

Представьте себе книгу Excel с очень важными для вас данными, сохраненную на общем сетевом диске компании, куда имеет доступ куча народу. Одним совсем не прекрасным утром вы открываете этот файл и обнаруживаете, что внутри кто-то поиграл в аль-каиду: формулы поломаны, данные стерты, дизайн нарушен. Поскольку вы опытный пользователь, то у вас, конечно же, была резервная копия этого важного документа (была же, правда?) и данные вы восстановите, но чисто из спортивного интереса хотелось бы все же узнать — КТО ЭТО СДЕЛАЛ?!

Давайте попробуем решить эту задачу. Итак, нам нужно:

  • фиксировать на отдельном (скрытом) листе имя пользователя, открывшего файл;
  • фиксировать там же дату-время открытия и закрытия файла;
  • по возможности усложнить взлом или обход такой защиты.

Поехали…

Этап 1. Создаем «Лог»

Добавим в нашу книгу новый лист, куда будет записываться информация о всех пользователях и назовем его, например, Лог. На нем создадим простую шапку будущего журнала учета посетителей:

blackbox1.png

Этап 2. Макросы фиксации входа-выхода

Теперь добавим макросы для записи на лист Лог даты-времени и имен пользователей при открытии и закрытии книги. Для этого нужно открыть редактор Visual Basic с помощью сочетания Alt+F11 или с помощью кнопки Visual Basic на вкладке Разработчик (Developer) и найти в левом верхнем углу панель Project (если она не отображается, то включить ее можно сочетанием клавиш Ctrl+R):

blackbox2.png

Двойным щелчком откройте модуль ЭтаКнига (ThisWorkbook) и вставьте туда пару наших макросов для обработки событий открытия и закрытия книги:

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
   'ищем последнюю занятую строчку в логах 
   lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row 
   'заносим дату-время выхода из файла 
   If lastrow>1 Then Worksheets("Лог").Cells(lastrow, 3) = Now 
   'сохраняемся перед выходом 
   ActiveWorkbook.Save 
End Sub 

Private Sub Workbook_Open() 
   'ищем последнюю занятую строчку в логах 
   lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row 
   'заносим имя пользователя и дату-время входа в файл 
   Worksheets("Лог").Cells(lastrow + 1, 1) = Environ("USERNAME") 
   Worksheets("Лог").Cells(lastrow + 1, 2) = Now 
End Sub

В первом приближении все уже должно работать. Попробуйте открыть-закрыть этот файл пару раз и убедитесь, что на лист Лог попадает ваше имя пользователя (логин входа в Windows) и дата-время:

blackbox3.png

Этап 3. Улучшаем надежность

Можно было бы скрыть лист Лог и на этом остановиться, но есть одно «но»: если у пользователя, который открывает нашу книгу, макросы разрешены по умолчанию либо он сам их разрешает, нажав в окне предупреждения на кнопку Включить содержимое, то все в порядке:

blackbox4.png

Но что если пользователь не разрешит выполнение макросов или они отключены у него по умолчанию? Тогда наши макросы отслеживания выполняться не будут и фиксации имени и даты не произойдет :( Как же заставить пользователя разрешить использование макросов?

Чтобы обойти эту проблемку воспользуемся небольшой тактической хитростью. Добавьте в нашу книгу еще один чистый лист, назовите его Предупреждение и вставьте на него следующий текст:

blackbox5.png

Суть в том, чтобы по умолчанию скрыть в книге все листы кроме этого, а рабочие листы с данными отображать с помощью специального макроса. Если пользователь не разрешил выполнение макросов, то он увидит в книге только один лист с предупреждением. Если же макросы разрешены, то наш макрос обработки события открытия книги скроет лист с предупреждением и отобразит листы с данными. Чтобы пользователь сам не отобразил их — используем суперскрытие вместо обычного скрытия листов (параметр xlSheetVeryHidden вместо обычного False).

Чтобы реализовать все описанное, слегка изменим наши процедуры в модуле ЭтаКнига (ThisWorkbook):

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    'ищем последнюю занятую строчку в логах
    lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row
    'заносим дату-время выхода из файла
    If lastrow > 1 Then Worksheets("Лог").Cells(lastrow, 3) = Now
    
    'скрываем все листы, кроме листа ПРЕДУПРЕЖДЕНИЕ
    Worksheets("Предупреждение").Visible = True
    For Each sh In ActiveWorkbook.Worksheets
        If sh.Name = "Предупреждение" Then
            sh.Visible = True
        Else
            sh.Visible = xlSheetVeryHidden
        End If
    Next sh
    
    'сохраняемся перед выходом
    ActiveWorkbook.Save
End Sub

Private Sub Workbook_Open()
    'ищем последнюю занятую строчку в логах
    lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row
    'заносим имя пользователя и дату-время входа в файл
    Worksheets("Лог").Cells(lastrow + 1, 1) = Environ("USERNAME")
    Worksheets("Лог").Cells(lastrow + 1, 2) = Now
    
    'отображаем все листы
    For Each sh In ActiveWorkbook.Worksheets
        sh.Visible = True
    Next sh
    'скрываем листы ПРЕДУПРЕЖДЕНИЕ и ЛОГ
    Worksheets("Предупреждение").Visible = xlSheetVeryHidden
    Worksheets("Лог").Visible = xlSheetVeryHidden
    
End Sub

Чтобы просмотреть скрытый Лог откройте редактор VisualBasic (Alt+F11), выделите лист на панели Project и измените его видимость на панели Properties, используя свойство Visible:

blackbox7.png

Если пользователи настолько продвинутые, что знают про суперскрытые листы и могут их отобразить через редактор Visual Basic или нарушить работу наших макросов, то можно дополнительно поставить пароль на просмотр и изменение макросов. Для этого щелкните правой кнопкой мыши по имени файла в панели Project (строка VBAProject (blackbox.xls)), выберите команду VBA Project Properties и включите флажок Lock project for viewing и задайте пароль на вкладке Protection:

blackbox8.png

Теперь точно никто не уйдет безнаказанным. Большой Брат следит за тобой! ;)

Ссылки по теме

  • Суперскрытый лист
  • Выборочное отображение листов отдельным пользователям
  • 4 способа защиты данных в Microsoft Excel

Из лог файла в таблицу.

wvlas

Дата: Среда, 28.11.2012, 15:01 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Подскажите пожалуйста как сделать?
Есть лог файл. Из него необходимо в таблицу вытащить данные. Данные нужны только из строк начинающихся с <item type=»Movie».
В 1й колонке имя файла без пути и расширения.
Во 2й колонке время выхода файла (time=) с округлением до целых секунд в большую сторону
В 3й колонке продолжительность файла (duration=) с округлением до целых секунд в большую сторону
В 4й колонке (если только error=»1″ ) реальная продолжительность (realDuration=)с округлением до целых секунд в большую сторону. Если error=»0″ то ничего.

Сообщение отредактировал wvlasЧетверг, 29.11.2012, 05:56

 

Ответить

Hugo

Дата: Среда, 28.11.2012, 15:25 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Какие такие колонки в логе? Это ведь текст…
Или у Вас лог.xml? Что в общем тоже можно сказать что текст.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

wvlas

Дата: Среда, 28.11.2012, 16:50 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Quote (Hugo)

Какие такие колонки в логе? Это ведь текст… Или у Вас лог.xml? Что в общем тоже можно сказать что текст.

Извините, не уточнил, какие колонки описал.
Так и есть — лог.xml, поменял расширение чтобы открылся блокнотом. А колонки описал которые должны заполнится в приложенном файле «Должно получиться.xls из данных «Исходные данные.txt».

 

Ответить

Hugo

Дата: Среда, 28.11.2012, 21:02 |
Сообщение № 4

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

Hugo

Дата: Среда, 28.11.2012, 23:48 |
Сообщение № 5

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Откройте vbs блокнотом, замените путь к файлу на свой.
Но округление в бОльшую сторону не сделал — пустил на самотёк, округляет формат.
Обязательно нужно в бОльшую? Как легко и просто сделать — не знаю… Может кто подскажет?


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

wvlas

Дата: Четверг, 29.11.2012, 06:53 |
Сообщение № 6

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Спасибо, то что надо. Округление можно оставить как есть.
А как сделать чтобы при запуске скрипта вылетало окошко с выбором файла исходных данных «Исходные данные.xml», чтобы путь не менять в коде?

 

Ответить

Hugo

Дата: Четверг, 29.11.2012, 10:14 |
Сообщение № 7

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Спасибо что не настаиваете на округлении вверх smile
Добавил диалог выбора файла.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

wvlas

Дата: Четверг, 29.11.2012, 10:59 |
Сообщение № 8

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Спасибо! Все устраивает.

 

Ответить

wvlas

Дата: Четверг, 29.11.2012, 11:27 |
Сообщение № 9

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


А почему в Win7 диалог выбора файла вызывает ошибку? В Xp все нормально.

 

Ответить

Hugo

Дата: Четверг, 29.11.2012, 11:42 |
Сообщение № 10

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

Hugo

Дата: Четверг, 29.11.2012, 11:55 |
Сообщение № 11

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Ещё такой диалог попробуйте (у меня под ХР работает):

[vba]

Code

Set objDialog = CreateObject(«SAFRCFileDlg.FileOpen»)
intResult = objDialog.OpenFileOpenDlg

     If cstr(intResult) = «0» Then
         WScript.Quit
     Else
         InputFile = objDialog.Filename
     End If

[/vba]Далее код не меняется.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

wvlas

Дата: Четверг, 29.11.2012, 12:09 |
Сообщение № 12

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Также, ошибка.

 

Ответить

wvlas

Дата: Четверг, 29.11.2012, 13:09 |
Сообщение № 13

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Вот что нашел. Только окно открывается не по верх всех окон, а за всеми.

 

Ответить

Hugo

Дата: Четверг, 29.11.2012, 13:20 |
Сообщение № 14

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Ну на безрыбье и такой вариант интересный smile
Работает и на XP, проверил.
Только вот как C:fakepath превратить в реальный путь — непонятно…


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

wvlas

Дата: Четверг, 29.11.2012, 13:26 |
Сообщение № 15

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Quote (wvlas)

‘ * In Win7/IE8 only the file NAME is returned correctly, the path returned will always be C:fakepath

Вроде IE8 поможет.

Сообщение отредактировал wvlasЧетверг, 29.11.2012, 13:31

 

Ответить

Hugo

Дата: Четверг, 29.11.2012, 13:39 |
Сообщение № 16

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

У меня IE8, но под XP — путь выводит некорректный.
А из этого комментария я понял что корректное имя файла выводится только под Win7/IE8, а путь всегда C:fakepath smile
Хотя я ещё тот англичанин…


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

Содержание

  • Использование оператора LOG
    • Способ 1: применение функции LOG
    • Способ 2: применение функции LOG10
  • Вопросы и ответы

Функция LOG в приложении Microsoft Excel

Одним из востребованных математических действий при решении учебных и практических задач является нахождение логарифма из заданного числа по основанию. В Экселе для выполнения данной задачи существует специальная функция, которая называется LOG. Давайте поподробнее узнаем, как её можно применять на практике.

Использование оператора LOG

Оператор LOG относится к категории математических функций. Его задачей является вычисление логарифма указанного числа по заданному основанию. Синтаксис у указанного оператора предельно простой:

=LOG(число;[основание])

Как видим, функция располагает всего двумя аргументами.

Аргумент «Число» представляет собой число, из которого нужно вычислить логарифм. Он может принимать вид числового значения и являться ссылкой на ячейку, его содержащую.

Аргумент «Основание» представляет собой основание, по которому будет вычисляться логарифм. Он тоже может иметь, как числовой вид, так и выступать в виде ссылки на ячейку. Данный аргумент не является обязательным. Если он опущен, то считается, что основание равно нулю.

Кроме того, в Экселе существует ещё одна функция, позволяющая вычислять логарифмы – LOG10. Её главное отличие от предыдущей в том, что она может вычислять логарифмы исключительно по основанию 10, то есть, только десятичные логарифмы. Её синтаксис ещё проще, чем у ранее представленного оператора:

=LOG10(число)

Как видим, единственным аргументом данной функции является «Число», то есть, числовое значение или ссылка на ячейку, в которой оно расположено. В отличие от оператора LOG у этой функции аргумент «Основание» вообще отсутствует, так как принимается, что основание обрабатываемых ею значений равно 10.

Способ 1: применение функции LOG

Теперь давайте рассмотрим применение оператора LOG на конкретном примере. Имеем столбец числовых значений. Нам нужно вычислить из них логарифм по основанию 5.

  1. Выполняем выделение первой пустой ячейки на листе в колонке, в которую планируем выводить итоговый результат. Далее щелкаем по пиктограмме «Вставить функцию», которая располагается возле строки формул.
  2. Переход в Мастер функций в Microsoft Excel

  3. Происходит запуск окошка Мастера функций. Перемещаемся в категорию «Математические». Производим выделение наименования «LOG» в списке операторов, после чего производим щелчок по кнопке «OK».
  4. Переход в окно аргументов функции LOG в Microsoft Excel

  5. Происходит запуск окошка аргументов функции LOG. Как видим, оно имеет два поля, которые соответствуют аргументам данного оператора.

    В поле «Число» в нашем случае следует ввести адрес первой ячейки того столбца, в котором находятся исходные данные. Это можно сделать, вписав его в поле вручную. Но существует и более удобный способ. Устанавливаем курсор в указанном поле, а затем щелкаем левой кнопкой мыши по ячейке таблицы, содержащей нужное нам числовое значение. Координаты данной ячейки тут же отобразятся в поле «Число».

    В поле «Основание» просто вписываем значение «5», так как оно будет одинаково для всего обрабатываемого числового ряда.

    Lumpics.ru

    После произведения указанных манипуляций щелкаем по кнопке «OK».

  6. Окно аргументов функции LOG в Microsoft Excel

  7. Результат обработки функцией LOG тут же выводится в ячейку, указанную нами на первом шаге этой инструкции.
  8. Результат обработки функции LOG в Microsoft Excel

  9. Но мы заполнили только первую ячейку столбца. Для того, чтобы заполнить и остальные, нужно скопировать формулу. Устанавливаем курсор в нижний правый угол ячейки её содержащей. Появляется маркер заполнения, представ в виде крестика. Выполняем зажим левой кнопки мыши и перетягиваем крестик до конца столбца.
  10. Маркер заполнения в Microsoft Excel

  11. Вышеуказанная процедура привела к тому, что все ячейки столбца «Логарифм» заполнены результатом вычисления. Дело в том, что ссылка, указанная в поле «Число», является относительной. При перемещении по ячейкам изменяется и она.

Столбец заполнен результатом вычисления в Microsoft Excel

Урок: Мастер функций в Экселе

Способ 2: применение функции LOG10

Теперь давайте рассмотрим пример использования оператора LOG10. Для примера возьмем таблицу с теми же исходными данными. Но теперь, понятное дело, предстоит задача вычислить логарифм чисел, расположенных в столбце «Исходные данные» по основанию 10 (десятичный логарифм).

  1. Производим выделение первой пустой ячейки столбца «Логарифм» и щелкаем по пиктограмме «Вставить функцию».
  2. Вставить функцию в Microsoft Excel

  3. В открывшемся окне Мастера функций опять выполняем переход в категорию «Математические», но на этот раз останавливаемся на наименовании «LOG10». Щелкаем внизу окошка по кнопке «OK».
  4. Переход в окно аргументов функции LOG10 в Microsoft Excel

  5. Происходит активация окна аргументов функции LOG10. Как видим, оно располагает только одним полем – «Число». Вносим в него адрес первой ячейки столбца «Исходные данные», тем же способом, который мы использовали в предыдущем примере. Затем щелкаем по кнопке «OK» внизу окна.
  6. Окно аргументов функции LOG10 в Microsoft Excel

  7. Результат обработки данных, а именно десятичный логарифм заданного числа, выводится в предварительно указанную ячейку.
  8. Результат обработки функции LOG10 в Microsoft Excel

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

Столбец заполнен результатом вычисления десятичного логарифма в Microsoft Excel

Урок: Другие математические функции в Экселе

Применение функции LOG позволяет в Экселе просто и быстро посчитать логарифм от указанного числа по заданному основанию. Этот же оператор может посчитать и десятичный логарифм, но для указанных целей более рационально использовать функцию LOG10.

Еще статьи по данной теме:

Помогла ли Вам статья?

Прошу сразу прощения за раздвоение постов.

Изначально планировал сделать скриншотами, в один пост они все бы не влезли, по этому решил разделить их на две части.

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

Знал бы сразу что в итоге будет видюха — объединил бы в один пост, на а так придется двумя.

В общем всем тем кто с Excel общается на «эй ты урод иди сюда» данный пост будет не интересен — можете смело закрывать, а вот тем кто с Excel общается на «твою жеш мать, и куда здесь чего жать?» пост будет полезен.

Собственно в прошлом посте мы получили файл формата CSV, который не мешало бы открыть и посмотреть что там и как.

Погнали:

Like this post? Please share to your friends:
  • Обработка информации средствами microsoft word это
  • Обработка информации средствами microsoft word работа с таблицами
  • Обработка информации средствами microsoft word лекция
  • Обработка информации средствами microsoft excel лекция
  • Обработка информации с помощью электронных таблиц excel