2017-08-02 60 views
1

我有3列:如果数字大于数字,我如何计算最新数值?

ID  Date  Value 
100 1/1/17 2 
200 1/2/17 3 
100 2/1/17 1 

我需要一个公式来计算,如果最近日期大于或等于2

的值在上面的例子中,结果将是:

ID  Count 
100 0 
200 1 

因为虽然在2017年1月1日的值为2,但2/1/17的较晚值为1因此为0.

+0

哪里是你的数据,是日期排序,也可以是,能有多个'Values'为同一'ID'和'日期'? – pnuts

+0

是的,我保持简单,但因为我用SQL来拉它,所以我可以通过ID命令日期。是的,对于相同的ID和多个日期可以有多个值。我只想看看最近的日期是否有大于X的值 – Phil

回答

2

假设您的值在考试中的AC列请在D列中生成一个唯一ID列表。假设您的第一个唯一ID在D1中,请将以下公式放在空白单元格中并复制下来。

=SUMPRODUCT((D1=A:A)*(AGGREGATE(14,6,(D1=A:A)*B:B,1)=B:B)*(C:C>=2)) 

sumproduct和aggregate都是在它们的()内执行类似数组的操作的函数。使用聚合函数时,ID的最大日期正在确定。我假设这是你最近的日期。那个最大日期正在与产品一起使用。 sumproduct逐行执行检查以查看各种逻辑检查是否为真(值为1)或假(值为0)。 *操作符在sumproduct中的行为类似于AND语句。因此,只有与ID号相匹配且具有该ID的最大日期并且第三列中值为2或更多的行才为真。当将true与真相乘时,您得到的值为1.当乘以true或false乘以false时,得到0. Sumproducts的最后一步是对1和0进行求和以给出您的计数。使用

公式:

  • SUMPRODUCT
  • 骨料
+0

太棒了!我通过测试运行它,它似乎很好。非常感谢! – Phil