Excel 公式和条件格式:如何根据条件匹配另一个 table 中的当前单元格
Excel Formula & Conditional Formatting: How to match current cell in another table based on criteria
我有一个 excel 工具可以用来为客户制定膳食计划。我 select 客户,从列表中选择预先设定的膳食并将其编制成计划,并将其分配给个人。
我想创建一个 function/conditional 格式来突出显示任何给定膳食计划中的特定成分,如果个人“不能”t/won 不能吃的话。这是基于他们的个人喜好。
Sheet 1:
包含 table 个客户端名称,以及关联的 ID。有一个下拉框允许用户select他们正在为谁创建计划。
Sheet 2:
包含 table 成分,最右边的列包含客户 ID,作为文本,以防 client/s.
不喜欢给定成分
Sheet 3:
列出膳食(和配料),然后编入计划的地方。这是我希望应用条件格式的地方,突出显示客户不喜欢的成分。
注意:表格实际上不是这个顺序
我在单元格中弄乱了这个公式;
=IF(IFERROR(IF(FIND(ID,INDEX(IngredientTable,(MATCH(IngredientInMealPlan,Sheet2!A:A,0)),9))>0,"Dislike","Error"),"Error")="Dislike",IngredientInMealPlan,"")
哪里;
IngredientTable = table 的成分,它们的价值,IDs/dislikes on Sheet 2
IngredientInMealPlan = 在 Sheet 3
上编制膳食时将是有问题的成分
Sheet2!A:A = A 列,用于查找成分名称
我意识到公式有点笨拙,我不确定如何收紧它。它确实开始看起来我可能正朝着正确的方向前进,但有几个问题;
- 我不确定如何解决与特定单元格相关的 IngredientInMealPlan,我认为如果它是一个范围
,公式将不起作用
- 我不确定如何将其转化为条件格式,并将其应用于 Sheet 3 上的范围 D:D,其中编译了膳食计划。
我乐于接受关于如何实现它的想法。虽然我意识到这会让事情变得更容易,但我真的不想在 Sheet 3 上的成分 Table 中添加额外的列。我对 VBA 毫无用处。
我得到了一些帮助,这个公式有效并解决了我的问题:)
=IFERROR(FIND('Sheet1'!$G,(INDEX(Ingredients!I:I,MATCH(D2,Ingredients!A:A,0)))),0)>=1
在哪里;
D2 - 是 'Sheet 3' 上的第一个成分。当条件格式应用于 D 列时,此参考沿列向下更改(例如 D3、D4 ... 等)
Ingredients!A:A - 是实际成分名称的列
成分!I:I - 是不喜欢的列
'Sheet1'!$G$1 - 是客户端ID,已被选中
当公式在不喜欢列中找到客户 ID 时,将应用格式,提醒用户注意特定客户不喜欢的特定成分。
我有一个 excel 工具可以用来为客户制定膳食计划。我 select 客户,从列表中选择预先设定的膳食并将其编制成计划,并将其分配给个人。
我想创建一个 function/conditional 格式来突出显示任何给定膳食计划中的特定成分,如果个人“不能”t/won 不能吃的话。这是基于他们的个人喜好。
Sheet 1: 包含 table 个客户端名称,以及关联的 ID。有一个下拉框允许用户select他们正在为谁创建计划。
Sheet 2: 包含 table 成分,最右边的列包含客户 ID,作为文本,以防 client/s.
不喜欢给定成分Sheet 3: 列出膳食(和配料),然后编入计划的地方。这是我希望应用条件格式的地方,突出显示客户不喜欢的成分。
注意:表格实际上不是这个顺序
我在单元格中弄乱了这个公式;
=IF(IFERROR(IF(FIND(ID,INDEX(IngredientTable,(MATCH(IngredientInMealPlan,Sheet2!A:A,0)),9))>0,"Dislike","Error"),"Error")="Dislike",IngredientInMealPlan,"")
哪里;
IngredientTable = table 的成分,它们的价值,IDs/dislikes on Sheet 2
IngredientInMealPlan = 在 Sheet 3
上编制膳食时将是有问题的成分Sheet2!A:A = A 列,用于查找成分名称
我意识到公式有点笨拙,我不确定如何收紧它。它确实开始看起来我可能正朝着正确的方向前进,但有几个问题;
- 我不确定如何解决与特定单元格相关的 IngredientInMealPlan,我认为如果它是一个范围 ,公式将不起作用
- 我不确定如何将其转化为条件格式,并将其应用于 Sheet 3 上的范围 D:D,其中编译了膳食计划。
我乐于接受关于如何实现它的想法。虽然我意识到这会让事情变得更容易,但我真的不想在 Sheet 3 上的成分 Table 中添加额外的列。我对 VBA 毫无用处。
我得到了一些帮助,这个公式有效并解决了我的问题:)
=IFERROR(FIND('Sheet1'!$G,(INDEX(Ingredients!I:I,MATCH(D2,Ingredients!A:A,0)))),0)>=1
在哪里;
D2 - 是 'Sheet 3' 上的第一个成分。当条件格式应用于 D 列时,此参考沿列向下更改(例如 D3、D4 ... 等)
Ingredients!A:A - 是实际成分名称的列
成分!I:I - 是不喜欢的列
'Sheet1'!$G$1 - 是客户端ID,已被选中
当公式在不喜欢列中找到客户 ID 时,将应用格式,提醒用户注意特定客户不喜欢的特定成分。