arrays - 在 Excel 中使用 If 大语句并填充表格的剩余部分

标签 arrays excel if-statement

我有一个如下例所示的数据集。我想提取按交易日期排序的最后十笔交易的列表,同时捕获原始数据集中的所有信息列;只有当推销员是吉米时,我才想这样做。

我难住了。任何想法如何做到这一点?

下面的示例数据集:

    Customer Name   Customer Group  Salesman    Transaction Date
    Sam                    1          Jimmy     3/21/2015
    Jill                   2          Johnny    3/21/2015
    Scott                  3          Joanny    3/21/2015
    Sean                   4          Slippy    3/24/2015
    Dave                   5          Slappy    3/25/2015
    Amber                  4          Slummy    3/26/2015
    Shawn                  3          Jimmy     3/24/2015
    Matt                   2          Johnny    3/26/2015
    Matthew                4          Joanny    3/24/2015
    Mark                   3          Slippy    3/21/2015
    Luke                   2          Slappy    3/26/2015
    John                   1          Slummy    3/26/2015
    Jonathan               5          Jimmy     3/24/2015
    Zach                   3          Johnny    3/26/2015
    Asher                  2          Joanny    3/21/2015

期望的输出是按预测交易日期排序的最后 10 笔交易
Customer Name   Customer Group  Salesman    Forecast Transaction Date

更新:

我正在使用这个公式,模仿斯科特的但它出错了。
=iferror(index(All_Incremental_MDA_JV_Forecast__2[[#Headers],[Opportunity Name]]:index(All_Incremental_MDA_JV_Forecast__2[Opportunity Name],match(1E+99,All_Incremental_MDA_JV_Forecast__2[Forecast Close Date])),aggregate(15,6,row(All_Incremental_MDA_JV_Forecast__2[[#Headers],[Forecast Close Date]]:index(All_Incremental_MDA_JV_Forecast__2[Forecast Close Date],match(1E+99,All_Incremental_MDA_JV_Forecast__2[Forecast Close Date]))-3)/((All_Incremental_MDA_JV_Forecast__2[[#Headers],[Pegasus Stage]]:index(All_Incremental_MDA_JV_Forecast__2[Pegasus Stage],match(1E+99,All_Incremental_MDA_JV_Forecast__2[Forecast Close Date]))="Closed Affirmative - Contract Signed")*(All_Incremental_MDA_JV_Forecast__2[[#Headers],[Forecast Close Date]]:index(All_Incremental_MDA_JV_Forecast__2[Forecast Close Date],match(1E+99,All_Incremental_MDA_JV_Forecast__2[Forecast Close Date]))='MDA-JV'!V10)),countif('MDA-JV'!$V$10:'MDA-JV'!$V10,'MDA-JV'!V10))),"")

最佳答案

我的方法与@Jeeped 略有不同。虽然我确实窃取了允许范围自动增长和收缩到正确大小的 INDEX/MATCH。

将所需的销售人员姓名放在 L1 中,并从交易日期开始。要按顺序获取交易日期:

=IFERROR(AGGREGATE(14,6,$D$2:INDEX(D:D,MATCH(1E+99,D:D))/($C$2:INDEX(C:C,MATCH(1E+99,D:D))=$L$1),ROW(1:1)),"")

`
并向下复制 10 行。

然后客户名称指的是我在 I 列中输入的交易日期:
=IFERROR(INDEX($A$1:INDEX(A:A,MATCH(1E+99,D:D)),AGGREGATE(15,6,ROW($D$1:INDEX(D:D,MATCH(1E+99,D:D)))/(($C$1:INDEX(C:C,MATCH(1E+99,D:D))=$L$1)*($D$1:INDEX(D:D,MATCH(1E+99,D:D))=I2)),COUNTIF($I$2:$I2,I2))),"")

Salesman 列是对 L1 的简单引用。

为了得到这个组,我使用了一个简单的 SUMIFS():
=IF(I2<>"",SUMIFS(B:B,A:A,F2,C:C,H2,D:D,I2),"")

![enter image description here

这将按从最新开始的日期对条目进行排序。

关于arrays - 在 Excel 中使用 If 大语句并填充表格的剩余部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36337388/

相关文章:

arrays - 无法找到项目数组中是否存在一项并在 Perl 中返回必要的消息

c - 如果条件在 c 中有效,为什么里面有 printf?

if-statement - 条件如果和或在 Racket

javascript - Kendo UI 导出到 Excel

VBA函数能够搜索单元格吗?

javascript - For 循环 if 语句在 Javascript 中识别 == 但不识别 <

C 结构函数语法 - 传递元素,返回结构

javascript - 在 Javascript 中按日期和时间对对象数组进行排序时出现问题 - 允许空值

javascript - html元素数组是否为空

java - 将 Csv 文件写入类似矩阵的结构