[英]Nesting DATEDIF and IF Statements in Excel
I am trying to create an Excel formula that will display someone's age in units of days, weeks, months, or years, depending on how old they were at the time of a test.我正在尝试创建一个 Excel 公式,该公式将以天、周、月或年为单位显示某人的年龄,具体取决于他们在测试时的年龄。 To clarify...澄清...
I have tried several functions for this, all using the DATEDIF function. For each, I have returned the #NAME?我为此尝试了几个函数,都使用 DATEDIF function。对于每个函数,我都返回了#NAME? error.错误。 Please see below请看下面
KEY :关键:
\\\\\\\\\\\\ \\\\\\\\\\\\
=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((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”) =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”)) =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”))
\\\\\\\\\\\\\\ \\\\\\\\\\\\\\
Any help on this would be greatly appreciated!对此的任何帮助将不胜感激!
=LOOKUP(E600-F600,{0,8,56,730},INT(DATEDIF(F600,E600,{"d","d","m","y"})/{1,7,1,1})&" "&{"d","w","m","y"}&"/o")
though your listed criteria state only "if younger than", "if older than", so it's not clear in which category someone who, for example, is precisely 7 days old should lie.尽管您列出的标准 state 只有“如果小于”、“如果大于”,因此不清楚例如恰好7 天大的人应该属于哪个类别。
@Jos Woolley's example worked great. @Jos Woolley 的例子效果很好。 Another solution is posted below if anyone is troubleshooting their own formula in the future.如果有人将来对自己的公式进行故障排除,则会在下面发布另一个解决方案。
=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")))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.