excel函数中使用index与match函数进行引用的讨论

目的:
根据“最高产品指数”与产品“分指数”的数据来定位该产品名称,并将产品名称输入到“最高产品指数名称”列中。

实现过程:
{=IF(P6>50,INDEX($B$2:$O$2, MATCH(P6,IF($B$2:$O$2="",B6:O6),0)-1),"--")}
该数组函数可实现在指定区域内查找符合“最高产品指数”的数据,并当产品产量或重量与产品分指数相同时,只定位到“分指数”指定的产品名称上。

探讨:
当两个及两个以上产品的分指数同为“最高产品指数”,且有产品产品或重量与“最高产品指数”相同时,如何实现只判断产品“分指数”与“最高产品指数”相符的产品名称,并将两个及两个以上产品名称同时输入到“最高产品指数名称”这列中(如上图)。

Q6公式:

=IF(P6>50,INDEX($2:$2,SMALL(IF(IF(B$2:O$2="",B6:O6,9^9)=P6,COLUMN(B2:O2)-1,2^4),COLUMN(A1)))&INDEX($2:$2,SMALL(IF(IF(B$2:O$2="",B6:O6,9^9)=P6,COLUMN(B2:O2)-1,2^4),COLUMN(B1)))&INDEX($2:$2,SMALL(IF(IF(B$2:O$2="",B6:O6,9^9)=P6,COLUMN(B2:O2)-1,2^4),COLUMN(C1))),"--")

这个只能实现三个及三个以内相同的,如果有更多种可能,多复制几个&INDEX($2:$2,SMALL(IF(IF(B$2:O$2="",B6:O6,9^9)=P6,COLUMN(B2:O2)-1,2^4),COLUMN(A1),最后一个A1改成D1,E1,F1,G1..追问

果然强!不过这里有点小小的问题

我将&INDEX($2:$2,SMALL(IF(IF(B$2:O$2="",B6:O6,9^9)=P6,COLUMN(B2:O2)-1,2^4),COLUMN(C1)))删除后,就只出现了DG,也就是只识别了2个符合条件的值。

 

由于我查找的数据区域固化在B-O列之间,如何排除其他列的影响?

追答

要下班了, 没时间改,在前面加个条件吧.
=SUBSTITUTE(IF(P6>50,INDEX($2:$2,SMALL(IF(IF(B$2:O$2="",B6:O6,9^9)=P6,COLUMN(B2:O2)-1,2^4),COLUMN(A1)))&INDEX($2:$2,SMALL(IF(IF(B$2:O$2="",B6:O6,9^9)=P6,COLUMN(B2:O2)-1,2^4),COLUMN(B1)))&INDEX($2:$2,SMALL(IF(IF(B$2:O$2="",B6:O6,9^9)=P6,COLUMN(B2:O2)-1,2^4),COLUMN(C1))),"--"),"最高产品指数",)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-20
我也遇到过这样的问题,还没解决,一起来讨论吧,采用多条件横列和纵列来定位应该要准一些(因为你的条件只有最高,我这样说就是需要对表格进行更改,有点麻烦),希望能给你带来一些启发!!!追问

看来是难倒高手了,还是我提的问题太变态了,哈哈

追答

查找的东西都是数据啊,如果要间隔进行查找,就要间隔选择查找区间,那个产量就不参与被查找的范围。

相似回答