多个 if 函数不会产生过多参数错误

多个 if 函数不会产生过多参数错误

在我添加最后一个 IF 语句之前,以下公式一直有效。通过研究,我完全理解这个错误的含义。但是,我不知道需要做什么才能保留功能并使这个公式正常工作。

我想要检查的是三种具体情况。所有情况都与今天的日期比较有关。

  1. 如果单元格小于今天的值。

  2. 如果单元格的值介于今天日期之前的 1 至 10 天之间。

  3. 如果单元格的值距离今天的值大于 30 天。

公式:

=IF(E13<TODAY(),"Schedule CPD Presentation asap and consider changing sales start date",IF(AND(E13>=TODAY(),E13>TODAY()+10),"Query 1","Query 2"),IF(E13>TODAY()+30,"Plan out your CPD Presentation according to the Hold CPD Presentation date listed."))

有谁知道我该如何根据我想做的事情来解决这个问题?

在此处输入图片描述

答案1

虽然 Excel 确实提供了通过将函数嵌套在其他函数中来提供复杂公式的功能,但正如您所发现的,修改这些公式可能很困难。在组织中,当电子表格的原始开发人员离职或离职时,这些困难会变得更加严重。难怪 IT 专业人士在发现 Excel 被用于管理业务的某些重要方面时,常常会惊慌失措地举手投降。

对公式的一个观察是,嵌套的IF包含相当多的参数:例如时间范围“今天之前”(表示为E13<TODAY())、“1 到 10 天之间”等,以及相关结果,如“安排 CPD 演示...”、“查询 1”等。

如果这些相同的参数在电子表格的其他地方使用,并且由于某种原因需要更改它们,则很难识别所有需要更改的公式。遗漏需要更改的内容或进行不一致的更改很容易导致错误。更改的示例包括:“1 到 10 天之间”更改为“1 到 15 天之间”或拆分为“1 到 5 天之间”和“6 到 10 天之间”。即使参数没有分散在整个工作簿中,调整包含大量参数的复杂公式也并不那么简单(正如您所发现的)。

幸运的是,在复杂公式中嵌入参数是一种通常具有很大改进空间的做法。

在您的特定示例中,可以使用一个简单的参数表来显示不同时间范围的结果。这使得参数在电子表格中立即可见(而不是隐藏在公式中)。它允许快速轻松地进行上述类型的更改。其中涉及的一些“技巧”包括

  • 使用命名范围(有助于减少参数数量发生变化时的引用错误)
  • 使用INDEX/MATCH而不是VLOOKUP函数(谷歌搜索)
  • 使用比赛类型函数中的参数MATCH(参见MATCH 函数文档

该方法如下所示。它作为一个例子,说明不同的方法如何使事情变得更加透明,并且更容易在未来维护。将参数表(在范围内A1:C5)和下面屏幕截图单元格中的公式E15与您尝试编辑的公式进行比较。哪个更容易理解?或者更切题的是,哪个更容易让别人理解?

参数化方法的屏幕截图

在单元格 A2 中使用 999999 是另一个技巧。这是第一个结果(“计划……”)的有效期(以天为单位)的限制。999999 天当然超过 2500 年,因此这个限制不太可能被突破!

答案2

=IF(E13<TODAY(),"Schedule CPD Presentation asap and consider changing sales start date", IF(AND(E13>=TODAY(), E13<=TODAY()+10), "Query 1", IF(E13>TODAY()+30,"Plan out your CPD Presentation according to the Hold CPD Presentation date listed.", "Query 2"))

“查询 2” 占据了您要嵌套最后一个 If 语句的位置。将“查询 2” 放在最后一个 If 语句的 Else 位置。此外,您的公式与您的第二点不一致,但我相信我更改了公式以满足您的目标。

相关内容