Суммарное вычитание общей суммы из самого старого месяца в столбцах разных месяцев - PullRequest
0 голосов
/ 05 марта 2020

I hv 4 различных столбца базы данных

╔════╦════════════╦═════════╦═════════════╦═════════════╗
║    ║     A      ║    B    ║      C      ║      D      ║
╠════╬════════════╬═════════╬═════════════╬═════════════╣
║  1 ║ Date       ║ Party   ║ Debit       ║ Credit      ║
║  2 ║ 25-12-2019 ║ John    ║  50,000     ║             ║
║  3 ║ 27-12-2019 ║ Neil    ║  50,000     ║             ║
║  4 ║ 29-12-2019 ║ John    ║  1,00,000   ║             ║
║  5 ║ 01-Jan     ║ Neil    ║  50,000     ║             ║
║  6 ║ 05-Jan     ║ John    ║  8,00,000   ║             ║
║  7 ║ 08-Jan     ║ John    ║  70,000     ║             ║
║  8 ║ 28-Jan     ║ Neil    ║  20,000     ║             ║
║  9 ║ 02-Feb     ║ John    ║  30,000     ║             ║
║ 10 ║ 15-Feb     ║ Neil    ║  19,000     ║             ║
║ 11 ║ 27-Feb     ║ John    ║  21,000     ║             ║
║ 12 ║ 04-Mar     ║ John    ║  22,000     ║             ║
║ 13 ║ 08-Mar     ║ Neil    ║  88,000     ║             ║
║ 14 ║ 09-Mar     ║ John    ║  6,00,000   ║             ║
║ 15 ║ 05-Apr     ║ John    ║  7,05,000   ║             ║
║ 16 ║ 21-Apr     ║ Rebbika ║  25,00,000  ║             ║
║ 17 ║ 05-May     ║ John    ║             ║  7,00,000   ║
║ 18 ║ 07-May     ║ Neil    ║             ║  5,00,000   ║
║ 19 ║ 19-May     ║ John    ║             ║  1,00,000   ║
║ 20 ║ 21-May     ║ Rebbika ║             ║  10,00,000  ║
╚════╩════════════╩═════════╩═════════════╩═════════════╝ 

, и вот таблица результатов (которая фактически является испытанием для каждой партии с ежемесячным остатком

╔═══╦═════════╦════════╦════════╦═══════╦════════╦═════════╗
║   ║    E    ║   F    ║   G    ║   H   ║   I    ║    J    ║
╠═══╬═════════╬════════╬════════╬═══════╬════════╬═════════╣
║ 1 ║ Party   ║ Dec-19 ║ Jan-20 ║ Feb-20║ Mar-20 ║ Apr-20  ║
║ 2 ║ John    ║ -      ║ 220000 ║ 51000 ║ 622000 ║ 705000  ║
║ 3 ║ Neil    ║ 10000  ║ 70000  ║ 19000 ║ 88000  ║ 0       ║
║ 4 ║ Rebbika ║ -      ║ -      ║ -     ║ -      ║ 1500000 ║
╚═══╩═════════╩════════╩════════╩═══════╩════════╩═════════╝

, и это формула, которую я использую в E2 - J4. Скопированная мной формула получена из ячейки I2

=IF(SUMPRODUCT(--(MONTH($A$2:$A$20)=12)+--(MONTH($A$2:$A$20)<=2),--($B$2:$B$20=F3),$C$2:$C$20)-SUMIF($B$2:$B$20,F3,$D$2:$D$20)>1,SUMPRODUCT(--(MONTH($A$2:$A$20)=3),--($B$2:$B$20=F3),$C$2:$C$20),IF(SUMPRODUCT(--(MONTH($A$2:$A$20)=3),--($B$2:$B$20=F3),$C$2:$C$20)-(SUMIF($B$2:$B$20,F3,$D$2:$D$20)-SUMPRODUCT(--(MONTH($A$2:$A$20)=12)+--(MONTH($A$2:$A$20)<=2),--($B$2:$B$20=F3),$C$2:$C$20))<1,"",SUMPRODUCT(--(MONTH($A$2:$A$20)=3),--($B$2:$B$20=F3),$C$2:$C$20)-(SUMIF($B$2:$B$20,F3,$D$2:$D$20)-SUMPRODUCT(--(MONTH($A$2:$A$20)=12)+--(MONTH($A$2:$A$20)<=2),--($B$2:$B$20=F3),$C$2:$C$20))))

Например: - Общая сумма задолженности Де c Джону составляет 150 000

Платеж получен не имеет ничего общего с месяцем или датой, это просто весь платеж, который мы получили до даты. Итак, если он заплатил нам 120 000

Баланс за декабрь = 30 000, а за январь-февраль-март c. .. Причитающийся платеж все еще не завершен, так как

Если мы получили итоговый платеж 1 021 000

, то он очистит 150 000 De c и 870 000 января и 1 000 от Февраль и будет отображать De c столбец в виде Nill, Jan = Nill, Feb 50 000

Общая сумма полученных должна быть вычтена из самого старого месяца выставления счетов

Но используемая мной функция действительно грязный и делает лист немного тяжелым, есть ли Возможно, более короткий и хороший способ выполнить эту задачу, не используя коды VBA, но с более короткой формулой, чем тот, который я пытаюсь. его MS 2007

Любая помощь будет оценена

1 Ответ

0 голосов
/ 09 марта 2020

Я наконец понял

=IFERROR(1/(1/ROUND(MAX(0,SUMIFS($C:$C,$B:$B,$E2,$A:$A,"<="&EOMONTH(F$1,0))-SUMIF($B:$B,$E2,$D:$D)-SUM($E2:E2)),0)),"-")

Перетаскивание по вертикали и горизонтали работало идеально.

...