【问题标题】:Excel index or vlookup?Excel索引或vlookup?
【发布时间】:2015-08-30 16:29:51
【问题描述】:

我正在尝试制作一份报告,显示每个月的前 10 位电子邮件发件人。

在工作表 1 中,我在 A 列中有日期 2015 年 1 月、2015 年 2 月等,在 B 列中有电子邮件地址列表,在 C 列中有这些用户每个月发送的总数。在工作表 2 上,我希望结果显示我有一个日期 DDL,可以选择 Jan-2015、Feb-2015 等等。

我想要的(如果可能的话)是当我在工作表 2 上选择日期时,它会拉出前 10 名最高发送的电子邮件数量和相应的用户,并且当我更改日期时我想要要更新的信息。

电子表格的示例如下所示。我正在研究的实际上有更多信息,但这应该可以提供大致的思路。

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

当我使用公式时

=大(IF($A$5:$A$9=$H$3,$D$5:$D$9),F5)

它只是将它们按大小顺序排列,但不反映发件人。我以前在 index/match 上遇到过,但无法让它工作。

你能告诉我我做错了什么吗?

非常感谢 戴夫

【问题讨论】:

    标签: excel indexing vlookup


    【解决方案1】:

    使用这样的数据布局:

    您可以在F3中使用以下数组公式(用Ctrl+Shift+Enter确认)并向下拖动:

    =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)
    

    【讨论】:

    • 这是一种享受,谢谢。如果我想在 G 列中也显示金额,我会怎么做?
    • 我现在被要求为花费的时间添加一个额外的列,目前看起来像这样 imageshack.com/a/img537/1409/CTwrcx.png 当我使用公式 =LARGE(IF($A$5:$A$9=$H $3,$D$5:$D$9),F5) 它只是将它们按大小顺序排列,但不反映发件人。我以前有过索引/匹配,但无法让它工作。你能告诉我我做错了什么吗?非常感谢戴夫
    猜你喜欢
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多