D1公式下拉:
=IF(C1="","",LOOKUP(1,0/((--A$1:A$999=--C1)*(A$1:A$999<>"")),ROW($1:$999)))
从截图中看来A列的数据左上角有绿色的小箭头,那是文本格式的数字,最好能把它转换为数值格式的数字,转换后上面的公式能精简一点点,写作:
=IF(C1="","",LOOKUP(1,0/((A$1:A$999=C1)*(A$1:A$999<>"")),ROW($1:$999)))
提供一个把数字从文本格式转换为数值格式的方法:
先选中左上角有绿色小箭头的单元格区域,点击那个叹号的小按钮,选转换为数字即可。
追问谢谢,对结果很满意。因C列和A列不会为空,将公式简化为:=LOOKUP(1,0/(A$1:A$999=C1),ROW($1:$999)),真佩服你对函数的灵活使用。
我要再增加一点难度,实际是,A列数据非常多,查找的行数由B列数据量确定,假定A列数据有5000行,B列数据4500行(但随时会改变,不会大于A列),只查找A1:A4500中最后出现的行数,即现在公式中的999是按B列数据多少动态变化的
是B列还是C列了?提问截图是C列,追问是B列,现还是按截图中的C列举例,D1公式下拉:
=IF(C1="","",LOOKUP(1,0/(--OFFSET(A$1,,,COUNT(C$1:C$5000))=C1),ROW($1:$5000)))