可以根据单元格中的1值制作2个不同的下拉列表吗?

时间:2015-08-11 17:19:48

标签: excel excel-2010

阅读了很多教程之后,我设法制作了一个非常有效的动态下拉列表

我的问题是,假设我想添加第三个依赖单元格, MyCell 的名称已经使用过一次

我正在使用这行代码来绑定第一个下拉列表a[0][0]

是否可以在此行代码中添加类似

的代码
(INDIRECT(SUBSTITUTE($U22," ","")&"Col")),1)

绑定第二个下拉列表,这样我就可以命名一个单元格: MyCellOther 包含我要添加的其他值

2 个答案:

答案 0 :(得分:2)

mike Girvan很好地描述了你可以根据需要做到这一点。

答案 1 :(得分:2)

我将在上面的评论中阐述我的意思:

命名范围的名称可以是您想要的任何未被Excel用作术语的名称。在命名范围时,您应该小心使用直观显示其含义的逻辑术语。如果在有序列表中使用一系列相似的名称,请考虑将它们编号为1到9,或者考虑将2D数据块用作单个范围。我会告诉你如何做到这两点。

多层下拉列表的说明示例 - 2种方法

Sheet1将保留最终用户的下拉选择。 Sheet2将保留您的原始列表数据库。

在Sheet1上,假设A1是一个允许用户输入他们想要的馅饼类型的单元格。有两种类型:水果或肉类。此外,每种类型中有两个子类别:水果(夏季)/水果(冬季)或肉类(红肉)/肉类(家禽)。

如果用户在A1中输入他们想要的馅饼类型(可能是下拉菜单本身),我们希望A2显示一个下拉列表,允许他们进一步选择他们想要的子类别。然后,我们希望A3根据主要类型中的子类别显示每个特定饼图的下拉列表。

在A1中创建下拉列表

在Sheet2上,A1输入" Fruit",然后在A2上输入" Meat"。在sheet2上选择A1:A2,并命名该范围" MAIN_TYPES"。在Sheet1,A1上,创建一个限于" = MAIN_TYPES"的下拉列表。这将创建第一个下拉列表。

使用2D数据块在A2中创建子类别下拉列表

首先,在sheet2上整理数据。在Sheet2 B1上,键入Summer,在C1类型Winter上。在Sheet2 B2型红肉上,在C2型家禽上。选择B1:C2,并命名该范围" SUB_CATEGORIES"。

因此,用户已经选择了Fruit或Meat。我们希望此下拉列表仅显示该特定类型的子类别。我们可以通过引用Sheet2第1行包含水果馅饼的事实来做到这一点,第2行包含肉馅饼。

在Sheet1 A2上,将单元格设为下拉列表,该列表引用列表SUB_CATEGORIES。但是,我们希望限制它,以便它不会显示其他'的其他类别。馅饼类型。如果我们想要将其硬编码为仅显示Fruit子类别,我们可以使用:

=INDEX(SUB_CATEGORIES,1,0) 

这说 - 取SUB_CATEGORIES(果实行)的第1行,对于列,取所有列(我们通过上面的' 0'来表示这一点;它假设我们想要所有可用的列,这非常方便。)

为了使这种动态,并根据A1的选择,我们可以替换' 1'以上使用MATCH公式,该公式查看在数据的行/列中找到特定搜索字符串的位置。像这样:

=INDEX(SUB_CATEGORIES,MATCH(A1,MAIN_TYPES,0)

这将搜索在MAIN_TYPES范围之外的A1中选取的饼图类型,然后将该行编号返回到INDEX函数。所以现在,这个INDEX函数返回子类的单行(和两列),基于与所选MAIN_Type对齐的行。

使用编号的命名范围

在A3中创建下拉列表

在sheet2上,添加最后一个数据块 - 每种饼图的特定列表。在D1型桃上,在D2型樱桃上,在D3型大黄上;将此列表命名为Fruit1 [这将是夏季水果]。在E1型苹果上,E2型南瓜;将此列表命名为Fruit2 [这将是冬季水果]。关于F1型牛肉,F2型羊肉;将此列表命名为Meat1 [这将是红肉]。关于G1型鸡;将这个细胞命名为Meat2 [这将是家禽]。

现在,在Sheet1,单元格A3上,用户需要从已选择的类型和子类别中选择哪个饼图。如果我们想将此硬编码为冬季水果,下拉列表的公式将只是:

=Fruit2

但是,如果选择上面的水果,我们只想展示冬季水果的选择。考虑一下:如果我们想让用户只输入" Meat1"到A4,我们可以在A3中放入以下公式,它会显示该列表:

=INDIRECT(A4)

我们不会让用户输入子类别的名称,而是会获取他们已经提供的信息,并将其组合起来创建该名称。具体来说,我们将(1)用户已经选择的主要饼干与(2)他们选择的Sub_Category的列号组合在一起。他们选择的主要类型只是A1中的文本。子类别的列号可以使用Index& amp;匹配功能,类似于上面:

=MATCH(A2, INDEX(SUB_CATEGORIES,MATCH(A1,MAIN_TYPES,0),0)

请记住上面的公式' = INDEX(SUB_CATEGORIES,MATCH(A1,MAIN_TYPES,0)'给了我们与Fruit或Meat对齐的行。这里我们取这一行,并使用MATCH找到与A2对齐的列#。我们可以将所有这些与A1中的文本结合起来,它将为我们提供A3中最终下拉列表的子类别的名称:

=INDIRECT(A1 & MATCH(A2, INDEX(SUB_CATEGORIES,MATCH(A1,MAIN_TYPES,0),0))

这就是它的全部内容。

以上内容可以为您的数据推断,但它显示了如何(1)执行一个引用MAIN_TYPES命名列表的下拉列表; (2)执行下拉列表,查找2D范围SUB_CATEGORIES中的特定行; (3)创建一个级联的'下拉列表使用间接功能; (4)使用范围名称中的数字来表示多个相似的列表。