如果我有这样的 Excel 列表……
每个都在自己的单元格中
A1. 1/25/18
A2. 1/30/18
A3. 2/05/18
A4. 2/15/18
A5. 2/16/18
我如何确定
- 一月有 2 条房源
- 二月有 3
我试过:
=COUNTIFS(A1:A5,MONTH(A1))
一月份计数为 2
答案1
=COUNTIFS(A1:A5,MONTH(A1))
该公式仅获取 A1 的月份部分,您需要获取所有值的月份部分。
不幸的是,您无法转换范围内的范围COUNTIFS
,您需要使用其他函数。
它将SUM
在一个数组公式:
=SUM(IF(MONTH($A$1:$A$5)=C1,1,0))
由于它是一个数组公式,因此输入后您需要按 CTRL+SHIFT+ENTER,而不是按 ENTER。
答案2
所以你尝试过:
=COUNTIFS(A1:A5,MONTH(A1))
这将不起作用,因为您有一个条件要计算 A 列中的任何内容是否本质上等于 1。1/25/18 不等于 2,其余的也是一样。
有两种方法可以实现你想要的效果。你可以使用辅助列,也可以在一个公式中完成所有操作。不过我实际上推荐使用辅助列。
使用辅助柱
因此,由于所有数据都在 A 列中,因此在 B1 列中输入:
=Month(A1)
然后向下拖动。在 B1 列中输入:
=countif(B:B,1)
这样,您的数据就具有相同的格式。=Month() 将始终返回一个数字,这样可以帮助您将数字列表与您正在寻找的数字进行比较,而不是像以前一样在日期中查找数字。
只需一个公式即可实现
另一种方法是使用数组公式。请记住,数组公式通常非常慢且占用大量 CPU,因此应谨慎使用。
在单元格 B1 中输入:
{=SUM(IF(MONTH(A1:A5)=1,1,0))}
输入此公式后,请确保按下Ctrl+ Shift+Enter以便它识别出有一个数组。
此公式中的 Month() 返回数字列表(数组),然后 IF() 语句表示如果这些数字中的任何一个 = 1,则返回 1,如果不是,则返回 0(本质上是计数)。在 IF 的外部,SUM 只是将所有返回的值相加。