Формула Excel и условное форматирование: как сопоставить текущую ячейку в другой таблице на основе критериев - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть превосходный инструмент, который я использую, чтобы составить план питания для клиентов. Я выбираю клиента, выбираю заранее заданные блюда из списка и собираю их в план, а затем назначаю их индивидуально.

Я хочу создать функцию / условное форматирование, которое выделит конкретные ингредиенты в любом заданном плане питания, если человек «не может / не будет есть» их. Это основано на их индивидуальных предпочтениях.


Лист 1: Содержит таблицу имен клиентов со связанным идентификатором. В раскрывающемся списке пользователь может выбрать, для кого он создает план.

ID Selector

Лист 2: Содержит таблицу ингредиентов с самым дальним правым столбцом, содержащим идентификаторы клиента в виде текста, в случае, если данный ингредиент не нравится клиенту / с.

Ingredient Table

Лист 3: Где перечислены блюда (и ингредиенты), а затем составлены в план. Вот где я хотел бы применить условное форматирование, выделив ингредиенты, если они не нравятся клиенту.

Meal Plan

Примечание: листы на самом деле не в этом порядке


Я возился с этой формулой в ячейке;

=IF(IFERROR(IF(FIND(ID,INDEX(IngredientTable,(MATCH(IngredientInMealPlan,Sheet2!A:A,0)),9))>0,"Dislike","Error"),"Error")="Dislike",IngredientInMealPlan,"")

Где;

IngredientTable = Таблица ингредиентов, их значений и идентификаторов / антипатий на листе 2

IngredientInMealPlan = Будет компонентом, о котором идет речь, при составлении блюд на листе 3

Sheet2! A: A = столбец A, для поиска названий ингредиентов


Я понимаю, что формула немного неуклюжая, я не очень уверен, как подтянуть его. Он начал выглядеть так, как будто я движусь в правильном направлении, но есть несколько проблем:

  • Я не уверен, как обойти IngredientInMealPlan , относящихся к конкретная c ячейка, я не думаю, что формула будет работать, если это диапазон
  • Я не уверен, как преобразовать это в условное форматирование и применить его к диапазону D: D на листе 3, где составляются планы питания.

Я открыт для идей о том, как это реализовать. Хотя я понимаю, что это облегчит задачу, на самом деле я не хочу добавлять дополнительный столбец в таблицу ингредиентов на листе 3. Я бесполезен с VBA.

1 Ответ

0 голосов
/ 23 апреля 2020

Мне помогли, эта формула работает и решает мою проблему :)


=IFERROR(FIND('Sheet1'!$G$1,(INDEX(Ingredients!I:I,MATCH(D2,Ingredients!A:A,0)))),0)>=1

Где;

D2 - это первый ингредиент на листе 3. Поскольку условное форматирование применяется к столбцу D, эта ссылка изменяется вниз по столбцу (например, D3, D4 ... Et c.)

Ингредиенты! A: A - это столбец для фактического названия ингредиента

Ингредиенты! I: I - столбец для Dislikes

'Sheet1'! $ G $ 1 - это идентификатор клиента, который был выбран


As формула находит идентификатор клиента в столбце неприязни, применяется форматирование, предупреждая пользователя об указанном c ингредиенте, который не нравится конкретному клиенту.

...