如果我有三个不同的参数并且根据日期有自己的结果,那么最好使用 IF 函数吗?
我想要的是,如果 A 列中的日期早于今天,则在该行的劳动列中返回“”或 0。如果 TODAY() 位于 A 列中日期的周结束日期内,则星期一返回 230,星期二返回 180,星期三返回 135,星期四返回 90,星期五返回 40。最后,对于 A 列中的日期大于 TODAY() 日期的所有行,返回 230。
除了当单元格中的日期大于今天的周结束日期时返回一个值之外,我已经能够完成所有这些操作。Excel 给出了错误,说我嵌套的 IF 太多了。我知道较新的版本允许我使用更多嵌套的 IF,但我必须使用此版本。以下是代码示例
{=IF($A32<TODAY(),0, IF(TODAY()=2-WEEKDAY(TODAY())+TODAY(),$T$32,IF(TODAY()=3-WEEKDAY(TODAY())+TODAY(),$U$32,IF(TODAY()=4-WEEKDAY(TODAY())+TODAY(),$V$32,IF(TODAY()=5-WEEKDAY(TODAY())+TODAY(),$W$32,IF(TODAY()=6-WEEKDAY(TODAY())+TODAY(),$X$32))))))}
有没有办法上传我的电子表格副本?一张图片胜过千言万语
答案1
我有一个公式给你:
=IF(TODAY()>This_Week_End, 0, IF(AND(TODAY()>Last_Week_End, TODAY()<=This_Week_End),
INDEX(Weekday_Amounts, 1, WEEKDAY(TODAY(), 11)), Past_Amount))
在哪里
This_Week_End
是当前行的日期Last_Week_End
是上一行的日期Weekday_Amounts
是金额行,每周每天一个(周六和周日为 0)Past_Amount
是 230
有三个条件
TODAY()>This_Week_End
:此行在之前TODAY()
,返回0
AND(TODAY()>Last_Week_End, TODAY()<=This_Week_End)
:TODAY()
属于本行的周数。- 使用第二个参数
11
让它WEEKDAY()
在星期一返回 1。 - 使用结果来
WEEKDAY
查找要返回工作日金额行中的哪一列(作为INDEX()
函数的第 3 个参数)
- 使用第二个参数
TODAY() > This_Week_end
:此行位于之后TODAY()
,返回230
我使用 FormulaChop 生成了这个示例公式。(完整披露:我编写了 FormulaChop)。这里是 FormulaChop 输出的屏幕截图。这里是下载我为证明这一点而编写的电子表格的链接。您会注意到它有一个“多步骤”版本的公式,比这里的“单行”版本更清晰。