MS Excel 函数未返回足够的结果

MS Excel 函数未返回足够的结果

我需要计算一个基线 % 列。例如,如果基线开始日期是“5 月 16 日”,基线结束日期是“5 月 20 日”,如果我的审查日期是“5 月 18 日”,那么到 18 日,应该根据基线完成 60% 的工作。“18-16/20-16”= 3/5= 60%。

f1: review date;
d5: baseline start date;
e5: baseline-end date;

如果 f1>d5& f1e5,则“100”;如果 f1

这是我能想到的最新消息。仍然没有运气。

=IF(AND($F$1>E5,$F$1<F5),NETWORKDAYS.INTL(E5,$F$1,16)/NETWOR‌‌​KDAYS.INTL(E5,F5,1‌​6)‌​)*100,(IF($F$1<E‌​5,"0‌​","100")))

答案1

看起来你可能正在尝试这样做:

=MAX( MIN(NETWORKDAYS(D5,F1)/NETWORKDAYS(D5,E5), 1), 0)

我无法弄清楚您到底想说什么,但以下是我使用的对我来说有意义的假设和步骤。

  1. 您要执行的操作的核心是返回已用工作日与目标工作日之间的比率(然后将其格式化为百分比)。这是通过将 D5 和 F1 之间的差值除以 D5 和 E5 之间的差值来计算的。换句话说,(F1-D5)/(E5-D5)。实现此目的的公式是

    =网络日(D5,F1)/网络日(D5,E5)

  2. 为了保持 100% 的上限,如果上述结果大于 100%,则需要返回 100%。换句话说,如果审核日期 F1 在结束日期 E5 或之后,则返回 100%。这可以通过将步骤 1 中的公式传递给 MIN() 函数并指定“1”作为第二个参数(因为 1 = 100%)来实现。现在,您将返回计算出的百分比或 100% 中的较低者。因此,如果您计算的百分比大于 100%,则 min 函数将返回 100%。

    =MIN(网络日(D5,F1)/网络日(D5,E5),1)

    1. 相反,如果审核日期 F1 早于开始日期 D5,则您希望返回 0 以避免返回负数并保持下限为零。这可以通过在 MAX() 函数中嵌套步骤 2 中的公式来实现。此外,将“0”作为第二个参数。这样,​​如果结果为负数,您的公式现在将返回 0,因为零大于任何负数。这就是我得出以下最终公式的方式。

=MAX(MIN(网络日(D5,F1)/网络日(D5,E5),1),0)

您需要根据需要调整绝对/相对引用。

相关内容