excel实现数组比较完两列的值之后,符合条件的返回第三列?

各位excel大神。如图所示,设想需要在F12:G12内输入一个产品尺寸(长和宽)然后在H12内返回合适的尺寸最小的包装型号,如何通过函数来实现?每种包装的尺寸固定。补充:1.设想的产品长宽,和包装尺寸并不是一致的。有可能是400*300.要涉及两组数据的匹配。假定产品长恒定大于等于宽。

效果举例:
若产品尺寸输入460*480,包装型号会输出C包装
若产品尺寸输入1000*900.包装输出H
若产品尺寸输入1300*1200,包装输出J

1、基本思路是  将长和宽组合成一个辅助查询条件

2、将长和宽两列 组合一个辅助的查询区域

3、用match函数 查找相应的型号所在行

4、用index函数 找到返回相应的型号

5、用iferror 来避开 无效数据

6、输入时 记得按ctrl+shift+回车,因为用的是数组查询。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-01-15

=INDEX(C:C,MAX(SMALL(IF($A$3:$A$12<=F12,ROW($A$3:$A$12),65536),1),SMALL(IF($B$3:$B$12>=G12,ROW($A$3:$A$12),65536),1)))

数组公式,需要同时按CTRL SHIFT 回车键

第2个回答  2021-01-14

H12单元格输入公式=VLOOKUP(F12&G12,IF({1,0},A$3:A$100&B$3:B$100,D$3:D$100),2,0)

数组公式,需按Ctrl+Shift+Enter三键结束公式,使公式前后产生大括号{}后才能正确运算。 如图:

追问

谢谢解答,但是设想的产品长宽并不一定是和包装一致的,使用vlookup的精确查找应该达不到设想效果。

追答

你得举例说明需达到的效果,公式才好写。

本回答被网友采纳
第3个回答  2021-01-14

=INDEX(D1:D3,SMALL(IF((A1:A3=F1)*(B1:B3=G1),ROW(D1:D3),4^8),1),1)

数组函数Ctrl+shift+enter三键结束

第4个回答  2021-01-15

H12==INDEX(D3:D12,MATCH(1,(A3:A12>=F12)*(B3:B12>=G12),0))

本回答被提问者采纳