在 Excel 中嵌套 DATEDIF 和 IF 语句
Nesting DATEDIF and IF Statements in Excel
我正在尝试创建一个 Excel 公式,该公式将以天、周、月或年为单位显示某人的年龄,具体取决于他们在测试时的年龄。澄清...
- 如果小于 7 天,请以天为单位报告年龄
- 如果大于 7 天但小于 8 周,请报告以周为单位的年龄
- 如果大于 8 周但小于 24 个月,请以月为单位报告年龄
- 如果超过 24 个月,请报告年龄
为此我尝试了几个函数,都使用了 DATEDIF 函数。对于每个,我都返回了#NAME?错误。请看下面
键:
- E600 = 测试日期
- F600 = 出生日期
- 我用的是7天=1周,60天=2个月,730天=24个月=2年,等等
- 注意:我还想显示“d/o”(天数)、“w/o”(数周数)、“m/o”(数月数)或“ y/o"(岁)在每个值之后,具体取决于报告年龄的单位。
\\\\\\\\\\\\
=IFS((E600-F600)<7,DATEDIF(F600,E600,”d”)&” d/o”,AND((E600-F600)>7,(E600-F600) <60),(DATEDIF(F600,E600,”d”)/7)&” w/o”,AND((E600-F600)>60,(E600-F600)<730),DATEDIF(F600, E600,”m”)&” m/o”,(E600-F600)>730,DATEDIF(F600,E600,”y”)&” y/o”)
\\\\\\\\\\\\
=IFS(DATEDIF(F600,E600,”d”)<=6,DATEDIF(F600,E600,”d”)&” d/o”,AND(DATEDIF(F600,E600,” d”)<=59,DATEDIF(F600,E600,”d”)>=7),DATEDIF(F600,E600,”d”)/7&”w/o”,AND(DATEDIF(F600,E600, ”d”)>=60,DATEDIF(F600,E600,”m”)<=24),DATEDIF(F600,E600,”m”)&” m/o”,DATEDIF(F600,E600,”m ")>25,DATEDIF(F600,E600,"y")&" y/o")
\\\\\\\\\\\\
=DATEDIF(F600,E600,IFS((E600-F600)<7,”d”&” d/o”,AND((E600-F600)>7,(E600-F600)< 60),”d”/7&” w/o”,AND((E600-F600)>60,(E600-F600)<730),”m”&” m/o”,(E600- F600)>730,”y”&”y/o”))
\\\\\\\\\\\\\
如有任何帮助,我们将不胜感激!
=LOOKUP(E600-F600,{0,8,56,730},INT(DATEDIF(F600,E600,{"d","d","m","y"})/{1,7,1,1})&" "&{"d","w","m","y"}&"/o")
尽管您列出的标准仅说明“如果小于”、“如果大于”,因此不清楚某人属于哪个类别,例如 正好 7 天老应该说谎。
@Jos Woolley 的示例效果很好。如果有人将来对自己的公式进行故障排除,请在下面发布另一个解决方案。
=IF(E600 < F600 + 7, DATEDIF(F600, E600, "d") & " d/o", IF(AND(E600 >= F600 + 7, E600 <= EDATE(F600, 2)), ROUNDDOWN(DATEDIF(F600, E600, "d") / 7, 0) & " w/o", IF(AND(E600 >= EDATE(F600, 2), E600 <= EDATE(F600, 24)), DATEDIF(F600, E600, "m") & " m/o", DATEDIF(F600, E600, "y") & " y/o")))
我正在尝试创建一个 Excel 公式,该公式将以天、周、月或年为单位显示某人的年龄,具体取决于他们在测试时的年龄。澄清...
- 如果小于 7 天,请以天为单位报告年龄
- 如果大于 7 天但小于 8 周,请报告以周为单位的年龄
- 如果大于 8 周但小于 24 个月,请以月为单位报告年龄
- 如果超过 24 个月,请报告年龄
为此我尝试了几个函数,都使用了 DATEDIF 函数。对于每个,我都返回了#NAME?错误。请看下面
键:
- E600 = 测试日期
- F600 = 出生日期
- 我用的是7天=1周,60天=2个月,730天=24个月=2年,等等
- 注意:我还想显示“d/o”(天数)、“w/o”(数周数)、“m/o”(数月数)或“ y/o"(岁)在每个值之后,具体取决于报告年龄的单位。
\\\\\\\\\\\\
=IFS((E600-F600)<7,DATEDIF(F600,E600,”d”)&” d/o”,AND((E600-F600)>7,(E600-F600) <60),(DATEDIF(F600,E600,”d”)/7)&” w/o”,AND((E600-F600)>60,(E600-F600)<730),DATEDIF(F600, E600,”m”)&” m/o”,(E600-F600)>730,DATEDIF(F600,E600,”y”)&” y/o”)
\\\\\\\\\\\\
=IFS(DATEDIF(F600,E600,”d”)<=6,DATEDIF(F600,E600,”d”)&” d/o”,AND(DATEDIF(F600,E600,” d”)<=59,DATEDIF(F600,E600,”d”)>=7),DATEDIF(F600,E600,”d”)/7&”w/o”,AND(DATEDIF(F600,E600, ”d”)>=60,DATEDIF(F600,E600,”m”)<=24),DATEDIF(F600,E600,”m”)&” m/o”,DATEDIF(F600,E600,”m ")>25,DATEDIF(F600,E600,"y")&" y/o")
\\\\\\\\\\\\
=DATEDIF(F600,E600,IFS((E600-F600)<7,”d”&” d/o”,AND((E600-F600)>7,(E600-F600)< 60),”d”/7&” w/o”,AND((E600-F600)>60,(E600-F600)<730),”m”&” m/o”,(E600- F600)>730,”y”&”y/o”))
\\\\\\\\\\\\\
如有任何帮助,我们将不胜感激!
=LOOKUP(E600-F600,{0,8,56,730},INT(DATEDIF(F600,E600,{"d","d","m","y"})/{1,7,1,1})&" "&{"d","w","m","y"}&"/o")
尽管您列出的标准仅说明“如果小于”、“如果大于”,因此不清楚某人属于哪个类别,例如 正好 7 天老应该说谎。
@Jos Woolley 的示例效果很好。如果有人将来对自己的公式进行故障排除,请在下面发布另一个解决方案。
=IF(E600 < F600 + 7, DATEDIF(F600, E600, "d") & " d/o", IF(AND(E600 >= F600 + 7, E600 <= EDATE(F600, 2)), ROUNDDOWN(DATEDIF(F600, E600, "d") / 7, 0) & " w/o", IF(AND(E600 >= EDATE(F600, 2), E600 <= EDATE(F600, 24)), DATEDIF(F600, E600, "m") & " m/o", DATEDIF(F600, E600, "y") & " y/o")))