![需要 MS Works 电子表格公式](https://linux22.com/image/1351525/%E9%9C%80%E8%A6%81%20MS%20Works%20%E7%94%B5%E5%AD%90%E8%A1%A8%E6%A0%BC%E5%85%AC%E5%BC%8F.png)
我正在创建一个 MS Works - 版本 8.5 - 电子表格,其中输入了月份日期、月份和年份。根据公式计算年份是非闰年还是闰年,并在相应标题下显示“是”或“否”字样。
标题为:日期 - D3、月份 - E3、年份 - F3、非闰年 - H3 和闰年 - I3
数据输入到 D4、E4、F4 中,并且单词“YES”或单词“NO”出现在 H4 和 I4 中的相应标题下。
一月到十二月的月份列于 B11 至 B22 中。
我想在每个月的 A 列中显示一条消息,如果输入了错误的月份日期,则会发出错误信号 - 例如 1 月为 32 日,4 月为 31 日等。
无论年份是平年还是闰年都没有区别,并且单词“是”或“否”不会进入等式,因此以下公式会产生所需的结果。
=IF(AND(D4>31,E4="JANUARY"),"31 DAYS","")
=IF(AND(D4>31,E4="APRIL"),"30 DAYS","")
然而,二月可能有 28 天或 29 天,并且由于每个单元格只能容纳一个公式,因此情况有所不同。公式必须是以下项的组合:
=IF(AND(D4>28,E4="FEBRUARY",H4="YES"),"28 DAYS","")
和
=IF(AND(D4>29,E4="FEBRUARY",I4="YES"),"29 DAYS","")
任何帮助都值得感激。谢谢
答案1
我无法在 Works 中尝试这个,但以下在 Excel 中有效 - 看看你是否可以嵌套万方像这样:
=IF(E4="FEBRUARY", IF(H4="YES", IF(D4>28,"28 DAYS",""), IF(D4>29,"29 DAYS","")),"")
我通过只看 H4 来简化这一点,假设如果 H4 不是是的那么今年一定是闰年。
顺便问一下,这是家庭作业问题吗?
编辑:FWIW 这里还有另一种方法,只需三个公式即可完成,无需列出月份或使用您自己的闰年计算。同样,我在 Excel 中尝试过,但在 Works 中无法尝试:
A. 使用以下公式根据月份名称计算月份数A6
。请注意,第一个 {} 部分中的月份必须按字母顺序排列,第二个 {} 部分中的月份数必须按相应顺序排列:
=LOOKUP(E4,{"April", "August", "December", "February", "January", "July", "June", "March", "May", "November"," October", "September"},{4,8,12,2,1,7,6,3,5,11,10,9})
警告:如果没有有效的月份,则不会产生良好的结果E4
。
B. 计算从该月初到下月初的天数B6
:
=DATE(F4+TRUNC((A6+1)/12),MOD(A6+1,12),1)-DATE(F4,A6,1)
这解释了两个地方从 12 月跳到 1 月的情况:
- 年份:如果月份+1(A6+1)大于 12,则使用 TRUNC 公式将年份加一。如果计算值小于一(例如 12/12=1),则截断归零,这样你就处于同一年。
- 月份:如果 A6+1 大于 12,则从 1 月开始。此处的 MOD 函数返回除以 12 后的余数,因此 13 变为 1。您也可以使用 IF 函数,但这样更紧凑。
C. 测试天数C6
:
=IF(D4>B6,B6&" DAYS","")