【问题标题】:Use COUNTIF, ARRAYFORMULA and VLOOKUP in Microsoft Exel在 Microsoft Excel 中使用 COUNTIF、ARRAYFORMULA 和 VLOOKUP
【发布时间】:2017-05-24 23:04:07
【问题描述】:

我的 Excel 工作表中的前两列用作 VLOOKUP 图表,如下所示:

-----------------
| 1  | Baseball |
-----------------
| 1  | Baseball |
-----------------
| 3  | Football |
-----------------
| 4  | Football |
-----------------

等等……

在 C 列中,我有一个数字列表,例如 2,1,13...。在 D 列中,我可以对每个号码进行 VLOOKUP,以获取与该号码相关的运动;但是,我不在乎。我只想知道每项运动到底代表了多少次,所以在我的短名单中棒球代表了两次(2 次和 1 次)。使用 VLOOKUP 值,我可以使用 COUNTIF 来计算每项运动出现的次数。在 Google 表格中,我可以通过一个简单的公式完成所有这些操作,如下所示:=COUNTIF(ARRAYFORMULA(VLOOKUP(C1:C100,A:B,2)),"Baseball") 我会得到一个数字。不过,Excel 中不存在 ARRAYFORMULA。有什么方法可以做到这一点,还是我需要为中间步骤制作一个隐藏列?

【问题讨论】:

  • 你不能只对数字使用COUNTIF而忘记名字吗?
  • 我希望它可以扩展,这样如果在 VLOOKUP 表中为棒球添加另一行,它仍然可以工作

标签: excel google-sheets


【解决方案1】:

在 Excel 中,我会在 COUNTIFS() 周围使用 SUMPRODUCT:

=SUMPRODUCT(COUNTIFS(A:A,$C$1:$C$100,B:B,"Baseball"))

【讨论】:

  • 我认为答案应该是 2。
  • 在他的示例中应该是 4,因为第 1、2、6 和 7 行都有棒球
  • Sumproduct 是一个数组类型的公式,它在 COUNTIFS 中迭代第二个条件中的范围,就像做 100 个 countifs,对 C1:C100 中的每个单元格一个,然后对输出求和。 @ZacharyWeixelbaum。
  • 优秀。谢谢!
  • 不幸的是,这个函数有一个巨大的过载。我在 200 个单元格中有这个公式,它显着减慢了工作表的速度。我必须想出一个更好的解决方案,这意味着我只需要对更快的数字进行计数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-10
相关资源
最近更新 更多