[算表] Excel公式请益

楼主: abc9gad (乡民爱发呆)   2019-03-21 17:08:17
软件:excel
版本:2010
公式:可从部分名称内找出完整名称是什么
F2={IFERROR(OFFSET($A$1,SMALL(IF(IFERROR(FIND($E2,$A$2:$A$68),0)>0,
ROW($A$2:$A$68),""),ROW($1:$1))-1,0),"")}
A栏为我要搜寻的完整名称 E栏为部分名称,要从E栏的部分名称找出他在A栏的完整名称
是哪个
ex A栏:中华人民共和国 E栏:共和,F栏输入以上公式,
即可找到他是中华人民共和国
想请教的是SMALL内的公式逻辑,因为拆解里面的公式 都跑不出资料出来
还有后面ROW(1:1)的用意是什么 感谢
作者: soyoso (我是耀宗)   2019-03-21 17:12:00
先说公式一定不会是原文内的={IFERROR(...)}大括号是按下组合键ctrl+shift+enter所产生的,且产生的地方是{=IFERROR(...)}改以index且不减1 https://i.imgur.com/ZGwqdOh.jpg原本用于offset cols的,0也可删除公式row(1:1)为回传第1列的列号,就是1但用$列绝对参照,也就是下拉拖曳都是会是回传1因此可改为1,结果是一致的small的逻辑为find储存格e2的值于a2:a68,有搜寻到的话就会回传>=1的数值,判断当大于0时,则回传row(a2:a68)列号这里有元素对应,当a5是符合时,第4个元素就会是列号5iferror将find未搜寻到回传错误值改为0值,判断上未大于0就都回传为假的空字串""=find(e2,a2:a68)于储存格内,所回传的结果是搜寻e2于a2也就是说如果a2没有找到就会回传错误值但如果a2就有符合的话,就会回传>=1的数值要呈现的是列号,当为真true就是在该元素内写入对应的列号应该是这么说find(e2,a2:a68),也会去搜寻除了a2外的a3:a68的部分,但find会回传的是单一元素的结果,也就是搜寻于a2所回传的结果,加上其他函数如small,则会在这些元素内回传指定要的值可以说这些元素在find时就存在了,再于单独使用find时所回传的就是单一元素(第一笔)的结果,配合其他函数的变化,可取得符合所需要的元素结果补充一下,第一笔方面为测试公式find(e2,a2:a68)于第二列,为find(e2,a2),当于第三列时会是find(e2,a3);但如果公式键于第二列而公式是find(e2,a3:a68),就算a3是有符合也会回传错误值,这应该是当搜寻范围为复数时,会找对应的储存格a2,但a2并不在a3:a68内所以产生错误值,因此当搜寻范围为复数时,也会依公式所在的列来找出对应的储存格
作者: ahwii (ahwii)   2019-03-22 23:51:00
Find()最好不要单独取出,可以标选,然后按F9显示阵列值

Links booklink

Contact Us: admin [ a t ] ucptt.com