不知道是不是又被审核,回复不见了。
公式中Rs作为阈值,可以修改,是匹配符合精度,范围为0-2,2代表完全匹配,公式中采用了分数形式。
第5行匹配了两个结果,是因为两个结果均有3个字匹配,符合程度75%。
- =LET(sA,B2:B5,sB,A2:A5,sC,B2:B5,Rs,2/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(sB,LAMBDA(y,fx(x,y)+fx(y,x))),Vb,TEXTJOIN(",",,FILTER(sB,(Va=MAX(Va))*(Va>=Rs))),IFERROR(Vb,0)))),Rc)
复制代码 |