LOOKUP和FIND函数以及数组联用。如果表格字段里包含某一字符,则显示某一值

您所在的位置:网站首页 find函数数组 LOOKUP和FIND函数以及数组联用。如果表格字段里包含某一字符,则显示某一值

LOOKUP和FIND函数以及数组联用。如果表格字段里包含某一字符,则显示某一值

2022-05-20 08:33| 来源: 网络整理| 查看: 265

例如,表格A1里包含"高一",B1输出1,如果是"高二",则输出2,如果是"高三",则输出3,如果是中级,则5。

=IF(a1=("*高一*","*高二*","*高三*","*中级*"),"1","2","3","5")。excel是不认的。

正确的应该是=LOOKUP(,-FIND({"高一","高二","高三","中级"},A1),{1,2,3,5})

也可以=LOOKUP(1,1/FIND({"高一","高二","高三","中级"},A1),{1,2,3,5})

现在我们详细解释一下:

第一个式子

=LOOKUP(,-FIND({"高一","高二","高三","中级"},A1),{1,2,3,5})

其实是省略了逗号前的0,完整版应该是

=LOOKUP(0,-FIND({"高一","高二","高三","中级"},A1),{1,2,3,5})

将式子进行拆分,

内层一

FIND({"高一","高二","高三","中级"},B4)——返回的是数组{1,#VALUE!,#VALUE!,#VALUE!}

——其含义是"高一","高二","高三","中级"分别在B4单元格文本当中的位置,没有则返回错误值。所以呈现为四列数值。

内层二

lookup使用的是其模糊查询的功能,LOOKUP 函数是查找lookup_value,如果 LOOKUP 函数找不到 lookup_value,则该函数会与 lookup_vector 中小于 lookup_value 的最大值进行匹配

此处使用到的是向量形式,语法是:LOOKUP(lookup_value, lookup_vector, [result_vector])

此情景下的含义就是查找0在{1,#VALUE!,#VALUE!,#VALUE!}的位置,则返回相应数组位置的数值{1,2,3,5}。所以我们加上一个负号形成-FIND({"高一";"高二";"高三";"中级"},B4),也就是查找0在{-1,#VALUE!,#VALUE!,#VALUE!}的位置,因为没有0所以查找小于0的最大值-1。我们就返回数组{1,2,3,5}中的1。

LOOKUP(1,1/FIND({"高一","高二","高三","中级"},A1),{1,2,3,5})也就显而易见了,区别在于查找1在数组{0,#VALUE!,#VALUE!,#VALUE!}的位置,所以

LOOKUP(0,1/FIND({"高一","高二","高三","中级"},A1),{1,2,3,5})也可以。

lookup函数详情功能介绍——https://support.office.com/zh-cn/article/lookup-%E5%87%BD%E6%95%B0-446d94af-663b-451d-8251-369d5e3864cb

数组公式指南和示例——https://support.office.com/zh-cn/article/%E6%95%B0%E7%BB%84%E5%85%AC%E5%BC%8F%E6%8C%87%E5%8D%97%E5%92%8C%E7%A4%BA%E4%BE%8B-7d94a64e-3ff3-4686-9372-ecfd5caa57c7#ID0EAAFAAA=Office_2010_-_Office_2019



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3