楼主 lrlxxqxa |
利用函数提取黄色区域内不重复数据
效果如下:
说明:
利用函数实现
直接给出公式即可。
回答正确者+6技能分,精彩者额外加分。
2012年3月24日18:00开题。 区域提取不重复.rar |
2楼 sylzldd |
=INDIRECT(TEXT(SMALL(IF($A$1:$E$20<>"",ROW($1:$20)*100+COLUMN(A:E),99999),ROW(1:1)),"r0c00"),)&"" |
3楼 xgg2001 |
- =IF(OR((A$1:E$20<>"")*(COUNTIF(G$1:G1,A$1:E$20)=0)),INDIRECT(TEXT(MIN(IF((A$1:E$20<>"")*(COUNTIF(G$1:G1,A$1:E$20)=0),ROW($1:$20)*10+COLUMN(A:E))),"r0c0"),),"")
|
4楼 hylees |
参与一下,很长的数组公式- =IF(OR((A$1:E$20<>"")*(COUNTIF(G$1:G1,A$1:E$20)=0)),INDIRECT(TEXT(MIN(IF((A$1:E$20<>"")*(COUNTIF(G$1:G1,A$1:E$20)=0),ROW(A$1:E$20)*1000+COLUMN(A:E))),"r0c???"),),"")
|
5楼 一嘟噜钥匙 |
- =IF(AND(COUNTIF(G$1:G1,$A$1:$E$20)+($A$1:$E$20="")),"",INDIRECT(TEXT(MIN(IF((COUNTIF(G$1:G1,$A$1:$E$20)=0)*($A$1:$E$20<>""),ROW($1:$20)*10+COLUMN(A:E))),"r0c0"),))
|
6楼 piny |
- =IF(AND((A$1:E$20<>"")*(COUNTIF(G$1:G1,A$1:E$20)=0)=0),"",INDIRECT(TEXT(MIN(IF((A$1:E$20<>"")*(COUNTIF(G$1:G1,A$1:E$20)=0),ROW($1:$20)*100+COLUMN(A:E))),"!R0C00"),))
不過此公式無法識別文字型態與數字型態的數字 |
7楼 bluexuemei |
- =IF(ROW()>SUM(1/COUNTIF(A$1:E$20,A$1:E$20&"")),"",INDIRECT(TEXT(MIN(IF(COUNTIF(G$1:G1,A$1:E$20&""),4^8&2^8,ROW($1:$20)*1000+COLUMN(A:E))),"r0c000"),))
|
8楼 tyxh0916 |
- =IF(ROW(A1)>SUM(($A$1:$E$20<>"")/COUNTIF($A$1:$E$20,$A$1:$E$20)),"",INDIRECT(TEXT(MIN(IF(($A$1:$E$20<>"")*(COUNTIF($G$1:G1,$A$1:$E$20)=0),ROW($1:$20)*10+{1,2,3,4,5})),"r0c0"),))
|
9楼 魔魔 |
- =IF(AND(COUNTIF(G$1:G1,$A$1:$E$20)),"",INDEX($A$1:$E$21,MIN(IF((COUNTIF(G$1:G1,$A$1:$E$20)=0)*($A$1:$E$20<>""),ROW($1:$20))),RIGHT(MIN(IF((COUNTIF(G$1:G1,$A$1:$E$20)=0)*($A$1:$E$20<>""),ROW($1:$20)+COLUMN(A:E)%)))))
终于改成下面这样了- =IF(AND(COUNTIF(G$1:G1,$A$1:$E$20)),"",INDIRECT(TEXT(MIN(IF((COUNTIF(G$1:G1,$A$1:$E$20)=0)*($A$1:$E$20<>""),ROW($1:$20)*10+COLUMN(A:E))),"r0c0"),))
|
10楼 gouweicao78 |
- =INDIRECT(TEXT(MIN(IF((A$1:E$20<>"")*ISNA(MATCH("~"&A$1:E$20,G$1:G1,)),ROW($1:$20)/1%+COLUMN(A:E),99999)),"R0C00"),)&""
|
11楼 gouweicao78 |
哦,未考虑~~的情况。 看来,COUNTIF函数的问题,多加个判断解决吧。 |
12楼 CheryBTL |
注最后的防止为空时输出0没有好办法,只能偷懒了,呵呵,:123字符 =INDIRECT(TEXT(MIN(IF((COUNTIF(G$1:G1,A$1:E$20)=0)*(A$1:E$20<>""),ROW($1:$20)/1%+COLUMN(A:E),9999)),"[=9999]R21C1;R0C00"),)
如果非要一个公式完成,需要增加IF来判断MIN的返回值是否=9999时,在满足时返回""
把IF省略:119字符 =INDIRECT(TEXT(MIN(((COUNTIF(H$1:H1,A$1:E$20)>0)+(A$1:E$20=""))/1%%+ROW($1:$20)/1%+COLUMN(A:E)),"[>9999]R21C1;R0C00"),)
再增加IF判断:169字符 =IF(MIN(((COUNTIF(H$1:H1,A$1:E$20)>0)+(A$1:E$20=""))/1%%)>0,"",INDIRECT(TEXT(MIN(((COUNTIF(H$1:H1,A$1:E$20)>0)+(A$1:E$20=""))/1%%+ROW($1:$20)/1%+COLUMN(A:E)),"R0C00"),))
再次优化,省了8个字符,161: =IF(MIN((COUNTIF(H$1:H1,A$1:E$20)>0)+(A$1:E$20="")),"",INDIRECT(TEXT(MIN(((COUNTIF(H$1:H1,A$1:E$20)>0)+(A$1:E$20=""))/1%%+ROW($1:$20)/1%+COLUMN(A:E)),"R0C00"),))
区域提取不重复-CheryBTL.rar |
13楼 mathspirt |
学习高手答案 |
14楼 深蓝色的海洋 |
看看 |
15楼 huaerzi |
|
16楼 凉爽 |
- =IFERROR(INDIRECT(TEXT(MIN(IF((COUNTIF(G$1:G1,A$1:E$20)=0)*(A$1:E$20<>""),ROW($1:$20)*10+{1,2,3,4,5})),"R0C0"),),"")
|
17楼 梦想的风 |
昨晚多几分钟的准备,今天少几小时的麻烦。 |
18楼 qicpw |
好贴,值得收藏,大家都顶 |
19楼 humao |
这只是很普通的练习题了。 |
20楼 123joki |
velmi dobre forum |
21楼 wangg913 |
这个,我等开贴。 |