2017-03-15 68 views
0

我不太熟悉Excel,但我很快学习,并且我在基于从下拉列表中的选择输出数据时遇到了问题。这是我想要做的。我建立了下拉列表,让用户先选择一个名称,然后选择类别,然后根据他们的类别选择,他们从一个子类别中进行选择。我想要做的是根据他们选择的子类别,我想根据他们从下拉列表中选择的值输出一串文本。寻找输出数据基于从下拉列表中选择

示例将是用户从下拉列表中选择Tom。 用户然后从类别列表中选择食物。 用户然后从子类别列表中选择早餐(在B4栏中)。

我想要做的是输出一串文字,列出我在Sheet2上列出的早餐类别下列出的所有内容。在早餐的Sheet2上,我有以下值:谷物,吐司,煎饼(每个都在自己的细胞中列出)。以下是我想有显示的工作表Sheet1上的输出:

Tom Cereal 
Tom Toast 
Tom Pancakes 

什么对我来说是实现这一目标的最简单的方法?我试了下面的说法:

=IF(B4='Breakfast',Sheet2!Breakfast,"") 

会发生什么,它只是输出汤姆薄煎饼。如何让它输出每行而不是最后一行?我需要使用计数器功能吗?任何帮助,将不胜感激!

+1

您的工作表和你想要的结果的屏幕截图将是非常有用的。他们是什么样的下拉列表? ActiveX,数据验证列表,......? – nbayly

+0

我可以发布今晚的屏幕截图,但下拉列表是数据验证列表 –

+0

http://i456.photobucket.com/albums/qq289/gr8scottaz/Sheet1.jpg –

回答

0

假设的5个值的最大数量,在B5开始B9你会放置以下数组公式:

=IF(indirect("Sheet2!"&SUBSTITUTE(ADDRESS(1,MATCH(B3,Sheet2!1:1,0),4),"1","")&"2:"&SUBSTITUTE(ADDRESS(1,MATCH(B3,Sheet2!1:1,0),4),"1","")&"6")<>"",B1&" "&indirect("Sheet2!"&SUBSTITUTE(ADDRESS(1,MATCH(B3,Sheet2!1:1,0),4),"1","")&"2:"&SUBSTITUTE(ADDRESS(1,MATCH(B3,Sheet2!1:1,0),4),"1","")&"6"),"") 

请注意,选择5个细胞,并把公式之后,将其设置为按CTRL + SHIFT + ENTER排列公式。将公式放在大括号“{}”中时,您会确认它是一个数组公式。

公式逻辑如下:

- 。如果找到Sheet2中的哪一列包含选定的子目录,则使用MATCH。

- 。 ADDRESS然后将列号转换为列字母

- 。使用INDIRECT,然后引用正确的列将值从Sheet2拉入数组中。

- 。使用这个数组,它首先检查它是否有任何值,以便我们可以排除任何空白单元格

- 。如果数组项不为空,则将所选名称与数组的每个部分连接起来。

- 。如果数组项是空的,它返回一个空白单元格

希望这可以帮助你。问候,

相关问题