关于EXCEL函数index+small组合使用的问题

原本函数如下显示正常=INDEX(销售明细!D$2:D$1000,SMALL(IF(销售明细!$E$2:$E$1000="结清货款",ROW($1:$999),999),... 原本函数如下显示正常
=INDEX(销售明细!D$2:D$1000,SMALL(IF(销售明细!$E$2:$E$1000="结清货款",ROW($1:$999),999),ROW(C1)))&""
后来在if语句中增加了or函数更改后如下,显示的结果变成了 销售明细表D行的全部数值。。
=INDEX(销售明细!E$2:E$1000,SMALL(IF(OR(销售明细!$E$2:$E$1000="结清货款",销售明细!$E$2:$E$1000="收取尾款"),ROW($1:$999),999),ROW(H2)))&""
好吧。。。求教高手们我这个函数应该怎么改才能达到我想要的效果
展开
 我来答
小矇
2013-06-20 · TA获得超过1.6万个赞
知道大有可为答主
回答量:8342
采纳率:75%
帮助的人:3253万
展开全部
=INDEX(销售明细!D$2:D$1000,SMALL(IF((销售明细!$E$2:$E$1000="结清货款")+(销售明细!$E$2:$E$1000="收取尾款"),ROW($1:$999),999),ROW(C1)))&""
更多追问追答
追问

这个怎么没法返回第一行的值?

small函数部分得出的值如下

追答
你最终要返回的是D列上的数据还是E列上的数据呢?你两个公式中INDEX引用的列都不同的,而且最后部分一个是 ROW(C1) 另一个却是 ROW(H2) 有点不理解了。如果方便可以将表格发过来的,这个没什么难度的问题。
sddljiang@163.com
wu_zhenjiu
科技发烧友

2013-06-20 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:3.1万
采纳率:79%
帮助的人:1.1亿
展开全部
1、原公式中有个小错误,后面的999应该是1000,当然这个错误与下面的问题没有关系:
=INDEX(销售明细!D$2:D$1000,SMALL(IF(销售明细!$E$2:$E$1000="结清货款",ROW($1:$999),1000),ROW(C1)))&""

2、你的问题出在,OR函数中,OR的结果是单一值,不是数组,因此得不到正确结果,修改一下公式:
=INDEX(销售明细!E$2:E$1000,SMALL(IF((销售明细!$E$2:$E$1000="结清货款")+(销售明细!$E$2:$E$1000="收取尾款"),ROW($1:$999),1000),ROW(H2)))&""
按三键完成公式。
更多追问追答
追问

更改以后无法获取第一行的值,具体看图

另外,999是因为如果对应的区域为控制的话不会显示错误。。。

追答
1、这个999改为1000(或者大于999的任一数)的目的是能够正确的得到E1000的值。
2、不清楚你的表格具体是什么数据,如果要得到E列的值,并且有重复,这个公式没有错误。
我424527870,找我。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式