Excel 2010,如何编写此公式?数据位于不同的工作表,但位于同一工作簿中

Excel 2010,如何编写此公式?数据位于不同的工作表,但位于同一工作簿中

请帮我解释一下这个公式:

(工作表 A)的 A 列中记录了全年的日期,格式为(06/19/13),B 列中记录了几个不同的人名。让我们在这种情况下使用名字(Brian)。

在同一工作簿中的(工作表 B)上,我需要编写一个公式来添加名字 Brian 在特定月份出现的次数(来自工作表 A)。

我尝试了 COUNTIF、IF THEN、SUM 的不同变体,但还是搞不懂。任何帮助都将不胜感激。我不是 Excel 高手,但我尽我所能使用基本公式。这个让我很为难。我尝试添加图片,但我是这个网站的新手,需要“声誉”达到 10 才能这样做,抱歉。

更新:以下是上述图片。我试图在工作表 B 上的 B16 中添加 Brian 的名字在 5 月份从工作表 A 中出现的次数。

工作表A

工作表B

答案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,这样您就不会那么容易弄乱,而且如果您想更改报告格式,则可以获得更大的灵活性。

相关内容