Текущий баланс списка счетов на основе даты и счета - PullRequest
1 голос
/ 18 августа 2011

Я использую Excel 2010 и создал пользовательскую форму, которая отображает полный список счетов-фактур из рабочих таблиц («InvoiceListIncome») с использованием элемента управления ListBox, рабочий лист имеет 13 столбцов и тысячи строк, пример изображения приведен ниже; Проблема, с которой я столкнулся, заключается в том, что в диапазоне строк баланса ("InvoiceListIncome_Balance") "отображается баланс каждого отдельного счета-фактуры. Мне нужен текущий баланс, начиная с первого диапазона счета-фактуры (" InvoiceListIncome_Date "), поэтому с каждой транзакцией он складывается. Текущий + все предыдущие счета для этой учетной записи.

Макрос, который я сейчас использую:

Range("InvoiceListIncome_Balance").FormulaR1C1 = "=SUM(RC[-1])-SUM(RC[-2])"

, который просто вычитает сумму, уплаченную в столбце F, из цены товара в столбце G, но я не могу понять, как добавить все предыдущие сальдо по дате, я могу либо получить его для суммирования полного диапазона с учетной записью клиентов в качестве критерии или просто активная строка.

Я бегал кругами, пытаясь выяснить это уже несколько дней, любая помощь будет высоко оценена, спасибо.

Вот пример того, что мне нужно; enter image description here

Ответы [ 2 ]

2 голосов
/ 19 августа 2011

Предполагая, что у вас есть Account, Price и Paid в столбцах A, D и E соответственно, с вашей первой строкой данных в строке 2, попробуйте следующую формулу в строке 2:

=SUMIF($A$2:$A2,$A2,$E$2:$E2)-SUMIF($A$2:$A2,$A2,$D$2:$D2)

Скопируйте формулу вниз по столбцу.Это предполагает, что ваши данные сортируются в возрастающем хронологическом порядке, как вы показываете.

Кроме того, если эта формула работает, у вас есть неправильный знак в 4-й строке в нижней части нужного столбца ???

0 голосов
/ 18 августа 2011

Вам нужна промежуточная сумма, поэтому вы хотите включить остаток строки (n-1) при расчете баланса для строки n.

На основе вашей первой картинки внесите следующие изменения:

  • формула в G2: =F2-E2
  • формула в G3: =G2+F3-E3
  • скопировать формулу из G3 до конца списка; последнее значение - ваш текущий баланс

редактировать

извините ... Кажется, я пропустил условие взлома аккаунта. Что ж, это еще проще, так как вам нужна только одна формула ...

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

  • формула в G2: =IF(A2=A1,G1+F2-E2,F2-E2)
  • скопировать формулу из G2 в конец списка

(, если this.account = previous.account, тогда calc.running.total else create.new.balance )

Это будет работать, пока имя вашего первого клиента <> "Аккаунт" :-)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...