在列中A
,我有一个月份列表,格式为YY-MM
。
在列中B
,我列出了每个月访问过网站页面的唯一用户列表
(2016 年 11 月 - 2018 年 11 月)
我想知道平均而言哪个月产生的流量最多。
我可以使用什么公式?
太感谢了。
答案1
扩展我的评论:
=MAX(B:B)
将为您提供MAX
列中的值B
,然后
=MATCH(MAX(B:B),B:B)
将为您提供该行MAX
,以及:
=INDEX(A:A,MATCH(MAX(B:B),B:B))
A
将返回该行对应列的值
答案2
另一个可能对您有帮助的公式是 AVERAGEIF 或 AVERAGEIFS。
我的方法是使用 SUMPRODUCT,它将执行类似数组的计算,而无需数组。
1)建立平均值表
在我的示例中,我在 E2 至 E13 中列出了每个月的月份数(无论年份如何)。在相邻列中,在 F2 中使用以下公式并复制到 F13。
=IFERROR(SUMPRODUCT((--RIGHT($A$2:$A$11,2)=E2)*$B$2:$B$11)/SUMPRODUCT(--(--RIGHT($A$2:$A$11,2)=E2)),"")
IFERROR 函数用于处理当给定月份没有值时发生的除以 0 错误。如果您希望看到 0 而不是空白,请将末尾的“”更改为 0。
上述公式基于您的日期实际上是字符串的假设。如果它们实际上是日期,则使用以下内容:
=IFERROR(SUMPRODUCT((MONTH($A$2:$A$11)=E2)*$B$2:$B$11)/SUMPRODUCT(--(MONTH($A$2:$A$11)=E2),"")
2)寻找最大平均值
在下面的例子中,我在 I2 中使用了以下公式:
=MAX($F$2:$F$13)
3)查找相应月份
在 J2 中,我使用以下公式查找列表中最大值的位置。如果最大值重复/相等,它将返回第一个月。
=MATCH(I2,$F$2:$F$13,0)