发票清单基于日期和帐户的运行余额

时间:2011-08-18 03:51:11

标签: excel excel-vba excel-formula vba

我正在使用Excel 2010并创建了一个UserForm,它使用ListBox控件显示工作表中的发票的完整列表(“InvoiceListIncome”),工作表有13列和数千行,下面是一个示例图像; 我遇到的问题是平衡行范围(“InvoiceListIncome_Balance”)“显示每个发票个人的余额,我需要的是从第一个发票范围(”InvoiceListIncome_Date“)开始的运行余额,所以每个交易它都会增加当前+该帐户以前的所有发票。

我目前使用的宏是;

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

简单地从列G中的项目价格中减去F列中的付款,但我似乎无法弄清楚如何按日期添加所有以前的余额,我可以将其与客户帐户的总和范围相加作为标准或只是活动。

我一直在试图解决这个问题几天,任何帮助都会非常感谢,谢谢。

这是我需要的一个例子; enter image description here

2 个答案:

答案 0 :(得分:2)

假设您分别在第A,D和E列中拥有帐户,价格和付费,并在第2行中使用第一行数据,请尝试第2行中的以下公式:

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

将公式复制到列中。这假设您的数据按照您显示的时间顺序按时间顺序排序。

此外,如果此公式有效,您在列的底部第4行上有错误的符号????

答案 1 :(得分:0)

您想要一个总计,所以您希望在计算第n行的余额时合并行的余额(n-1)。

根据您的第一张照片,进行以下更改:

    G2中的
  • 公式:=F2-E2
  • G3中的
  • 公式:=G2+F3-E3
  • 将公式从G3复制到列表末尾;最后一个值是您当前的余额

修改

抱歉......我似乎忽略了账户违约情况。嗯,这使得它变得更加容易,因为你只需要一个公式就可以了......

打破客户(如果客户列已排序),您将使用以下公式

    G2中的
  • 公式:=IF(A2=A1,G1+F2-E2,F2-E2)
  • 将公式从G2复制到列表末尾

if this.account = previous.account then calculate.running.total else create.new.balance

只要您的第一个客户名称是<>,这将有效。 “帐户”:-)