返回下一个最低值

时间:2015-01-30 10:12:58

标签: excel formula excel-2013

MS EXCEL 2013:

我正在尝试构建一个公式,将比较报告日期'(DD / MM / YYYY)与该字段中的其他日期返回下一个最高日期。我将在 VLOOKUP / SUMIFS 中使用它来从上次发布报告的时间开始返回一个值。

所以这是我的数据集的摘要。 注意:我的数据集中有多个[ID]。

[ID];[reportDate];[priority]
1;01/11/2014;50
1;01/12/2014;50
1;01/01/2015;45
1;01/02/2015;40

我觉得=LARGE([reportDate],2)正在给我一些方法,因为它给了我上次报告的正确日期。但我不认为这是一个很好的答案,因为它只有在每个ID有两行时才有效。

但到目前为止,这就是我所拥有的。

=SUMIFS([priority],[ID],[@ID],[reportDate],LARGE([reportDate],2))

感谢您抽出宝贵时间提供帮助。

1 个答案:

答案 0 :(得分:0)

我找到了一种方法。

我不认为这是最好的方式,但它有效!

<强>概要

总而言之,我创建了一个所有不同[reportDate]值的列表,然后使用它来给我下一个最早的日期,即我的[lastReportDate]。然后在SUMIFS公式中使用[lastReportDate]和[ID]来检索上次报告的优先级。

<强> DETAIL

我创建了一个仅包含[reportDate]的自动刷新数据透视表(因此是一个不同的列表)。

这是最新到最早的排序。在图表旁边,我有一个IF语句,它检查它下面和左边的单元格并处理一个&#34; N / A&#34;如果空白那用来告诉我不同​​的reportDate表的结尾在哪里。

示例(从单元格A1开始,名为&#39; DATE distinct&#39;)

[reportDate];[formula]
01/01/2014;=IF(A3>1,A3,"N/A")
05/02/2014;=IF(A4>1,A4,"N/A")
02/03/2014;=IF(A5>1,A5,"N/A")
02/04/2014;=IF(A6>1,A6,"N/A")

然后我将SUMIFS添加到原始表中的新列,以输出上次报告的优先级。

=IF(VLOOKUP([@[reportDate]],'DATE distinct'!$A:$B,2,FALSE)="N/A","",SUMIFS([priority],[ID],[@ID],[reportDate],VLOOKUP([@[reportDate]],'DATE distinct'!$A:$B,FALSE)))

请注意&#39;日期不同&#39;是我存储不同日期的工作表的名称。

放置上述公式的示例表。

[ID];[reportDate];[priority];[lastReportPriority]
1;01/01/2014;50;{above formula}
1;05/02/2014;50;{above formula}
1;02/03/2015;45;{above formula}
1;02/04/2015;40;{above formula}
14;01/01/2014;20;{above formula}
14;05/02/2014;20;{above formula}
14;02/03/2015;25;{above formula}
20;05/02/2014;20;{above formula}
20;02/03/2015;30;{above formula}
20;02/04/2015;60;{above formula}

所以公式会像这样计算......

[ID];[reportDate];[priority];[lastReportPriority]
1;01/01/2014;50;
1;05/02/2014;50;50
1;02/03/2015;45;50
1;02/04/2015;40;45
14;01/01/2014;20;
14;05/02/2014;20;20
14;02/03/2015;25;220
20;05/02/2014;20;
20;02/03/2015;30;20
20;02/04/2015;60;30
相关问题