我的数字显示为Ranges Ex。3-7天或24-72小时。我需要将它们更改为168或72这样的数字,这样我才能最终执行比较或if语句。我知道我只需单击CTRL H并遍历每个条件来格式化数据,但我一直在尝试通过查询找到一种方法来实现这一点。我是一个非常新的访问者,所以我可能认为这一切都错了。我尝试在字段中键入此Expr1: Replace("0-4 Hours", "0-4 Hours", "4"),有时它会要求提供一个参数,但它只会创建一个名为Expr1的列,其中包含该参数。我遵循了我在这个网站上找到的替换函数的语法,所以我肯定走错了路。
发布于 2020-05-14 02:33:52
查询正在寻找一个名为0-4 Hours的字段,它当然找不到,因此出现了提示(这应该总是发生的,而不仅仅是有时,所以这是一个谜)。正确的语法:
Expr1: Replace([fieldname], "0-4 Hours", "4")。
但是,此计算结果将仅对具有0-4 Hours值的记录显示。应该可以使用以下命令为每条记录动态计算此值:
SELECT *, Val(Mid([fieldname], InStr([fieldname], "-")+1)) As Num FROM tablename;
每条记录都必须有值,因为Null会导致错误。
如果所有记录的单位(天、小时等)都不相同,则会变得更加复杂。如果天数和小时数是唯一涉及的单位,并且您希望将所有时间单位都转换为小时数:
Val(Mid([fieldname], InStr([fieldname], "-")+1)) * IIf(InStr([fieldname],"Days")>0,24,1) As Num
任何更复杂的操作和VBA自定义函数都可能是必需的。
https://stackoverflow.com/questions/61779192
复制相似问题