2017-07-16 222 views
0

我正在为膳食计划编写Excel文档。我正在尝试创建一个功能,使我能够搜索以查看膳食是否在列中,如果膳食在列中,则返回配料。Excel函数:如果单元格等于另一个单元格的范围,则返回其他三个项目

第一板看起来是这样的:

   Breakfast  Lunch   Dinner 
Monday  Cereal   PB&J 
Tuesday          Pizza 
Wednesday  Coffee 
Thursday      PB&J 
Friday 

在第二片,我有这样写的食谱:

PB&J  Peanut Butter  Jelly  Bread 
Pizza  Cheese   Sauce  Pie Crust 

我要搜索的所有实例的第一片一个食谱,可以说PB & J.如果PB & J显示,我希望它返回花生酱,果冻和面包(我的购物清单)。

但我不确定如何编写可能返回多个项目的函数。任何帮助将不胜感激!

+0

是配料的数量总是三,可以多与代表一种成分,每列? – Piyush

+0

它可能更取决于配方 – Megan

回答

1

比方说,你的床单都设置这样的:

Sheet1
enter image description here
所以你的一周和食物选择天都在顶部。

Sheet2,你的配料清单,是这样的: enter image description here

返回工作表Sheet1上,让我们使用A7只要你想查找的食物。在B7,你可以使用一个简单的VLOOKUP()

=VLOOKUP($A7,Sheet2!$A$1:$K$3,COLUMN(),FALSE) 

,右拖一堆列。要隐藏0回报,只是包装公式中的IF声明:

=IF(VLOOKUP($A7,Sheet2!$A$1:$K$3,COLUMN(),FALSE)=0,"",VLOOKUP($A7,Sheet2!$A$1:$K$3,COLUMN(),FALSE)) 
+0

哇,这是非常有益的,正是我需要做的。谢谢你的帮助! – Megan

1

这里是你可以做什么。可以说,配料表被称为'成分'。您可以首先在“Exists”列中检查配方的特定实例是否存在于范围内。然后,如果它存在另一列可以显示成分作为逗号分隔列表。

Formulas: 

    Recipe exists : `=COUNTIF($B$2:$D$6,"*"&F2&"*")>0` 
    Get Ingredients : `IF(G2,TEXTJOIN(", ",TRUE,Ingredients!B1:Ingredients!D1))` 

    Col F contains the recipe names, 
    Col G indicates whether the recipes exists in the range. 

enter image description here

enter image description here

+0

我喜欢你使用'TEXTJOIN()'把它全部保存在一个单元格中。很好的思想! – BruceWayne

相关问题