当前位置:首页经验技巧Excel经验excel知识

excel表格停车时间怎么计费

2025-10-31 09:01:13

1.怎样用EXCEL表计算小区停车费收费金额?

这个问题有意思。我用powerquery做了一个解答。

代码如下:

let

源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],

更改的类型 = Table.TransformColumnTypes(源,{{"车牌", type text}, {"入场时间", type datetime}, {"出场时间", type datetime}, {"应收费金额", Int64.Type}}),

已添加自定义 = Table.AddColumn(更改的类型, "停车时长", each [出场时间]-[入场时间]),

更改的类型1 = Table.TransformColumnTypes(已添加自定义,{{"停车时长", type duration}}),

已添加自定义1 = Table.AddColumn(更改的类型1, "计费", each if [停车时长]<#duration(0,1,0,0) then 0 else

if [停车时长]<#duration(0,12,0,0) then 5 else

if [停车时长]>=#duration(0,12,0,0) then 5*Number.RoundUp([停车时长]/#duration(0,12,0,0)) else null),

已添加自定义2 = Table.AddColumn(已添加自定义1, "下一次计费时间起点", each if [停车时长]<#duration(0,1,0,0) then null else

if [停车时长]<#duration(0,12,0,0) then [入场时间]+#duration(0,12,0,0) else null),

已添加索引 = Table.AddIndexColumn(已添加自定义2, "索引", 0, 1),

已添加自定义3 = Table.AddColumn(已添加索引, "是否应再计费", each try if [入场时间] <;=已添加索引[下一次计费时间起点]{[索引]-1} then 0 else [计费] otherwise [计费]),

删除的其他列 = Table.SelectColumns(已添加自定义3,{"车牌", "入场时间", "出场时间", "停车时长", "下一次计费时间起点", "是否应再计费"}),

删除的列 = Table.RemoveColumns(删除的其他列,{"下一次计费时间起点"}),

重命名的列 = Table.RenameColumns(删除的列,{{"是否应再计费", "计费"}})

in

重命名的列

这里边的难点是停车时长如果在1-12小时内,多次进出只收一次费。我是这么设想的:第一次停车超过1小时后,立即计算其下一个应计费时间区间(即进入时间+12小时),然后和后面入场时间相比,如果入场时间小于这个下一个应计费时间区间,则不计费;如果大于,则计费。

但里边还有好多细节我没梳理清楚,还不知道是不是有遗漏的特殊情况没考虑到

提供了一个示例文件供参考:链接: /s/ 提取码: v***r

用法:确保excel是2016及以上版本(低版本需自行百度下载安装powerquery插件),替换原始数据区域,然后在【数据】选项卡点击”刷新“,最新结果就出来了。


免责声明:本站信息来自网络收集及网友投稿,仅供参考,如果有错误请反馈给我们更正,对文中内容的真实性和完整性本站不提供任何保证,不承但任何责任,谢谢您的合作。
版权所有:五学知识网 Copyright © 2015-2026 www.z8000w.com. All Rights Reserved .