将 Excel 公式转换为 Access 查询
Posted
技术标签:
【中文标题】将 Excel 公式转换为 Access 查询【英文标题】:Convert an Excel formula to an Access query 【发布时间】:2012-07-19 18:01:44 【问题描述】:有没有办法将下面的 Excel 公式转换为 Access 中的查询/标准?
L2 = Date
J2 = Another Date
Z1 = Todays Date
我认为它正在计算两个日期之间的天数,但不确定如何在 Access 查询中执行此操作。
IF((AND((L2<1),(J2>1))),(NETWORKDAYS(J2,$Z$1)-1),0)
【问题讨论】:
样本数据? Access/Excel 版本? 【参考方案1】:正如您现在可能已经收集到的那样,这个问题没有任何意义。 NETWORKDAYS
确实计算了两个日期之间的“整个工作日,不包括周末和假日中确定的任何日期”(这里是 J2
中的任何日期以及“今天”/Z1
中的任何日期)和 IF
使得该计算取决于AND
函数的结果为真。 AND
函数的结果为 TRUE,前提是 L2
中的“日期”在 1900 年 1 月 1 日之前,J2
中的日期在 1900 年 1 月 1 日之后(因为 Excel 1900 年 1 月 1 日是 Day 1
涉及日期[除非选择 1904 日期系统])。
但 Excel 无法识别第 1 天之前的日期,无论是负数还是十进制数。例如,第 1.5 天是 1900 年 1 月 1 日中午,而在相同的格式中,第 0.5 天显示为 0/1/1900。
因此,从本质上讲,L2
并不是对公式有任何实际用途的日期,因此我相信为什么您的问题还没有答案。但这太长了,无法放在评论中,因此我的回答是:“不。”!
【讨论】:
【参考方案2】:设置对 Excel 的引用。
Option Compare Database
Private Sub Command2_Click()
MsgBox GetNetWorkDays(#1/29/2017#, #2/8/2017#)
End Sub
Function GetNetWorkDays(startDate As Date, endDate As Date) As Integer
GetNetWorkDays = WorksheetFunction.NETWORKDAYS(startDate, endDate)
End Function
将按钮放在表单上并单击按钮!
【讨论】:
【参考方案3】:如果您想计算天数之间的天数,可以使用下面的内置函数“DateDiff”来解决它。日期差异(“D”,,) 前任。 Datediff("D",L2,Z1)
【讨论】:
以上是关于将 Excel 公式转换为 Access 查询的主要内容,如果未能解决你的问题,请参考以下文章
如何使数字显示为 hh:mm(持续时间,而不是一天中的时间)
如何将 excel 索引匹配转换为 Access - 加入 4 个表