源数据
要求:求每行单元格区域第一个非空的单元格对应的日期和最后一个非空的单元格对应的日期。
第一个单元格:数组三键
=INDEX($A$1:$G$1,,MATCH(TRUE,A2:G2<>"",0))
解释:
- 1、首先A2:G2<>""构造一个数组,F9得出结果{FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE}
- 2、match在上面的数组中精确查找true,会返回第一个true所在的位置索引,这里是3;公式:MATCH(TRUE,A2:G2<>"",0)
- 3、index根据2中的索引号返回对应的日期。
最后一个单元格:普通公式
=LOOKUP(1,0/(A2:G2<>""),$A$1:$G$1)
解释:
- 1、同样根据A2:G2<>"",构造一个数组{FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE};和上面不同的是,用0除以这个数组的每一个元素,生成一个新的数组:
{#DIV/0!,#DIV/0!,0,#DIV/0!,0,#DIV/0!,0};
0/False=#DIV/0!,0/true=0; - 2 然后在{#DIV/0!,#DIV/0!,0,#DIV/0!,0,#DIV/0!,0}中查找1,因为此数组中只有数字0,因此,将会返回最后一个比1小的0的位置,这里是7
- 3 将7对应的日期,输出到单元格。