Excel动态添加到行如果包含某些内容

时间:2015-07-14 15:44:17

标签: excel vba excel-vba sum

我有一张用于客户数据输入的Excel表格,例如零件成本,他们为一切付款的金额,以及他们如何支付(现金,信用或支票)。这是我的第一页,以便更好看:

Sheet1

因此,在第一张纸上,您输入所需的所有数据,例如姓名,汽车品牌,地址(日期是动态的= TODAY())。在确认框中键入“y”时,将在sheet2上计算数据以分析货币值。这是带有数据的表2,这样你就可以看到我在说什么:

enter image description here

按“新客户”按钮运行一个VBA脚本,在sheet1上为另一个客户条目创建一个新行,在sheet2上为sheet1上的新行创建另一个相应行以生成计算数据,并“存储”两个sheet1 sheet3上的先前客户数据的表格和表2。

这引出了我的问题..对于sheet2计算“Cash Total”,“Credit Card Total”和“Check Total”,如果他们以现金支付,我需要过滤并仅添加(现金+部分成本) ,(卡+部分费用),如果他们用卡支付,和(支票+部分费用),如果他们支票支付。我的问题是,我无法弄清楚如何逐行检查并检查他们是否使用现金,卡或信用卡付款,然后将THAT ROW的零件成本添加到相应的总框中。我想象一个声明,如= IF(G2> 0,G2 + E2)或沿着这些线的东西可行,但我无法弄清楚,并希望看到你们提出一些解决方案。请注意,这个(部分成本+支付媒介)也需要适用于动态范围的单元格,因为当天的客户数量未知,这意味着“新客户”可能输入不同数量的行。

2 个答案:

答案 0 :(得分:1)

根据我的理解,你可以尝试这样的事情

munmap

SUMPRODUCT仅增加了现金支付行的部分成本。然后将该总额添加到现金列的总数中。您只需将F列更改为每种类型的其他付款方式。

确实没有一种让它变得动态的好方法。只需设置足够大的范围,您就永远不会过去。

=SUMPRODUCT(--(F2:F7 > 0),D2:D7)+SUM(F2:F7)

我没有写出特定于你的表单的等式。试试现金总额。

F2:F1000

您也没有提及有关多种付款方式的任何信息。我会考虑一下并回复你。

答案 1 :(得分:1)

作为对bbishopca声明的修正,您可以使用= COUNT(F:F)语句动态查找工作表中存在多少行。所以现在你要把

=COUNT(F:F)

在一个单元格中,比如A1,输出2.然后将范围从bbishopca的答案设置为

F2:INDIRECT("F"&A1) 

对每种付款方式重复。