【问题标题】:How to put formula in Data Validation List Excel?如何将公式放入数据验证列表 Excel 中?
【发布时间】:2017-03-20 10:49:10
【问题描述】:

我正在创建一个带有以下数据验证下拉列表的 Excel 工作表。

  1. 不适用
  2. 完成
  3. (在这里添加一些公式)

基本上,我可以从下拉列表中选择纯文本“NA”/“Done”。但有时,我希望用户能够根据与所选行相对应的单元格计算一些值,因此,我希望在数据验证下拉列表中选择一个公式。这可能吗?

数据验证列表来源

当我点击“公式”选项时,它应该针对该行中的单元格执行公式

但目前,我输入的公式并没有执行,而是在激活时只会在单元格中显示整个公式。

1)我怎样才能做到,当我从数据验证列表中选择公式时,它会执行它而不是用它填充单元格?

2)我如何设置公式以便它使用当前行中的单元格? (例如,如果我在 N60 中使用数据验证列表,则公式应自行调整以使用单元格(比如说 A60?)。

【问题讨论】:

  • 你试过什么?快速谷歌搜索发现了几种不同的方法来做到这一点
  • @Pomul 当你知道你在找什么时,谷歌很容易
  • 对于 #2 的答案,我无法在您的原始公式中说明,但如果您在单元格 N60 >$A2 或 -$A2 中应该可以工作。 A2 将是您在该列中有数据的第一个单元格(因此它将忽略 A1,您的列标题)。既然你告诉它用 $ 留在 A 中,它应该调整行号。希望这会有所帮助。

标签: list excel validation excel-formula vba


【解决方案1】:

我可能无法为第二部分提供帮助,但我正在寻找第一部分的答案并使用名称管理器发现了一个解决方案/解决方法。

首先,在公式 > 名称管理器中,创建一个新引用(“引用”将包含您希望最终显示在验证列表中的任何公式。对于本示例,我们使用公式引用“=IF($ H54=...”并将其命名为“UniqueName”

现在,我们进入数据验证,选择列表,并输入我们希望在列表中显示的三个项目,在我们新命名的引用前面加上一个等号:即。 "NA,Done,=UniqueName"

注意:您不能以 =UniqueName 开头,否则验证将尝试将其全部作为公式读取并失败。

此方法将允许用户在单元格中显示“NA”、“Done”或“=UniqueName”;如果选择了“=UniqueName”,则单元格本身会将其解释为公式并相应地执行它,显示“=IF($H54=...”的结果,或者您指定用作命名公式的任何其他内容。

如果对你来说为时已晚,我希望这可以帮助其他可能面临类似问题的人。

【讨论】:

    【解决方案2】:

    虽然我想我知道你想说什么。您为什么不只使用 IF 公式来评估所有内容,而不是手动为每一行选择一个下拉列表。您已经使用 IF 部分解决了它。只需添加“完成”和“不适用”的条件

    =if(A1="date","Done",if(A1<"date","NA",if(something else until you have all your catergories))
    

    【讨论】:

    • 任务完成后,用户将选择 Done 和 NA 选项。所以我无法使用 if 语句进行设置
    【解决方案3】:

    只是从 Mark 的回应中汲取灵感。

    如果您确实需要将您命名的公式作为列表中的第一个选择,您可以使用前导逗号设置您的列表,如下所示:

    ,=UniqueName,NA,完成

    这对我有用,并且数据验证下拉列表中没有列出空项目。希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 2014-11-12
      • 2021-10-14
      • 1970-01-01
      • 2023-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      相关资源
      最近更新 更多