Список форумов Форум Libreoffice

Форум Libreoffice

Добро пожаловать на Форум Libreoffice!
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

English French German Italian Portuguese Russian Spanish
Условное форматирование ячеек с помощью функции листа
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов Форум Libreoffice -> Calc
Предыдущая тема :: Следующая тема  
Автор Сообщение
RFJ



Репутация: +1    

Зарегистрирован: 02.08.2011
Сообщения: 59

СообщениеДобавлено: Вт Авг 02, 2011 10:58 am    Заголовок сообщения: Условное форматирование ячеек с помощью функции листа Ответить с цитатой

Условное форматирование ячеек с помощью функции листа без ограничения количества условий:

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
raptor



Репутация: 0    

Зарегистрирован: 02.08.2011
Сообщения: 9

СообщениеДобавлено: Вт Авг 02, 2011 8:39 pm    Заголовок сообщения: Ответить с цитатой

А если в ячейке А1 будет сложная формула?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vanya



Репутация: 0    

Зарегистрирован: 02.08.2011
Сообщения: 17

СообщениеДобавлено: Вт Авг 02, 2011 8:48 pm    Заголовок сообщения: Ответить с цитатой

raptor писал(а):
А если в ячейке А1 будет сложная формула?

Присоединяюсь к вопросу.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RFJ



Репутация: +1    

Зарегистрирован: 02.08.2011
Сообщения: 59

СообщениеДобавлено: Ср Авг 03, 2011 8:46 am    Заголовок сообщения: Ответить с цитатой

Цитата:
CURRENT
Эта функция возвращает результат частичного вычисления формулы, в которую она входит (другими словами, результат выполненной части вычислений). В основном она используется совместно с функцией STYLE() для применения выбранных стилей к ячейке в зависимости от ее содержимого.


Но применить её к условному форматированию с несколькими условиями не удается.


Последний раз редактировалось: RFJ (Ср Авг 03, 2011 5:17 pm), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RFJ



Репутация: +1    

Зарегистрирован: 02.08.2011
Сообщения: 59

СообщениеДобавлено: Ср Авг 03, 2011 5:12 pm    Заголовок сообщения: Ответить с цитатой

raptor писал(а):
А если в ячейке А1 будет сложная формула?

В общем, это довольно сложно. В том смысле, что получается весьма сложная формула для ячейки.
Оно и понятно, ведь к сложной "вычислительной" формуле добавляются части с условиями IF и соответствующими стилями STYLE.
Но вполне возможно. Вот пример.

"Вычислительная" формула:
Код:
=DB($B$9;$B$10;36;ROW(E30)-29;6)


А формула в ячейке выглядит устрашающе, но работает:
Код:
=DB($B$9;$B$10;36;ROW(E30)-29;6)+(STYLE(IF((DB($B$9;$B$10;36;ROW(E30)-29;6))<1100;"Безымянный5";IF(AND(DB($B$9;$B$10;36;ROW(E30)-29;6)>1100;DB($B$9;$B$10;36;ROW(E30)-29;6)<1700);"Безымянный4";IF(AND(DB($B$9;$B$10;36;ROW(E30)-29;6)>1700;DB($B$9;$B$10;36;ROW(E30)-29;6)<1800);"Безымянный3";IF(AND(DB($B$9;$B$10;36;ROW(E30)-29;6)>1800;DB($B$9;$B$10;36;ROW(E30)-29;6)<2000);"Безымянный2";IF(AND(DB($B$9;$B$10;36;ROW(E30)-29;6)>2000;DB($B$9;$B$10;36;ROW(E30)-29;6)<2200);"Безымянный1";"Базовый")))))))


Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vanya



Репутация: 0    

Зарегистрирован: 02.08.2011
Сообщения: 17

СообщениеДобавлено: Чт Сен 08, 2011 6:12 am    Заголовок сообщения: Ответить с цитатой

А файлик с примером можно приложить?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RFJ



Репутация: +1    

Зарегистрирован: 02.08.2011
Сообщения: 59

СообщениеДобавлено: Чт Сен 08, 2011 7:23 am    Заголовок сообщения: Ответить с цитатой

Можно и файлик.

http://ifolder.ru/25623773

PS. Меняйте число в ячейке B10.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
JohnSUN



Репутация: 0    

Зарегистрирован: 29.08.2011
Сообщения: 39
Откуда: Киев, Украина

СообщениеДобавлено: Чт Сен 08, 2011 7:53 am    Заголовок сообщения: Ответить с цитатой

Вообще-то, если поднапрячься слегка, то эту устрашающую формулу можно упростить...
Ну, во-первых, эта самая "DB($B$9;$B$10;36;ROW(E30)-29;6)" повторяется много раз... И, скорее всего, столько же раз и вычисляется... Хотя и не факт. Это у нас основное вычисление и выполняется оно в начале формулы. А значит вычислив его один раз, мы можем тут же получить его значение через функцию CURRENT().
Во-вторых, в сравнениях функция AND() нам скорее всего не нужна... Там ведь как получается:если меньше 1100 то красим так-то ИНАЧЕ рассматриваем ДРУГИЕ варианты... А в других вариантах как раз и остались те, которые больше или равны 1100. (Кстати, в нынешнем написании формула "проглатывает" варианты, когда найденное значение точно равно граничным 1100, 1700, 1800 и т.д. По идее, они должны будут остаться незакрашенными? Впрочем, не проверял, могу ошибиться)
В-третьих, раз уж мы взялись использовать стили с именами "Безымянный1", "Безымянный2", 3, 4 и 5, то почему бы их не вычислить? Ну, как-то так, например: "Безымянный"&Int(<чего-то там>)? У меня, например, тестовая конструкция вида
Код:
=E30*E30+STYLE(CHOOSE(INT(CURRENT()/10)+1;"";1;2;3;4)&"Цвет")
сработала вполне нормально (Используются стили "Цвет", "1Цвет", "2Цвет" и т.д. Нам же никто не запрещал имя стиля с цифры начать?). А функции STYLE() должно быть абсолютно безразлично откуда мы это имя стиля взяли...
Но и это не единственный способ коротко получить имя нужного стиля. Можно использовать VLOOKUP() на какую-то табличку в сторонке с граничными значениями в одном столбце и именами стилей в другом. Или вместо VLOOKUP'а использовать MATCH() и INDEX() (или OFFSET()). Да и табличку с именами стилей можно прямо в качестве параметров в формулу вставить, в фигурных скобках... Хотя нет, так формула опять станет ужасного вида...
В общем, идея забавная и реализаций у неё может быть много.
_________________
Владислав Орлов aka JohnSUN
LibreOffice 3.4.0 OOO340m1 (Build:12) WinXP SP2
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
RFJ



Репутация: +1    

Зарегистрирован: 02.08.2011
Сообщения: 59

СообщениеДобавлено: Пт Сен 09, 2011 6:33 am    Заголовок сообщения: Ответить с цитатой

Примеры реализации Ваших идей можете выложить?
На вышеприведенном образце (ссылку на файл я уже дал).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
JohnSUN



Репутация: 0    

Зарегистрирован: 29.08.2011
Сообщения: 39
Откуда: Киев, Украина

СообщениеДобавлено: Пт Сен 09, 2011 8:37 am    Заголовок сообщения: Ответить с цитатой

Чуть позже... Пока в процессе отладки

PS. Сорри! Тему перепутал... В процессе отладки макрос для отчеркивания текущей строки. Закончу его и (если время еще останется) попробую упростить форматирование через STYLE(). Хотя, тут интересный момент нарисовался, с этим самым условным форматированием.
Когда разбирался с той задачей обнаружил забавный момент: так-то форма для ввода условных форматов ограничена тремя позициями (условиями). А реально этот объект в размерах, кажется, не ограничен. То есть тем же бэйсиком можно натолкать очень много условий и форматов. Будет ли вся эта кухня сохранятся с документом - это еще вопрос. Но сам факт!
_________________
Владислав Орлов aka JohnSUN
LibreOffice 3.4.0 OOO340m1 (Build:12) WinXP SP2
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
RFJ



Репутация: +1    

Зарегистрирован: 02.08.2011
Сообщения: 59

СообщениеДобавлено: Пт Сен 09, 2011 1:44 pm    Заголовок сообщения: Ответить с цитатой

JohnSUN писал(а):
То есть тем же бэйсиком можно натолкать очень много условий и форматов. Будет ли вся эта кухня сохранятся с документом - это еще вопрос.

В моем примере этих условий точно больше 3, и все сохраняется в документе.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
JohnSUN



Репутация: 0    

Зарегистрирован: 29.08.2011
Сообщения: 39
Откуда: Киев, Украина

СообщениеДобавлено: Вс Окт 02, 2011 3:59 pm    Заголовок сообщения: Ответить с цитатой

Пара упрощенных формул находится здесь

RFJ писал(а):

В моем примере этих условий точно больше 3, и все сохраняется в документе.

Да я ведь и не говорил, что решение плохое! Просто формулу, которая подставляет нужный стиль, можно сильно упростить
_________________
Владислав Орлов aka JohnSUN
LibreOffice 3.4.0 OOO340m1 (Build:12) WinXP SP2


Последний раз редактировалось: JohnSUN (Вс Окт 02, 2011 6:52 pm), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
RFJ



Репутация: +1    

Зарегистрирован: 02.08.2011
Сообщения: 59

СообщениеДобавлено: Вс Окт 02, 2011 5:58 pm    Заголовок сообщения: Ответить с цитатой

Да, согласен.
С отдельным "Справочником стилей" получается изящнее.

PS. Пожалуйста, как-то выделяйте ссылку на файл, а то сразу и не заметишь (пока мышку не наведешь).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
JohnSUN



Репутация: 0    

Зарегистрирован: 29.08.2011
Сообщения: 39
Откуда: Киев, Украина

СообщениеДобавлено: Вс Окт 02, 2011 6:53 pm    Заголовок сообщения: Ответить с цитатой

Принято, поправил.

Не люблю файлообменники - один из первых сдал моё мыло спамерам. Забодался потом фильтры настраивать.

Нужно что-то с форумом делать. Файлы к сообщениям должны быть рядом с сообщениями. В чем проблема? Финансовые трудности? Ну, давайте скинемся... Какова цена вопроса?
_________________
Владислав Орлов aka JohnSUN
LibreOffice 3.4.0 OOO340m1 (Build:12) WinXP SP2
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
RFJ



Репутация: +1    

Зарегистрирован: 02.08.2011
Сообщения: 59

СообщениеДобавлено: Пн Окт 03, 2011 7:15 am    Заголовок сообщения: Ответить с цитатой

JohnSUN писал(а):
Не люблю файлообменники - один из первых сдал моё мыло спамерам.


А я просто регистрируюсь не на свой рабочий ящик, а на некий другой и мне все равно, что на нем творится. Периодически чищу его, удаляя там все подряд. А то и не чищу, если лень.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Форум Libreoffice -> Calc Часовой пояс: GMT
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Вы можете бесплатно создать форум на MyBB2.ru, RSS