首页 > 解决方案 > 使用excel公式返回子集中的最后一项

问题描述

在这个例子中,我想标记最近购买了一支笔的任何客户(或列表的底部)。我的数据按 CustomerID 和 ServiceDate 排序,最近的数据排在最后。我希望仅当最后一次购买是笔 (333) 时才能标记客户的所有交易。我一直在尝试使用 COUNTA 的公式,但是在依赖数据子集时不确定如何操作。

=INDEX(C:C,COUNTA(C:C))

这将给我列中的最后一个值。

Customer ID Custmer Name    Item Number Item Name   Date        Desired Results
1           Bob             222         Paper       1/1/2016    X
1           Bob             111         Tape        1/1/2017    X
1           Bob             333         Pen         1/1/2018    X
4           Greg            333         Pen         1/1/2015    
4           Greg            111         Tape        1/1/2016    
6           Chris           111         Tape        1/1/2015    X
6           Chris           333         Pen         1/1/2018    X
8           Luke            333         Pen         1/1/2013    
8           Luke            333         Pen         1/1/2014    
8           Luke            222         Paper       1/1/2015    
8           Luke            111         Tape        1/1/2016    
8           Luke            111         Tape        1/1/2018    
9           Tom             333         Pen         1/1/2013    X

标签: excel-formulaexcel-2013

解决方案


您可以通过创建一个附加列来做到这一点。附加列将使用以下公式查找上次购买是笔的所有客户:=IF(AND(C2=333,B2<>B3),B2,"")

下一列将为您提供所需的输出:=IF(OR(B2=$F$4,B2=$F$8,B2=$F$14),"X","").


推荐阅读