excel中index与match函数组合时产生的问题
如上图:通过max函数算出各产品分指数中的最大值,再利用函数判定分指数大于50时,定位到最大分指数的产品名称,使用函数=IF(P6>50,INDEX($B$2:$N$2,...
如上图:通过max函数算出各产品分指数中的最大值,再利用函数判定分指数大于50时,定位到最大分指数的产品名称,使用函数=IF(P6>50,INDEX($B$2:$N$2, MATCH(P6, B6:O6, 0)-1),"--")。在数据区域中没有出现相同数值时能正确得到“最高产品指数名称”
问题出来了,当B6:P6这个数据区域中重复出现了2个最大数与判定条件的最高产品指数相同,一个是E产品产量,一个是G产品分指数(如图中绿色单元格所示),最终“最高产品指数名称”显示为“0”,既不是E,也不是G,怎么解
很多网友会质疑为什么会在Match函数中加上个-1,那是因为表格第2行中产品名称是2个单元格合并后形成的,如果我不用合并单元格,且在每个单元格上都写上产品名称,那这个-1可以不用。
现在出现0值是因为match引用的数据区域是B6:P6,而不能单独选择产品分指数那列,导致了当产品数量与分指数一样(且产品数量在分指数相同时产品数量在前),用match函数默认是先找到第一个符合条件的数,这个时候match中的-1就产生了副作用,会定位到上一个产品的分指数那一列的产品名称的第二个单元格(已经被合并掉了),所以才会产生0值
=========================================================================
感谢大家的回答
其实我最终要实现的是找到各产品的分指数中最大值,并定位到该产品的名称上,然后显示在Q列,不管用什么函数都行。
再次感谢大家!!!!
========================================================================= 展开
问题出来了,当B6:P6这个数据区域中重复出现了2个最大数与判定条件的最高产品指数相同,一个是E产品产量,一个是G产品分指数(如图中绿色单元格所示),最终“最高产品指数名称”显示为“0”,既不是E,也不是G,怎么解
很多网友会质疑为什么会在Match函数中加上个-1,那是因为表格第2行中产品名称是2个单元格合并后形成的,如果我不用合并单元格,且在每个单元格上都写上产品名称,那这个-1可以不用。
现在出现0值是因为match引用的数据区域是B6:P6,而不能单独选择产品分指数那列,导致了当产品数量与分指数一样(且产品数量在分指数相同时产品数量在前),用match函数默认是先找到第一个符合条件的数,这个时候match中的-1就产生了副作用,会定位到上一个产品的分指数那一列的产品名称的第二个单元格(已经被合并掉了),所以才会产生0值
=========================================================================
感谢大家的回答
其实我最终要实现的是找到各产品的分指数中最大值,并定位到该产品的名称上,然后显示在Q列,不管用什么函数都行。
再次感谢大家!!!!
========================================================================= 展开
3个回答
展开全部
MATCH(P6, B6:O6, 0)-1
中的-1删除,变成
=IF(P6>50,INDEX($B$2:$N$2, MATCH(P6, B6:O6, 0)),"--")
试试
中的-1删除,变成
=IF(P6>50,INDEX($B$2:$N$2, MATCH(P6, B6:O6, 0)),"--")
试试
追问
请看图片中的第2行,产品名称是2个单元格合并的,而Excel函数中合并单元格后的内容定位为最左边那个,自然要在match中-1,不然就会报错
追答
你说的对,合并单元格的确定位在左边那个。
那么这样,选中公式所在单元格,用鼠标左键拖黑公式的部分,比如是
MATCH(P6, B6:O6, 0)-1
按下F9,查看这部分的结果,再按CTRL+Z返回,再拖黑其它部分,再F9,就能逐步分析,找到问题到底出在哪里了。
补充
可以加一个IF判断一下,改为
MATCH(P6,IF(B2:O2="",B6:O6), 0)-1
整个公式为
=IF(P6>50,INDEX($B$2:$N$2, MATCH(P6,IF(B2:O2="",B6:O6), 0)-1),"--")
同时按下CTRL+SHIFT+回车,输入数组公式。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MATCH函数为什么要减1,不减1就可以了。
更多追问追答
追问
请看图片中的第2行,产品名称是2个单元格合并的,而Excel函数中合并单元格后的内容定位为最左边那个,自然要在match中-1,不然就会报错
追答
J28是第一个最大值,处在B2:P2的第9位,而INDEX(B2:N2)的第几位正好是J2(E值),你将MATCH-1后就变成第8位,对应的是I2值,正好是空值。
将$B$28:$O$28改为,if(mod(column($B$28:$O$28),2)=1,$B$28:$O$28,0)就可以了,目的是将产量的值全部变成0,那么就不会影响到分指数的值比较了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询