【问题标题】:VBA: Find number of occurrences in one column based on number of occurrences in a second columnVBA:根据第二列中的出现次数查找一列中的出现次数
【发布时间】:2019-01-30 08:07:52
【问题描述】:

我需要找到一种方法来计算一个数字在 B 列中出现的次数,基于它与 A 列中的值匹配。

例子:

Column A       Column B    
2172223333    2172245555    
2172223333    2172245555    
2172234444    2172245555    
2172234444    2172245555    
2172285544    2172245555

所以在这个例子中我需要计算一下

2172245555 相对于2172223333 出现 2 次​​p>

2172245555 相对于2172234444 出现 2 次​​p>

2172245555 相对于2172285544 出现 1 次

有什么建议吗?

【问题讨论】:

    标签: excel vba countif find-occurrences


    【解决方案1】:

    只需在 C 列中使用以下公式

    =COUNTIFS(A:A,A:A,B:B,B:B)
    

    获取组合的出现次数。


    您也可以在单元格 C2 中使用

    =COUNTIFS(A:A,A2,B:B,B2)
    

    ……然后复制下来。


    编辑以证明我在下面的评论: 在这里看到最后一行。 2172223333 出现,但组合只计算 A 列和 B 列组合的出现次数。

    【讨论】:

    • 很抱歉没有提供足够清晰的信息。 B 列也可以更改。
    • 所以可能有 2172223333 在列 B 中具有不同的数字,所以我不能使用传统的 COUNTIFS 语句,因为它会计算 2172223333 出现在 A 列中的所有时间,而不仅仅是2172223333 相对于 2172245555 出现的次数。然后在该列的下方,我需要知道 2172223333 在 B 列中以不同的数字再次出现多少次,例如 2172287777。
    • @BonnieZ 不,它完全符合您的要求。它只计算具有相同A列和B列组合的行。请测试它。请注意,COUNTIFS 不是 COUNTIFCOUNTIFS 可以检查多个条件。请参阅我的编辑以获取证明。
    【解决方案2】:

    您还可以使用连接列 A 和 B 的辅助列。这会创建一个 复合键,然后您可以在 CountIf 函数中使用它,如下所示:

    • C 列公式:=A2&B2
    • D 列公式:=COUNTIF($C$2:$C6,$C2)
    • E 列公式:=COUNTIF($C$2:$C2,$C2)

    注意:我为踢球添加了运行计数列(E 列),所以它不是必需的,只是您将来可能想要退出的另一个选项。

    【讨论】:

    • 其实有COUNTIFS的原因是你不必这样做;)
    • @Pᴇʜ 你是对的!您的回答正是 OP 所需要的,但我只是认为让他们了解其背后的想法可能对他们有用。 Countis 虽然非常强大,但对我来说总是有点令人生畏(我是一个简单的家伙哈哈)。此外,复合键的概念可以激发读者对其他有用任务的想法,这些任务可能需要读者阅读这篇文章后会发现。
    猜你喜欢
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2019-10-20
    • 2021-04-12
    相关资源
    最近更新 更多