将 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 - 使用公式将秒转换为分+秒

如何将 excel 索引匹配转换为 Access - 加入 4 个表

excel进制转换

需要帮助将继承的 excel 公式转换为 SQL 或 DAX

Excel 公式转换为 Python 3