本帖最后由 edwin11891 于 2025-2-3 19:46 编辑
你这涉及到简称查全称、或者二者互查的问题,没有百分百的正确识别率。
下面公式中的Rs,是人为设置的识别比率,范围值为0~2,为便于理解设置为比例形式。你可以通过调整Rs值,看到识别正确效果。Rs越大,找到的数量越小,正确率越高;反之亦反。
可以把最后输出的Re改为Rc,看到单纯的名称对比识别的效果。
- =LET(sA,E3:E37,sB,A3:A30,sC,B3:B30,Rs,14/10,fy,LAMBDA(y,TOCOL(REGEXP(y,"."))),fx,LAMBDA(Pa,Pb,LET(Ta,fy(Pa),Tb,fy(Pb),Ra,TOCOL(XLOOKUP(Ta,Tb,SEQUENCE(ROWS(Tb)),1/0,),3),Rb,MAP(Ra,SEQUENCE(ROWS(Ra)),LAMBDA(x,y,IF(y=1,1,LET(Lm,TAKE(Ra,y-1),IF(x>MAX(Lm),1,0))))),SUM(IFERROR(Rb,0))/LEN(Pa))),Rc,MAP(sA,LAMBDA(x,LET(Va,MAP(TAKE(sB,,1),LAMBDA(y,fx(x,y)+fx(y,x))),Vb,FILTER(sB,(Va=MAX(Va))*(Va>=Rs)),IFERROR(Vb,"")))),Rd,XLOOKUP(Rc,sB,sC,0),Re,HSTACK(sA,Rd),Re)
复制代码
|