Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

21 Январь 2020, 15:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: По условию ячейки скопировать строку в новый файл ( макрос )  (Прочитано 373 раз)
0 Пользователей и 1 Гость смотрят эту тему.
georgiy123
Участник
**
Online Online

Сообщений: 19


« Стартовое сообщение: 7 Январь 2020, 19:10 »

Всем привет ребята !
Искал , гуглил , нечего не нашел .
По поводу макросов , я только копипаст .
Ребята , нужна помощь , каждый день обрабатываю логи , внизу прикреплен файл , как видно по файлу в столбце "F" работает условное форматирование .
Можете помочь написать макрос ?
Задача такая , где срабатывает условное форматирование (где ниже 0,95 , между 0,9 и 0,8999 и т.п )
Эту строку копировать в новый файл
Для примера закрепил файл , в файле 2 листа , общее , и пример .
Зарание спасибо !!!))) Улыбка

* пример.ods (39.81 Кб - загружено 4 раз.)
Записан
georgiy123
Участник
**
Online Online

Сообщений: 19


« Ответ #1: 8 Январь 2020, 07:41 »

Или удалить на листе строки там где не сработало  условное форматирование *
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 855


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #2: 8 Январь 2020, 08:22 »

Это делается "Стандартным" фильтром.
Записан

economist
Форумчанин
***
Offline Offline

Сообщений: 1 101


« Ответ #3: 8 Январь 2020, 11:28 »

georgiy123 - условное форматирование (УФ) - это невидимый слой формул, который возвращает формат (в вашем случае - цвет ячеек). Напишите в ближайших пустых столбцах те же формулы УФ (их эквиваленты) - и получите значения ИСТИНА/ЛОЖЬ или TRUE/FALSE. Эти столбцы легко Автофильтровать и удалять/копировать нужное/ненужное. Я использовал знак "Меньше <", хотя в примере указано "между", причем с низкой точностью, лучше такого сравнения избегать. Пример вложен:


ЗЫ: Для анализа логов есть специализированные инструменты, которые сразу рисуют графики и агрегируют в логах хосты, разделы сайта итп. 99% из них - бесплатны, например Analog, webstat итп.

Если нужна скорость и фишки типа когортного анализа - то нужная вам табличка (в формате xls, но можно csv/ods и вообще любой другой) с помощью Python+Pandas получится в три строки и будет работать молниеносно:

import pandas as pd
df=pd.read_csv('C:\log.txt', sep=';')
df[df.col6<0.95].to_excel('C:\out.xlsx')

* пример (формулы).ods (80.23 Кб - загружено 1 раз.)
« Последнее редактирование: 8 Январь 2020, 11:52 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
georgiy123
Участник
**
Online Online

Сообщений: 19


« Ответ #4: 8 Январь 2020, 18:50 »

Ребята , спасибо вашему форуму) , разобрался
Записан
georgiy123
Участник
**
Online Online

Сообщений: 19


« Ответ #5: 8 Январь 2020, 18:56 »

Код:
Sub NDRowsDelete
 odoc=thiscomponent
 oSheet = oDoc.CurrentController.getActiveSheet()
 myrows=oSheet.getrows
 
 rowmax=2000 'максимальное количество строк
 rowmin=0       'минимальное количество строк
 
 For i=rowmax To rowmin step -1
 textnd = osheet.getcellbyposition(5,i).string '(5)- столбец 'F'  0=A 1=B 2=C 3=D  и т.п.
    If textnd >="0,95" Then 'удалять строку если в столбце F  значение =>0.95
      myrows.removebyindex(i,1)
    End if   
 Next i
 
End Sub
Записан
georgiy123
Участник
**
Online Online

Сообщений: 19


« Ответ #6: 8 Январь 2020, 18:57 »

Ребята , еще раз всем спасибо!
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!