我正在使用 Apple 数字对来自 Mailchimp 的 CSV 导出数据进行一些计算。
数据大致如下:
ID Email, SignupAt
01 [email protected] 2015-09-04
02 [email protected] 2015-09-05
03 [email protected] 2015-09-06
04 [email protected] 2015-10-04
我有另一个表,我想按数字计算该表中的记录数。例如:
September 2015 December 2015
New Subscribers: 3 1
我在电子表格中尝试了以下公式(及其各种变体),但仍然得到答案0
=COUNTIF(TableA:SignupAt, (MONTH(TableA:SignupAt)=MONTH(B1) & YEAR(TableA:SignupAt)=YEAR(B1)
(其中 B2 是包含日期的表 B 的列标题September 2015
)
计算这些记录的正确公式是什么?
答案1
有一个简单的解决方案,使用真值和假值。
=SUM((MONTH(TableA:SignupAt)=MONTH(B1))*(YEAR(TableA:SignupaAt)=YEAR(B1)))
这是有效的,因为只有 TRUE*TRUE = 1 并且所有其他组合都返回 0。所以它会计算两个条件都为真的单元格。
另外这是一个数组公式,因此填写后必须按 Ctrl+Shift+Enter。
答案2
您必须AND
在公式中使用 而不是&
,如下所示:
=COUNTIF(TableA!C1:C4,AND(MONTH(TableA!C1:C4)=MONTH(B2),YEAR(TableA!C1:C4)=YEAR(B2))
这是一个数组公式,同时按下Ctrl++ 。ShiftEnter
您也可以使用另一个公式:
=SUMPRODUCT((--YEAR(TableA!C1:C4)=YEAR(B2))*(--MONTH(TableA!C1:C4)=MONTH(B2)))
再次,你必须按Ctrl++ShiftEnter
其中 C1:C4 是 SignupAt 列,B2 是包含日期 2015 年 9 月的表 B 的列标题。
确保两个表中的日期格式是 Excel 可以理解的。
答案3
您可以使用简单的数据透视表来接近您想要的结果。但它不会自动更新。
如果您想使用一个公式,在 B9 中输入您想要的月份/年份,并将其作为该月的 1 号,格式化为如您所显示的那样显示,然后使用:
=COUNTIFS(TableA[SignupAt],">="&B9,TableA[SignupAt],"<="&EOMONTH(B9,0))
如果 B9 中的日期不一定是该月的第一天,而是该月中的某个随机日期,则以下公式将起作用:
=COUNTIFS(TableA[SignupAt],">"&B9-DAY(B9),TableA[SignupAt],"<="&EOMONTH(B9,0))
B9-DAY(B9)
将始终返回前一个月的最后一个日期。