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

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

4 Июль 2020, 18:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 3 »   Вниз
  Печать  
Автор Тема: Фильтрация по цвету [MEMO]  (Прочитано 41620 раз)
0 Пользователей и 1 Гость смотрят эту тему.
p1ter
Участник
**
Offline Offline

Сообщений: 10


« Стартовое сообщение: 23 Декабрь 2010, 15:08 »

Всем привет. Раз столкнулся с такой темой, описал в блоге у себя, а хостинг картинок, блин, отвалился =-((
В итоге пошаговая инструкция в гугладоксах.
Записан
Ivanych
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Санкт-Петербург
Сообщений: 103


« Ответ #1: 23 Декабрь 2010, 16:27 »

Спасибо за текст! Искренне порадовало
Записан
p1ter
Участник
**
Offline Offline

Сообщений: 10


« Ответ #2: 23 Декабрь 2010, 22:51 »

Сорказъм¿
Записан
Ivanych
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Санкт-Петербург
Сообщений: 103


« Ответ #3: 24 Декабрь 2010, 10:15 »

Сорказъм¿
Ни в коей мере. Знали бы Вы, как откровенно достали любители выделения цветом.
Записан
VlhOwn
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 076


« Ответ #4: 24 Декабрь 2010, 10:42 »

Действительно! Козлы! Делают, понимаешь, как им удобно... 
Записан
p1ter
Участник
**
Offline Offline

Сообщений: 10


« Ответ #5: 24 Декабрь 2010, 11:41 »

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

Помогите разобраться с фильтрацией по цвету в OpenOffice Calc. Нужно подсчитать сумму значений выделенных определенным цветом. Вышлите пожалуйста подробную инструкцию, а то на http://gtntxrf.my1.ru/news/2009-08-19-78 рисунки уже не отображаются. Макрос добавить смог, а вот использовать его не получается.

Для суммирования наверное буду использовать функцию sumif, а вот условием цвета буду ориентироваться на Ваш способ.
Привет куда выслать?
Плз, кинь ссылку на тему.

Спасибо за ответ.
Вот название темы на форуме: Сортировка, замена по цвету фона ячеек
, а вот ссылка: http://community.i-rs.ru/index.php/topic,10696.0.html

Теперь понял почему не получалось определить номер цвета: оказывается макрос подключил и использовал правильно, однако у меня не ячейка окрашена, а шрифт текста и цифр в ячейки, поэтому выдавало всегда "-1".
Теперь возникли следующие вопросы:
1) можно ли такой же макрос, только для цвета шрифта?
2) как использовать полученное значение цвета для подсчета суммы цифр в окрашенных этим цветом ячеек? Просто подстановкой номера цвета как условие в функцию "sumif" не помогает (ничего не находит).
Пробовал писать функцию следующим образом:
=SUMIF(O3:O830;"16764057";O3:O827) где 16764057 - номер цвета окрашенных ячеек, присутствующих в диапазоне суммирования.
привет.
Есть шанс решить задачу с цветом шрифта?
Можно тему перенести на форумооо
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #6: 24 Декабрь 2010, 12:54 »

Можно тему перенести на форумооо
Откуда и куда? Мы же вроде бы и так на форумооо?.. Или это "Ой, не в то окно!"?  Непонимающий
Пробовал писать функцию следующим образом:
=SUMIF(O3:O830;"16764057";O3:O827) где 16764057 - номер цвета окрашенных ячеек, присутствующих в диапазоне суммирования.
Ну, здесь понятно... Если в диапазоне критериев и в диапазоне суммирования один и тот же столбец и разное количество строк, а числовой параметр взят в кавычки, то формула будет показывать цену на керосин...
Первый параметр - ячейки с числовым значением цвета (ячейки или шрифта - безразлично), то есть столбец с результатами функции BackColor или FontColor.
Второй параметр - число, значение цвета. То есть просто 16764057 без кавычек. Чтобы не вбивать эти числа руками, проще всего ткнуть мышкой в любую ячейку с этим значением и нажать Shift-F4 для получения абсолютной ссылки.
Третий параметр - ячейки с данными, те которые раскрашены и которые нужно подсчитывать по цвету

Есть шанс решить задачу с цветом шрифта?
Код:
Function FontColor(a)
oSheet = ThisComponent.CurrentController.ActiveSheet
oCell = oSheet.getCellRangeByName(a)
FontColor = oCell.CharColor
End Function
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Risovod
Участник
**
Offline Offline

Сообщений: 7


« Ответ #7: 24 Декабрь 2010, 14:28 »

JohnSUN

1) А как пользоваться макросом FONTCOLOR ?
Макрос в OOO  добавил, но использовать по такому способу: =FONTCOLOR("A" & ROW())   не получается.

2)
Цитата:
Первый параметр - ячейки с числовым значением цвета (ячейки или шрифта - безразлично), то есть столбец с результатами функции BackColor или FontColor.
Второй параметр - число, значение цвета. То есть просто 16764057 без кавычек. Чтобы не вбивать эти числа руками, проще всего ткнуть мышкой в любую ячейку с этим значением и нажать Shift-F4 для получения абсолютной ссылки.
Третий параметр - ячейки с данными, те которые раскрашены и которые нужно подсчитывать по цвету
Не подходит, так как в матрице много столбцов с данными, по которым нужно делать поиск и подсчитывать сумму, с выводом результатов в конец столбца. А добавлять дополнительно столбцы с распознаванием цвета громоздко.
Записан
p1ter
Участник
**
Offline Offline

Сообщений: 10


« Ответ #8: 24 Декабрь 2010, 14:52 »

2Risovod а какая у Вас версия OOo?
Записан
Рыбка Рио
Форумчанин
***
Offline Offline

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


« Ответ #9: 24 Декабрь 2010, 15:03 »

У меня вариант JohnSun работает. Можно ещё использовать такой вариант функции fontcolor - она может работать с разными листами документа и писать ответ в любой ячейке. Использовать формулу нужно в таком виде: =FONTCOLOR(CELL("address";хх)), где хх - обычная ссылка на ячейку, типа A1 или Лист2.A2
Код:
Function FontColor(a As String)
Doc=ThisComponent
a=join(split(a,"$"),"")
b=split(a,".")
n=ubound(b)
If n=1 then
oSheet=Doc.Sheets.getByName(b(0))
else
oSheet = Doc.CurrentController.ActiveSheet
endif
oCell = oSheet.getCellRangeByName(b(n))
FontColor = oCell.CharColor
End Function
« Последнее редактирование: 24 Декабрь 2010, 15:11 от Клио » Записан

ubuntu 12.04 + LibO3.6.0
Рыбка Рио
Форумчанин
***
Offline Offline

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


« Ответ #10: 24 Декабрь 2010, 15:13 »

(в предыдущем посте была ошибка - сейчас исправлено)
Записан

ubuntu 12.04 + LibO3.6.0
convas
Форумчанин
***
Offline Offline

Сообщений: 310


« Ответ #11: 24 Декабрь 2010, 15:20 »

Не пересчитывает ни автоматически, ни по F9 ?!
И ошибка при загрузке, и вообще не работает.

OOo 3.2.1 pro Infra

[вложение удалено Администратором]
« Последнее редактирование: 24 Декабрь 2010, 15:22 от convas » Записан
Risovod
Участник
**
Offline Offline

Сообщений: 7


« Ответ #12: 24 Декабрь 2010, 15:31 »

p1ter
OpenOffice.org 3.3.0 RC6

Клио
Работает, но можно ли эту функцию =FONTCOLOR(CELL("address";хх))  включить в формулу =SUMIF ?
Записан
Рыбка Рио
Форумчанин
***
Offline Offline

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


« Ответ #13: 24 Декабрь 2010, 16:23 »

Не пересчитывает ни автоматически, ни по F9 ?!
И ошибка при загрузке, и вообще не работает.
Вторая функция не работает, т.к. в конце нужно заменить fontcolor на fontcolork. У меня тоже при загрузке выдает ошибки, нужно только потянуть за угол ячейки. Просто я храню макросы в папке профиля, а не в файле - там таких ошибок не возникает и всё сразу работает. Чтобы уведомлений об ошибках не было, если вы храните макросы в файле, то можно в начале функции добавить строчку On error resume next . Просто этот макрос не предназначен для хранения в документе, видимо.


С sumif не работает такой вариант. Наверное, можно написать эту функцию не на Basic (а на Ява, Питон, и др.) - тогда заработает. Функции Calc на Basic, кажется не умеют работать с самими ячейками, а только с их значениями - поэтому и приходится писать cell("address";xx). Если эту функцию писать на другом языке - то появляется много новых возможностей.
« Последнее редактирование: 24 Декабрь 2010, 16:25 от Клио » Записан

ubuntu 12.04 + LibO3.6.0
Рыбка Рио
Форумчанин
***
Offline Offline

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


« Ответ #14: 24 Декабрь 2010, 16:35 »

Если хотите, могу попробовать сделать функции fontcolor и backcolor на Яве или на Питоне, а потом покажу инструкцию тут о том как это делается. Сразу скажу, что там удобно использовать Netbeans + плагин для OOo. И тогда даже без знания Явы можно легко писать всякие функции. И эти функции будут потом в мастере функций (в отличие от функций на Basic), с подсказками и всеми атрибутами обычных функций. Их даже можно писать кирилицей будет.
Записан

ubuntu 12.04 + LibO3.6.0
Страниц: 1 2 3 »   Вверх
  Печать  
 
Перейти в:  

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