在Excel中的2个值中减去设置的间隔

时间:2019-02-07 23:15:13

标签: excel function excel-formula

我正在尝试在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的时间。

2 个答案:

答案 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.25CY个组的数量并将其减去。需要从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会保持不变,然后返回。