Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

Название цвета ячейки согласно ее залития

Автор Иулия, 17.11.2022, 11:51:23

« назад - далее »

Иулия

Здравствуйте! Нужна формула, которая вставляла бы в соседнюю ячейку название цвета, например "оранжевый" согласно кода цвета залитой рядом ячейки.
Например А1 желтая, в ячейке В1 указывается цвет "желтый".
Возможно ли такое?
Цветов немного, всего четыре, в том числе и не залитые есть, их тоже нужно определить как белые или какой код у таких ячеек...
Я так понимаю, что нужно вначале определить код цвета, а потом на основании его дать имя, я не могу в гугл-таблице и кода определить.

Дмитрий Щербаков(The_Prist)

Цитата: Иулия от 17.11.2022, 11:51:23я не могу в гугл-таблице
так вопрос про Excel или про Гугл-Таблицы? Просто для Гугл у нас отдельная ветка в форуме - это две разные программы.
Ну и сразу скажу - формул встроенных таких нет, надо писать скрипт.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Иулия

Не туда написала)) сейчас перепишу в новой ветке.

Дмитрий Щербаков(The_Prist)

#3
Цитата: Иулия от 18.11.2022, 14:03:51сейчас перепишу в новой ветке
Нельзя этого делать - в правилах написано. Дубли тем не нужны. Достаточно написать, чтобы тему перенесли в нужный раздел.
По существу: я уже написал, что сделать это возможно исключительно скриптами. Умеете со скриптами работать?
В общем не знаю, умеете или нет - в скриптах создаете модуль(если его еще нет) и записываете код функции:
/**
* возвращает код цвета заливки ячейки
* @param {A1} colorRef Ссылка на ячейку, код цвета которой надо определить
* @customfunction
*/
function CelColor(colorRef) {
 var sheet = SpreadsheetApp.getActiveSpreadsheet();
 var color_cell = sheet.getRange(colorRef);
 var color = color_cell.getBackground();
 return color;
};


Т.к. в Google проблемы с обращением к ячейкам через ссылки(как в Excel), то проще на листе формулу записать так:
=CelColor(Cell("address";B3))
т.е. применить дополнительно встроенную функцию Cell, чтобы в свою функцию передать именно Адрес ячейки в текстовом виде. Проанализируете возвращаемые коды и либо совместно с встроенными функциями, либо в скрипте можно будет уже дописать какой код какому текстовому названию соответствует.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Иулия

Здравствуйте! Да, со скриптами умею. Спасибо большое! Буду пробовать.

Иулия

У меня все получилось.
Я название цвета в формулу прописала через если.
Но, если я вдруг заливаю ячейку другим цветом (для теста в том числе), у меня код не меняется сразу, только если я произвожу какие-то действия, например, добавлю столбец рядом, после обновления страницы тоже не обновляет. Почему такое происходит?

Дмитрий Щербаков(The_Prist)

Цитата: Иулия от 20.11.2022, 13:48:28Почему такое происходит?
потому что скрипт не может запускаться при изменении формата ячейки. Никакой. Даже события такого нет. Поэтому после смены заливки в обязательном порядке надо пересчитывать функции принудительно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Иулия

Спасибо огромное за информацию!!!

Яндекс.Метрика Рейтинг@Mail.ru