|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 e表格学习 于 2016-7-29 09:31 编辑
第10题:
=IFERROR(INDEX(B182:B190,IFERROR(SMALL(IF(FREQUENCY(IF(B182:B190="","",MATCH(B182:B190,B182:B190,)),ROW(1:8))>0,ROW(B182:B190)),ROW(1:9)),2^16)-181),"")
多单元格数组公式
上式有多余部分(红色部分),删除后更加简洁:
=IFERROR(INDEX(B182:B190,SMALL(IF(FREQUENCY(IF(B182:B190="","",MATCH(B182:B190,B182:B190,)),ROW(1:8))>0,ROW(B182:B190)),ROW(1:9))-181),"")
多单元格数组公式
星光老师的"标准答案"比俺的"老辣"(老练)!但是改成多单元格数组公式(可以除去"$"符号)后,公式可以短些.如答案1:
原公式:=INDEX($B$182:$B$300,SMALL(IFERROR(1/((MATCH($B$182:$B$190,$B$182:$B$190,)=ROW($1:$9))*ROW($1:$9))^-1,99),ROW(A1)))&""
新公式:=INDEX(B182:B300,SMALL(IFERROR(1/((MATCH(B182:B190,B182:B190,)=ROW(1:9))*ROW(1:9))^-1,99),ROW(1:9)))&""
(公式中的"IFERROR+1/()^-1"确实高!!!老辣!)
答案2中,使用&""避免MATCH出现错误值,也很妙.
|
|