1

让我再试一次,我一直在网上搜索,似乎找不到任何东西。我想要做的是在 excel 中有一个基于另一个单元格值的命名范围列表条件。当我设置数据验证并将所有 IF 语句放在源文本框中时遇到字符限制的问题。如果我只设置两个条件,它似乎可以正常工作,但这对我不起作用。这是我的示例数据,基于我想要显示它的有效子项的 B 列值。就像我提到的那样,我在 B 列中有 20 个左右不同的可能值。

          B     C
      1 ENG     dropdown of all engineering sub-categories
      2 PRO     dropdown of all production sub-categories
      3 PER     ...
      4 PAY
      5 ENG     dropdown of all engineering sub-categories  
      6 ENG     dropdown of all engineering sub-categories

当我尝试在 C1 列上设置我的数据验证列表时,我输入了以下内容......

=IF($E$5="CAR", CA,
IF($E$5="DCC", DCC,
IF($E$5="ENG", ENG,
IF$E$5="ENV", ENV,
IF$E$5="FBI", BI,
IF$E$5="FGL", GL, 
IF$E$5="FAP", AP, 
IF$E$5="FRE", AR, 
IF$E$5="FTX", Tax, 
IF$E$5="ORM", OAR, 
IF$E$5="PAY", PAY, 
IF$E$5="PIR", PER, 
IF$E$5="PRO", PRO, 
IF$E$5="PUR", PUR, 
IF$E$5="RSK", RM, 
IF$E$5="SLM", Sales,
IF$E$5="WFS", WAR)))))))))))))))))

我只能输入我的 IF 条件的一半。我尝试了 VLOOKUP,但它只允许将 1 个值放在 C 列中,我希望它是一个下拉列表。任何帮助将不胜感激。

4

1 回答 1

3

VLOOKUP您可以通过组合and以更短的公式执行此操作INDIRECT

您是否列出了 B 列中的潜在名称以及它们在两列中某处的相应范围名称,例如 X 列和 Y 列:

Col X Col Y
汽车CA
DCC DCC
英文
环境环境
联邦调查局商业情报局
...

然后使用以下公式作为数据验证中列表的来源:

=INDIRECT(VLOOKUP($E$5,$X:$Y,2,0))

实际上,使用这种方法,您甚至可以节省命名和维护手动范围名称的工作!相反,只需将命名范围的名称替换为真实地址 - 凭借一点运气和智能公式工程 - 您可以自动推导。这取决于您的数据结构,但很可能函数ADDRESSCOUNTAOFFSETINDEXMATCH有所帮助。

例如,如果您的列表将存储在另一个工作表中,列表名称位于第一行,并且每个标题下方列出了元素,则此示例文件将为您提供示例公式。更进一步,它还将使用条件突出显示来标记任何无效的条目,例如,因为在选择后类型已更改:

在此处输入图像描述

于 2013-02-24T21:43:00.323 回答