简全称混用

问题:将表2的数据2填入表1数据2中,表1数据1为简称,表2数据1为全称

函数公式解决:

=SUMIF(D:D,@SORTBY(D$2:D$9,MMULT(COUNTIF(A2,"*"&MID(D$2:D$9,SEQUENCE(,9),1)&"*")*(SEQUENCE(,9)<=LEN(D$2:D$9)),ROW(1:9)^0),-1),E:E)

Sumif(代替Xlookup的查找写法),查找满条件是A2的,D列中对应E列的结果

Mid部分将D2:D9中内容按每个单元格一个字符进行拆分,假设D列中字符不超过9个

Countif用于统计表2数据1中每一个字在A2中是否存在,存在为1,不存在为0

当Mid的结果为空文本时,也会返回1,所以用Sequence9列数据和D2:D9每个单元格中长度进行比较,字符数以内的为True,否则为False,再与CountIf的结果相乘

MMult用于对上述结果横行每行进行求和

SortBy将D2:D9的数据按上述公式结果从大到小排列

@为数组的隐式交集,此处用于提取数组的第一个值

但是!

当同字符个数相同时,返回的结果是第一个出现的。

所以简全称查找函数公式并无完美方案。

另,以上公式在Excel中可以简化如下:

=SUMIF(D:D,@SORTBY(D$2:D$9,BYROW(LET(a,MID(D$2:D$9,SEQUENCE(,9),1),COUNTIF(A2,"*"&a&"*")*(a<>"")),SUM),-1),E:E)

事先列出简全称对照表:

=SUMIF(D:D,XLOOKUP(A2,H:H,G:G),E:E)

输入前的事先控制:

选取需要输入名称的单元格》数据》下拉列表》从单元格选择下拉选项》确定 

相关视频:https://www.douyin.com/video/7335427424982764835

posted @ 2024-02-04 14:50  熬肥妖  阅读(35)  评论(1编辑  收藏  举报