分享

【Excel教程】多次走访同一客户,如何提取最近一次走访客户的日期?

 初风Excel教学 2022-02-22

一、案例

如下图所示A1:B16为公司销售人员走访客户的日期记录。现在要求填写最近一次走访D列客户的日期。

二、操作步骤

1、对A1:B16数据区域按联系日期升序排列。本例数据源已按B列日期升序排列。

2、在E2单元格输入公式

=INDEX($B$2:$B$16,SMALL(IF($A$2:$A$16=D2,ROW($B$2:$B$16)-1,ROW($B$16)+1),COUNTIF($A$2:$A$16,D2)))

按Ctrl+Shift+Enter结束公式输入,拖动填充柄向下复制公式。

公式解析

(1)本例要求根据D列客户姓名查找联系日期,需要用Index函数。Index函数用于在特定的单元格区域中,返回指定行列交叉处单元格的值或引用,

语法为Index(array,row_num,[col_num]。例如INDEX($B$2:$B$16,7)返回单元格区域B2:B16第7行单元格的值,即“2021/3/19”,这是对客户“陈鹏”的最近一次走访日期。

(2)对客户“陈鹏”的走访日期共有4次,分别位于数据区域B2:B16的第1、2、4、7行,用Index函数表示则分别为INDEX($B$2:$B$16,1)、INDEX($B$2:$B$16,2)、 INDEX($B$2:$B$16,4)、 INDEX($B$2:$B$16,7)。INDEX($B$2:$B$16,7)就是要提取的最近一次联系日期。可以看出,要找到客户“陈鹏”的最近一次联系日期,其实就是找到A2:A16单元格区域中客户姓名为“陈鹏”的最大行号。

(3)IF($A$2:$A$16=D2,ROW($B$2:$B$16)-1,ROW($B$16)+1)表示当A2:A16客户姓名为“陈鹏”时,返回的值为“单元格行号-1”,否则返回17,公式的结果是{1;2;17;4;17;17;7;17;17;17;17;17;17;17;17}。

(4)COUNTIF($A$2:$A$16,D2)统计客户“陈鹏”的走访次数,共4次。

(5)SMALL函数用于返回数据中第k个最小值,语法为small(array,k)。

SMALL(IF($A$2:$A$16=D2,ROW($B$2:$B$16)-1,ROW($B$16)+1),COUNTIF($A$2:$A$16,D2))可以返回客户“陈鹏”的最后一次走访所在的行号。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多