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

阅读了许多教程后,我设法做出了一个非常有效的dynamic下拉列表

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

我使用这行代码来绑定第一个下拉列表(INDIRECT(SUBSTITUTE($U22," ","")&"Col")),1)

是否有可能添加到这行代码的东西

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

至于绑定第二个下拉列表,所以我可以命名一个单元格: MyCellOther女巫包含我想添加的另一个值

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

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

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

Sheet1将持有最终用户的下拉select。 Sheet2将保存您的原始列表数据库。

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

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

在A1中创build下拉列表

在Sheet2上,A1input“Fruit”,然后在A2上input“Meat”。 在工作表2上selectA1:A2,并将该范围命名为“MAIN_TYPES”。 在Sheet1,A1上,创build一个仅限于“= MAIN_TYPES”的下拉列表。 这将创build第一个下拉列表。

使用二维数据块在A2中创build子类别下拉列表

首先,在sheet2上组织你的数据。 在Sheet2 B1上,在C1型Winter上键入Summer。 在C2型家禽的Sheet2 B2型红肉上。 selectB1:C2,并将其命名为“SUB_CATEGORIES”。

因此,用户已经select了水果或肉类。 我们希望此下拉列表仅显示该特定types的子类别。 我们可以通过参考Sheet2第一行包含水果派和第二行包含肉馅饼的事实来做到这一点。

在Sheet1 A2上,使单元格成为列表SUB_CATEGORIES的下拉列表。 但是,我们想限制它,以便它不显示“其他”饼图types的类别。 如果我们想硬编码这个只显示水果子类别,我们可以使用:

 =INDEX(SUB_CATEGORIES,1,0) 

这就是说 – 取SUB_CATEGORIES(水果行)的第一行,对于列,取所有列(我们通过在上面放置'0'来显示;假设我们想要所有可用的列,这非常方便)。

为了使这个dynamic的,并基于A1的select,我们可以用MATCH公式replace上面的'1',它查看在一行/一列数据中find特定searchstring的位置。 像这样:

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

这将在MAIN_TYPES范围外searchA1中拾取的饼图types,然后将该行号返回到INDEX函数。 所以现在,这个INDEX函数根据与所选MAIN_Typealignment的行,返回一个单独的行(和两列)子类别。

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

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

现在,在Sheet1单元格A3上,用户将需要从已经select的types和子类别中select哪个馅饼。 如果我们想把这个硬编码为冬季成果,那么下拉列表的公式就是:

 =Fruit2 

但是,如果上面select的话,我们只想展示冬季水果的select。 考虑一下:如果我们想让用户input“Meat1”到A4,我们可以在A3中input下面的公式,它会显示这个列表:

 =INDIRECT(A4) 

我们将取代已经提供的信息,而不是让用户键入子类别的名称,然后将其组合起来创build该名称。 具体来说,我们将结合(1)用户已经select的饼图主要和(2)他们select的Sub_Category的列号。 他们select的Maintypes只是A1中的文本。 子类别的列号使用索引和匹配functionfind,类似于上面:

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

请记住,上面的公式'= INDEX(SUB_CATEGORIES,MATCH(A1,MAIN_TYPES,0)'给了我们与Fruit或Meatalignment的行,我们取这行,用MATCHfind与A2alignment的列。我们可以将所有这些与A1中的文本结合起来,它将给我们A3中最后一个下拉列表的子类别名称:

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

这就是它的一切。

以上内容可以推断为您的数据,但它显示了如何(1)做一个下拉列表,指向MAIN_TYPES的一个指定列表; (2)做一个在SUB_CATEGORIES的二维范围内寻找特定行的下拉列表; (3)使用间接函数创build“级联”下拉列表; (4)使用范围名称中的数字来表示多个相似的列表。

迈克·吉尔文形容这一点,你可以尽可能多地做到这一点。