Я не уверен, должно ли это идти в своем собственном ответе или нет, поскольку принцип такой же, как и в ответе @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, что означает, что банковский ВОМ не нужен, тогда возвращается B1
, поскольку он остался без изменений.