我试图做一个每月显示前10位电子邮件发件人的报告。
在工作表1上,我在A列中显示2015年1月,2015年2月等,在B列中显示电子邮件地址列表,在C列中显示这些用户在每个月发送的总数。在工作表2上,我希望结果显示我有一个日期DDL,2015年1月,2015年2月可供选择,依此类推。
我想要的(如果可能的话)就是当我在工作表2上选择日期时,它会提取发送的前10个最高电子邮件数量以及相应的用户以及当我更改日期时#39; d喜欢要更新的信息。
电子表格的示例如下所示。实际上我正在研究的人有更多的信息,但这应该给出一般的想法。
date sender amount sent
Jan-15 john@email.com 12
Jan-15 david@email.com 23
Jan-15 claire@email.com 45
Jan-15 paul@email.com 56
Jan-15 ross@email.com 78
Feb-15 dayna@email.com 89
Feb-15 ben@email.com 65
Feb-15 gary@email.com 32
Feb-15 jim@email.com 15
Mar-15 james@email.com 48
Mar-15 luke@email.com 78
Mar-15 rebecca@email.com 96
然后在工作表2上说,A1将是我的DDL来选择日期范围。
任何帮助都会受到高度赞赏,因为我一直在试图弄清楚这个问题。
提前致谢 戴夫
编辑:我现在被要求为目前看起来像这样的时间添加额外的列
http://imageshack.com/a/img537/1409/CTwrcx.png
当我使用公式
时= LARGE(IF($ A $ 5:$ A $ 9 = $ H $ 3,$ d $ 5:$ d $ 9),F5)
它只是按照大小顺序排列,但不反映发件人。我之前曾参与过索引/比赛,但无法让它发挥作用。
你能告诉我做错了吗?
非常感谢 戴夫
答案 0 :(得分:1)
使用这样的数据布局:
您可以在Ctrl
中使用以下数组公式(通过Shift
+ Enter
+ F3
确认)并将其向下拖动:
=IFERROR(INDEX($B$2:$B$13,MATCH($F$1&LARGE(IF($A$2:$A$13=$F$1,$C$2:$C$13+ROW($C$2:$C$13)/10^7),E3),$A$2:$A$13&($C$2:$C$13+ROW($C$2:$C$13)/10^7),0)),"")
它是如何运作的:
LARGE(IF($A$2:$A$13=$F$1,$C$2:$C$13+ROW($C$2:$C$13)/10^7),E3)
找到E3-th
最大数量的邮件,IF
仅选择参数F1
日期中的行。 ROW($C$2:$C$13)/10^7
小数部分用于排序关系。
INDEX/MATCH
组合在输入表上执行2列(日期和数量+行小数部分)查找。
IFERROR
将返回空字符串。
编辑:(回复评论中的问题):要添加金额,请使用LARGE
公式:
=LARGE(IF($A$2:$A$13=$F$1,$C$2:$C$13),E3)