【问题标题】:Excel Dynamically Add To If Row Contains Something如果行包含某些内容,Excel会动态添加到
【发布时间】:2015-07-15 00:34:36
【问题描述】:

我有一个用于输入客户数据的 Excel 表,例如零件成本、他们为所有物品支付的费用以及他们的付款方式(现金、信用卡或支票)。这是我的第一页以获得更好的外观:

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

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

这引出了我的问题。对于 sheet2 计算“现金总额”、“信用卡总额”和“支票总额”,如果他们以现金支付,我需要过滤并仅添加(现金 + 部分成本) , (卡 + 部分费用)如果他们用卡支付,以及(支票 + 部分费用)如果他们用支票支付。我的问题是我不知道如何逐行检查他们是否使用现金、卡或信用卡支付,然后将那行的部分成本添加到相应的总框中。我想像 =IF(G2 > 0, G2 + E2) 这样的陈述或类似的东西会起作用,但我无法弄清楚,希望看到你们提出一些解决方案。请注意,这(部分成本 + 支付方式)也需要适用于动态范围的单元格,因为当天的客户数量是未知的,这意味着“新客户”输入的行数可能不同。

【问题讨论】:

  • 如果其他的已经为零(客户只能有一种付款方式),只需将所有 4 个单元格加在一起。
  • @Chrismas007 第二个客户可能用卡而不是现金付款,所有客户数据都显示/计算在表 2 上。这样会破坏您的解决方案。
  • 那么您将需要共享您的代码,以便我们更好地了解数据的转换。
  • @Chrismas007 我需要在 sheet2 上做的所有事情就是添加(现金 [G 列] + 部分成本 [E 列],如果现金 > 0 用于该行),卡片和支票也是如此。所有这些总计需要显示在“现金总计”、“卡总计”和“支票总计”中
  • 我基本上需要逐行将结果添加到 Total 框中。听起来像是动态范围的循环,但我不知道该怎么做。

标签: vba excel sum


【解决方案1】:

据我了解,您可以尝试这样的事情

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

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

真的没有一个好的方法可以让它动态化。只需将范围设置得足够大,您将永远不会超过。

F2:F1000

我没有写出特定于您工作表的方程式。试试这个来计算现金总额。

=SUMPRODUCT(--(G2:G1000 > 0),E2:E1000)+SUM(G2:G1000)

您也没有提及多种付款类型。我会考虑一下并回复你。

【讨论】:

  • 它不工作。你的公式我没有得到的是,我将 G > 0 的每一行的 G 列添加到 E 中,并且我需要“现金总计”作为满足此条件的所有行的运行总计。您的公式使用了不正确的 F 列和与我要执行的操作无关的 D 列。
  • 另外,我相信如果我在 sheet2 上有两个客户,一个用现金付款,另一个用卡付款,使用您的公式,它会将客户“零件成本”添加到总数中,因为范围G2:G7 会大于 0.. 如果你知道我要解释什么。
  • 我是个白痴,改了一些字母,效果很好。无视我的无能。
  • 我更新了我的方程式以匹配您的工作表。我将为多种付款方式制定解决方案。
  • "...对于 sheet2 计算“现金总额”、“信用卡总额”和“支票总额”,如果他们支付,我需要过滤并仅添加(现金 + 部分成本)现金,(卡+部分费用)如果他们用卡支付,(支票+部分费用)如果他们用支票支付。”在我的帖子中。但您的解决方案现在只需稍作调整即可工作。
【解决方案2】:

作为对 bbishopca 语句的修正,您或许可以只使用 =COUNT(F:F) 语句来动态找出工作表中存在多少行。所以现在你会放

=COUNT(F:F)

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

F2:INDIRECT("F"&A1) 

对每种付款方式重复此操作。

【讨论】:

    猜你喜欢
    • 2021-01-31
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多