我正在尝试在Excel中编写PTO计算器,需要帮助来减少带薪休假时间。我无法使用的部分是它以四分之一小时为增量进行减去,但是时间未使用HH:MM格式,而是缩放为100。
示例:
| A | B
--|--------------|--------
1| Bank |50.00
2| CY | 6.40
|--------------|--------
3| Used | 9.50
|--------------|--------
4| Bank Remain |
5| CY Remain |
Used
首先从CY Accrued
中减去,直到小于0.25
,然后再从Bank Accrued
中减去其余的内容。
感谢您的帮助。我确实在寻找类似的问题,但是唯一看到的是以标准格式(每15分钟间隔)计算的时间,而不是比例为100的时间。
答案 0 :(得分:0)
这假定使用公式而不是VBA,并且我已将数据放在一个简单的表中(见下文),其中CY老余额位于单元格B2
中。
| | A | B | C | D |
| |-------------|------|-------|----------|
|1| | CY | BANK | PTO Used |
|2| Old Balance | 6.4 | 50 | 9.5 |
|3| New Balance | 0.15 | 46.75 | |
“ CY新余额”单元格(B3
)的公式为:
=IF(B2>=D2,B2-D2,B2-0.25*INT(B2/0.25))
如果CY旧余额大于或等于使用的PTO,则我假定已减去全部使用量。
B2-0.25*INT(B2/0.25)
部分计算出.25
的全部剩余部分,然后从您的旧余额中减去该部分,为您提供CY新余额。
“银行新余额”单元格(C3
)的公式类似:
=IF(B2>=D2,C2,C2-(D2-0.25*INT(B2/0.25)))
IF
的第一部分基于与上述相同的假设。
C2-(D2-0.25*INT(B2/0.25))
使用相同的“ .25
的整个部分”方法,然后从用来获取剩余的PTO中减去该值。然后从“银行旧余额”中减去该金额即可获得“新余额”。
答案 1 :(得分:0)
我不确定这是否应该输入自己的答案,因为原理与@ReyJuna的答案相同,但是执行方式有所不同。使用问题表:
| A | B
--|--------------|--------
1| Bank |50.00
2| CY | 6.40
|--------------|--------
3| Used | 9.50
|--------------|--------
4| Bank Remain |46.75
5| CY Remain | 0.15
从查找CY Remain
开始,如果CY
大于Used
,则不必担心耗尽0.25
个增量段,因此您可以直接减去在下面的函数中使用B2-B3
。
当CY
小于Used
时,您只需要正好0.25
的组,因此可以使用TRUNC()
函数删除小数。功能是:
=IF(B2<B3,B2-(TRUNC(B2/0.25)*0.25),B2-B3)
由于您要停止从CY
开始减去小于0.25
的位置,因此您要做的就是获取0.25
中CY
个组的数量并将其减去。需要从Bank
中减去的其余部分将由此函数处理:
=IF(B2<B3,B1-(B3-TRUNC(B2/0.25)*0.25),B1)
请注意,TRUNC(B2/0.25)*0.25
是相同的,但是现在从Used
中的值中减去了该值。这样可以为您提供先从CY
中减去正确的金额后剩余的金额。最后,当Bank Remain
函数为false时,这意味着不需要Bank PTO,则B1
会保持不变,然后返回。