请帮我解释一下这个公式:
(工作表 A)的 A 列中记录了全年的日期,格式为(06/19/13),B 列中记录了几个不同的人名。让我们在这种情况下使用名字(Brian)。
在同一工作簿中的(工作表 B)上,我需要编写一个公式来添加名字 Brian 在特定月份出现的次数(来自工作表 A)。
我尝试了 COUNTIF、IF THEN、SUM 的不同变体,但还是搞不懂。任何帮助都将不胜感激。我不是 Excel 高手,但我尽我所能使用基本公式。这个让我很为难。我尝试添加图片,但我是这个网站的新手,需要“声誉”达到 10 才能这样做,抱歉。
更新:以下是上述图片。我试图在工作表 B 上的 B16 中添加 Brian 的名字在 5 月份从工作表 A 中出现的次数。
答案1
COUNTIF
和函数COUNTIFS
以范围作为其第一个参数,并且不允许您对该范围进行操作,即COUNTIF(MONTH(A:A),6)
会引发错误。
除了更改工作表中数据布局之外,您唯一的选择是SUMPRODUCT
像这样使用:
=SUMPRODUCT(--(MONTH(Sheet1!A1:A25)=6),--(Sheet1!B1:B25="Brian"))
这将计算 Brian 在六月出现的次数。请注意如何--
使用将布尔值 TRUE 和 FALSE(不能乘以SUMPRODUCT
)转换为数值 1 或 0。
您的另一个选择是在源数据中插入另一列:
A = Date B = Names C = "=Month(A)"
因此,在 C1 中,您将输入=Month(A1)
。这样,您可以使用:
=COUNTIF(Sheet1!A1:A25,6,Sheet1!B1:B25,"Brian")
执行COUNTIF
速度会比更快,SUMPRODUCT
但是它确实需要额外的列。
答案2
如果您想添加另一列,则将使用公式COUNTIFS()
。
添加另一列=month()
使用方法=COUNTIFS()
如下:
答案3
COUNTIFS 应该可以帮你完成。将其中一个条件设置为所需月份,将另一个条件设置为名称。
答案4
只是想说一下,您真正想要的是使用PivotTables
。它们并不总是能很好地处理 DateTime 之类的值,但您可以使用该函数轻松提取日期的月份部分Text
。
对于漂亮的约会,使用Text
,而不是Month
例如 A1 = 5/6/2013
=Month(A1)
'returns 6
=Text(A1,"MMMM")
'returns "May"
- 在 C 列中添加月份
- 使用
Text(cell, "MMMM")
并拖至底部 - 添加一个数据透视表,行标签中显示名称,列标签中显示月份,值中显示日期计数
代码越少越好。让 Excel 为您实现条件 iff,这样您就不会那么容易弄乱,而且如果您想更改报告格式,则可以获得更大的灵活性。