【问题标题】:Excel---Counting duplicate dataExcel---统计重复数据
【发布时间】:2012-05-05 02:02:48
【问题描述】:
APC NM000038
APC NM000038
APC NM000038
APC NM000038
APC NM001127510
APC NM001127510
APC NM001127510

我试图在 excel 中计算重复数据。我找不到相关的答案,所以我只是在这里问。并感谢您提前回答。

我正在尝试使用两列信息来计算。如果值在 A列=某些标准,我想计算一个值的次数 出现在 B 列中(不要计算 B 列中的相同值,只计算不同的值) - 并非 A 列中的所有值都对应于 b 列 价值观。所以如果我想看看有多少女性获得了“5”,我需要看看 A 列中有多少个“女性”在 B 列中对应的值为“5”。 (并非所有女性都有“5”,值可以是 1 到 5)

在上面的例子中,我期望

NM001127510  2
NM000038     2

【问题讨论】:

  • 一般来说,sum over (multiple value match) 可以用SUMIF 完成。您能澄清一下您的数据是如何组织的吗? A 列和 B 列中的内容是什么?
  • 这个表不应该是:NM001127510 3NM000038 4吗?还是我错过了什么?

标签: excel vba


【解决方案1】:

假设您的数据在单元格 A1 到 B1000 中,请使用此公式

=SUMPRODUCT((A1:A1000="APC")*(B1:B1000="NM000038"))

类似

=SUMPRODUCT((A1:A1000="APC")*(B1:B1000="NM001127510"))

跟进

我这样做了,但是数据集很大,有几百 MB 的 excel 文件。我不确定我是否需要使用 vba 来做到这一点,因为我对 vba 不太了解 – Maggie Mi 7 小时前

如果您的 Excel 文件 >= 100 mb,则打开它然后运行 ​​VBA 代码或使用公式将花费大量时间。如果你只关心结果,那么试试这个:)

打开一个新的 Excel 文件。确保您的其他文件已关闭。在模块中粘贴此代码。当你运行它时,输出将被粘贴到 Sheet1 中。

Option Explicit

Sub Sample()
    Dim ws As Worksheet
    Dim adodb As Object
    Dim result

    Set ws = Sheets("Sheet1")

    Set adodb = CreateObject("ADODB.Connection")

    adodb.CursorLocation = 3

    adodb.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
                  "C:\book1.xlsx" & ";Extended Properties=""Excel 12.0 Xml;IMEX=1" & _
                  "HDR=NO;" & """"

    Set result = adodb.Execute("Select F1, F2, Count(*) from [Sheet1$] Group by F1,F2")

    With ws
        .Range(.Cells(1, 1), .Cells(result.RecordCount, result.Fields.Count)) _
        = Application.Transpose(result.GetRows)
    End With

    '~~> Cleanup
    result.Close
    adodb.Close
    Set adodb = Nothing
    Set result = Nothing
End Sub

我的假设(更改上面的代码 - 我的代码基于以下假设)

1) 您正在处理 Excel 2007/2010 文件。如果没有,那么您将不得不更改连接字符串。请参阅此链接以获取适当的连接字符串。

http://connectionstrings.com/excel

2) 包含数据的 Excel 文件名为Book1.xlsx,数据位于Sheet1。它也位于C:\

快照

【讨论】:

  • 但难的是,我有几千个数据集,每个数据集可能有不同的字符串(NMXXXXXX),我不知道如何全部统计
  • 那我可以推荐一个数据透视表吗?
  • 我这样做了,但是数据集很大,几百 MB 的 excel 文件。我不确定我是否需要使用 vba 来做到这一点,因为我对 vba 了解不多
猜你喜欢
  • 2013-01-26
  • 2011-03-06
  • 2014-03-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多