https://www.dropbox.com/s/v6nd2z4icftmnvf/example1.xlsx
我们有 Excel 2007(德语)和 Vista Ultimate。我正在尝试使用 Excel 来建立名册,但遇到了以下公式的问题。
我已将公式加载到 Januar 页面上的黄色区域单元格 BO20:BP21 中。要测试该公式,可以通过更改“界面”页面上 J7 单元格中的日期来更改月份。
=IF($AT$8>$AU$8;COLUMN(AT1)-COLUMN(P1);IF($AS$8>$AT$8;COLUMN(AS1)-COLUMN(P1);IF($AR$8>$AS$8;COLUMN(AR1)-COLUMN(P1);COLUMN(AQ1)-COLUMN(P1))))+1
据我所知,该公式不起作用,因为 A8 行格式化为日期并显示每月天数,例如 1、2、3、4、...-...29、30、31、1、2、3、4、...等。
我尝试将 =AT8 和 =AU8 放入两个格式为常规的空白单元格中。这两个单元格分别返回 40267 和 40268,我认为它们是从 1904 年 1 月到 2014 年 3 月 31 日的天数。这意味着每个连续单元格都只会是 +1,我的公式将不起作用。
当我在空白工作表中测试它并手动对单元格 AP8:AV8(27、28、29、30、31、1 和 2)进行编号时,它返回我正在寻找的值(列数),即 27、28、1、2、3、4、5 返回 28,27、28、29、1、2、3 4 返回 29 等等。但是,当它在我的活动工作簿中时,公式只返回 28。
那么有人知道如何解决日期格式问题,以便我可以使用可见单元格值执行计算吗?
任何想法或建议的解决方案都将受到赞赏。
问候。
附言:我看不到上传示例的方法,我是否忽略了什么?
Pp.s. 我不知道这是否重要,但因为我需要负时间值,所以我将 Excel 的开始日期从 1900 年 1 月更改为 1904 年 1 月。
感谢您的回答,我是 Excel 新手,因此可能需要一些时间来理解您的回答 :-)
我已更新我的帖子以包含 Dropbox 链接。
我尝试这样做的原因是:我本来打算将公式与 =Interface!$K$1*(VLOOKUP(C9;Lists!U7:V52;2;FALSE)* (31/1,4)) 结合起来,并将组合公式放在 BG9:BG35 列中(格式为 [h]:min;@)。这个想法是,接口 K1:L1 中的时间值(代表一个标准轮班小时数)和两个组合公式将形成一个等式,为每个人提供“必需”月份的排班小时数,同时考虑他们的全职工作百分比,即一个月内周一至周五的实际工作天数乘以代表一个标准轮班的时间。
答案1
使用“TEXT”函数封装您的公式。例如,=TEXT(YourFormulaHere,"yyyy/mm/dd") 将返回 2010/03/30。它将通用数字 40267(如上所述的结果)转换为可读的日期格式。
您可以使用任何标准日期格式,就像在单元格格式属性中一样。以下链接可查看您的选项。
http://office.microsoft.com/en-ca/excel-help/format-a-date-the-way-you-want-HA102809474.aspx
答案2
要使用格式化为日期类型的字段,您可以随时使用以下Day()
函数:
因此,请修改您的公式以包括=IF(DAY($AT$8)>DAY($AU$8)...
等等。
举个例子,该DAY
函数返回月份中的日期,我相信这就是你想要的,就像这样:
26/07/2014 | 26 (=DAY(A1))
27/07/2014 | 27 (=DAY(A2))
答案3
您可以使用 Nate Bergeron 提示,它就会起作用。
不过我认为您应该使用=DAY()
、等函数=MONTH()
,=YEAR()
而不是格式化单元格以仅显示月份。
当您使用单元格进行某项操作时,这些函数会返回数字,但其中并不存储完整日期。