Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 是否可以基于一个单元格中的1个值创建2个不同的dropdownlist?_Excel_Excel 2010 - Fatal编程技术网

Excel 是否可以基于一个单元格中的1个值创建2个不同的dropdownlist?

Excel 是否可以基于一个单元格中的1个值创建2个不同的dropdownlist?,excel,excel-2010,Excel,Excel 2010,在阅读了许多教程之后,我成功地制作了一个非常有效的动态下拉列表 我的问题是,假设我想添加第三个depend单元格,而问题的名称MyCell已经用过一次了 我使用这行代码绑定第一个dropdownlist(间接(替换($U22,“,”)和“Col”)),1) 是否可以在这行代码中添加如下内容 (INDIRECT(SUBSTITUTE($U22+"Other"," ","")&"Col")),1)` 至于绑定第二个dropdownlist以便我可以命名一个单元格:MyCellOther包含

在阅读了许多教程之后,我成功地制作了一个非常有效的动态下拉列表

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

我使用这行代码绑定第一个dropdownlist
(间接(替换($U22,“,”)和“Col”)),1)

是否可以在这行代码中添加如下内容

(INDIRECT(SUBSTITUTE($U22+"Other"," ","")&"Col")),1)`

至于绑定第二个dropdownlist以便我可以命名一个单元格:MyCellOther包含我要添加的其他值

我将详细说明我在上面的评论中的意思:

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

多层下拉列表的解释性示例-2种方法

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

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

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

在A1中创建下拉列表

在表2中,A1输入“水果”,然后在A2输入“肉”。在表2中选择A1:A2,并将该范围命名为“主要类型”。在活页1、A1上,制作一个下拉列表,限制为“=主要类型”。这将创建第一个下拉列表

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

首先,在表2中组织数据。在活页2 B1上,夏季型,C1冬季型。图2 B2型红肉,C2型家禽。选择B1:C2,并将该范围命名为“子类别”

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

在Sheet1 A2上,将单元格设置为一个下拉列表,该列表引用列表子类别。但是,我们希望对其进行限制,以便它不会显示“其他”饼图类型的类别。如果我们想将其硬编码为仅显示水果子类别,我们可以使用:

=INDEX(SUB_CATEGORIES,1,0) 
这表示-取SUB_类别的第1行(水果行),对于列,取所有列(我们通过将“0”放在上面来显示;它假设我们需要所有可用列,这非常方便)

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

=INDEX(SUB_CATEGORIES,MATCH(A1,MAIN_TYPES,0)
这将搜索A1中拾取的饼图类型,超出主类型范围,然后将该行号返回给索引函数。现在,这个索引函数返回子类别的一行(和两列),基于与所选的主类型对齐的行

使用编号的命名范围在A3中创建下拉列表

在表2中,添加最后一块数据-每种饼图类型的特定列表。D1型桃、D2型樱桃、D3型大黄;将此列表命名为水果1[这将是夏季水果]。E1型苹果、E2型南瓜;将此列表命名为水果2[这将是冬季水果]。F1型牛肉,F2型羔羊;将此列表命名为肉类1[这将是红肉]。G1型鸡;将此单元格命名为Meat2[这将是家禽]

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

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

=INDIRECT(A4)
我们将获取他们已经提供的信息,并将其组合以创建该名称,而不是在子类别的名称中使用用户类型。具体来说,我们将结合(1)用户已经选择的主饼图,以及(2)他们选择的子饼图类别的列号。他们选择的主要类型只是A1中的文本。子类别的列号可使用索引和匹配功能找到,类似于上述:

=MATCH(A2, INDEX(SUB_CATEGORIES,MATCH(A1,MAIN_TYPES,0),0)
记住上面的公式“=索引(子类别,匹配(A1,主类型,0)'为我们提供了与水果或肉类对齐的行。在这里,我们获取该行,并使用MATCH查找与A2对齐的列#。我们可以将所有这些与A1中的文本组合在一起,它将为A3中的最终下拉列表提供子类别的名称:

=INDIRECT(A1 & MATCH(A2, INDEX(SUB_CATEGORIES,MATCH(A1,MAIN_TYPES,0),0))
这就是全部


上面的内容可以外推到您的数据中,但它展示了如何(1)创建一个下拉列表,该列表引用了主_类型的命名列表;(2)创建一个下拉列表,在子_类别的2D范围中查找特定行;(3)使用间接函数创建一个“级联”下拉列表;以及(4)在一个范围的名称中使用数字来表示多个类似的列表。

在您阅读的任何教程中使用术语MyCell都只是一个随机的字母串,而不是用户尚未使用的字母串