一、案例 如下圖所示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))可以返回客戶“陳鵬”的最后一次走訪所在的行號。 |
|