首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个 M 函数就能搞定的计算:每满4小时兑换0.5天

有同学问 PQ 里面有没有类似 floor 的向下舍入函数呢?

有一个类似的,可以完美实现需求。

案例:

将下图 1 中 B 列的公益活动志愿者时长按以下规则兑换成年假:

每 4 小时可以兑换 0.5 天;

至少 4 小时起兑;

不足 4 小时的部分可以留作下次累计后兑换。

效果如下图 2 所示。

解决方案:

1. 选中数据表的任意单元格 --> 选择任务栏的“数据”-->“来自表格/区域”

2. 在弹出的对话框中保留默认设置 --> 点击“确定”

表格已经上传至 Power Query。

3. 选择任务栏的“添加列”-->“自定义列”

4. 在弹出的对话框中输入所需的列名 --> 输入以下公式 --> 点击“确定”:

Number.RoundTowardZero([#"志愿者时长(小时)"]/4)*0.5

公式释义:

Number.RoundTowardZero 函数的作用式将数字向 0 方向舍入到最接近的整数;

不管正数或负数都会向 0 的方向舍入,本案例中不存在负数的情况,所以就起到了向下舍入的作用;

语法为 Number.RoundTowardZero(要舍入的数值);

Number.RoundTowardZero([#"志愿者时长(小时)"]/4):将 [#"志愿者时长(小时)"] 列的数值除以 4 后向 0 的方向舍入,即向下舍入;

...*0.5:将舍入后的整数乘以 0.5,就能将小时数转换成天数

5. 选中最后一列 --> 选择任务栏的“主页”-->“删除列”-->“删除其他列”

7. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“确定”

右侧绿色的表格就是可以兑换的休假天数。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OdI3FHNBZDU4rlaXmzIuPgBg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券