计算一列中有多少个月

计算一列中有多少个月

如果我有这样的 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 只是将所有返回的值相加。

答案3

在此处输入图片描述

在单元格 B2 中写入以下公式来获取月份数:

=SUMPRODUCT(1*(MONTH($A$2:$A$6)=MONTH(A2)))

在 C2 中写入此数组公式来生成月份计数的唯一列表:

{=IFERROR(INDEX($A$2:$A$6, MATCH(0,COUNTIF($C$1:C1, $A$2:$A$6), 0)),"")}

注意:使用 Ctrl + Shift + Enter 完成此公式。

相关内容