首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用列表只对包含某些数据的行进行求和?

如何使用列表只对包含某些数据的行进行求和?
EN

Stack Overflow用户
提问于 2016-02-22 20:40:55
回答 2查看 76关注 0票数 0

我有一个电子表格,其中包含以下类型的数据

2182016 -现金收据- 3055 - 2182016

这种数据类型的列表将包含数百行数据,日期、事务描述和其他字段将根据交付多次重复显示。我需要对每一次发生的描述和零售费用进行汇总,然后将该行复制到一个新的工作表中,将其他列保持为一个单一记录,例如,如果上面的三行是整个工作表,我将需要输出到一个新的工作表上,如下所示:

2182016 %现金收据5564 2182016 %邮资RA 2116

此外,有时我需要和的字段中的数字在另一列中为1,这意味着需要减去而不是添加数据。

2182016 -现金收据

需要像这样输出

2182016 %现金收据\x 549 2182016

我有一张完整的描述列表,我需要在一个隐藏的表格中把总数加起来。

商店供应,商店设备,格罗克采购,生产普奇,肉馅,冷冻普奇,奶制品普奇,德利普氏,HBA普奇,烟草普氏,燃料,EPS费,Cpn脸,Cpn公司,培训,Val醋栗,回扣1,回扣2,回扣3,回扣4,回扣5,回扣6,WHSE销售,办公室供应,办公室设备,办公室培训,办公室租赁,便笺安装,说明信用,票据利息,VPN

EN

回答 2

Stack Overflow用户

发布于 2016-02-22 21:07:37

只需声明一个模块级别的用户定义类型,将运行的总计转储到其中,并编写一个代码循环,将“文本”列向下滚动,并将字符串与适当的情况匹配。

代码语言:javascript
复制
 Type DescriptionTotals
        Dim storeSupply As Double
        Dim producePurch As Double
        Dim anotherThing As Double
        '... you get the picture here
    End Type


sub getTotals()

dim matchString As String
'do something here to select a cell, and assign to "matchString"
cells(i,j).value = matchString

Select Case matchString
    Case Is "CASH RECIEPT"
        DescriptionTotals.cashReceipt = DescriptionTotals.cashReceipt + 'value in adjacent cell
    Case is "NEXT COMPARISON STRING"
        'add to the total in your type here.
    Case Else
        'handle string match errors here

End Sub
票数 0
EN

Stack Overflow用户

发布于 2016-02-22 22:15:46

以下是我认为最简单的解决办法。将计算列添加到现有表中。此列应计算为

代码语言:javascript
复制
=IF(columnWithPrefix=1,-1,1)*columnWithTransactionCount)

然后您可以选择整个表,然后单击菜单Insert,然后单击Pivot Table。之后,这仅仅是你根据个人喜好格式化桌子的问题。下面是一个基于示例数据的简单解决方案。

一些评论:

  • 我有一个欧洲版的Excel,因此您可以在公式中看到;,这里有潜在的,
  • 性能应该非常好(即使有几千行)。
  • 您可以双击任何值以向下钻取.
  • 如果将日期格式化为可识别的日期格式,那么Excel甚至允许您(自动)按年、季度、月或日进行汇总。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35563387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档