Excel: могу ли я создать условную формулу на основе цвета ячейки?

Я начинаю и пытаюсь создать формулу, которая изменяет содержимое ячейки A1 на основе цвета ячейки в B2;

Если ячейка B2 = [цветная красная], тогда отобразите FQS.

Если ячейка B2 = [желтый цвет], тогда отобразите SM.

Это условие зависит от цвета заполнения ячейки.

Ответы

Ответ 1

К сожалению, нет прямого способа сделать это с помощью одной формулы. Однако существует довольно простой способ обхода, который существует.

На ленте Excel перейдите к "Формулам" и нажмите "Диспетчер имен". Выберите "Создать", а затем введите "CellColor" в качестве "Name". Перейдите в раздел "Относится к" и введите следующее:

=GET.CELL(63,OFFSET(INDIRECT("RC",FALSE),1,1))

Нажмите "ОК", затем закройте окно "Диспетчер имен".

Теперь в ячейке A1 введите следующее:

=IF(CellColor=3,"FQS",IF(CellColor=6,"SM",""))

Это вернет FQS для красного и SM для желтого. Для любого другого цвета ячейка останется пустой.

*** Если значение в A1 не обновляется, нажмите "F9" на клавиатуре, чтобы заставить Excel обновить вычисления в любой точке (или если цвет в B2 когда-либо изменился).

Ниже приведена ссылка на список цветов заливки ячеек (доступно 56), если вы когда-либо захотите расширить свои возможности: http://www.smixe.com/excel-color-pallette.html

Приветствия.

:: Edit::

Формула, используемая в Менеджере имен, может быть еще более упрощена, если она поможет вам понять, как она работает (версия, которую я включил выше, намного более гибкая и удобна в использовании при проверке нескольких ссылок на ячейки при копировании, поскольку она использует его собственный адрес ячейки в качестве контрольной точки вместо специально нацеленной на ячейку B2).

В любом случае, если вы хотите упростить ситуацию, вы можете использовать эту формулу в Менеджере имен:

=GET.CELL(63,Sheet1!B2)

Ответ 2

Вы можете использовать эту функцию (я нашел ее здесь: http://excelribbon.tips.net/T010780_Colors_in_an_IF_Function.html):

Function GetFillColor(Rng As Range) As Long
    GetFillColor = Rng.Interior.ColorIndex
End Function

Вот объяснение, как создать пользовательские функции: http://www.wikihow.com/Create-a-User-Defined-Function-in-Microsoft-Excel

В вашем рабочем листе вы можете использовать следующее: =GetFillColor(B5)