Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1826|回复: 6

[已解决]关于INDEX函数 的问题

[复制链接]
发表于 2010-11-1 21:44 | 显示全部楼层 |阅读模式

{=INDEX(收取货款!B:B,MAX(3,(收取货款!$A$3:$A$1000=A71)*(收取货款!$D$3:$D$1000=$A$4)*(ROW($3:$1000))))&""}

这个函数,哪里有问题呢?

应该是如果没有满足  (收取货款!$A$3:$A$1000=A71)*(收取货款!$D$3:$D$1000=$A$4)  的话,就返回空白,但是现在变成返回  收取货款!B:B,MAX(3

[此贴子已经被作者于2010-11-1 21:58:30编辑过]
最佳答案
2010-11-1 22:07

如果没有符合条件的,MAX返回3

你可以用下面的公式来解决这个问题。

=INDEX(收取货款!B:B,min(if((收取货款!$A$3:$A$1000=A71)*(收取货款!$D$3:$D$1000=$A$4),ROW($3:$1000),65536)))&""

 楼主| 发表于 2010-11-1 21:46 | 显示全部楼层

[em09]
[此贴子已经被作者于2010-11-1 21:59:02编辑过]
回复

使用道具 举报

发表于 2010-11-1 21:50 | 显示全部楼层
回复

使用道具 举报

发表于 2010-11-1 22:07 | 显示全部楼层    本楼为最佳答案   

如果没有符合条件的,MAX返回3

你可以用下面的公式来解决这个问题。

=INDEX(收取货款!B:B,min(if((收取货款!$A$3:$A$1000=A71)*(收取货款!$D$3:$D$1000=$A$4),ROW($3:$1000),65536)))&""

回复

使用道具 举报

 楼主| 发表于 2010-11-1 22:44 | 显示全部楼层

果然可以,不知道是不是可以解释一下?
回复

使用道具 举报

发表于 2010-11-2 08:44 | 显示全部楼层

if((收取货款!$A$3:$A$1000=A71)*(收取货款!$D$3:$D$1000=$A$4),ROW($3:$1000),65536)

如果前2个条件都满足TRUE*TRUE=1,则返回行号,否则返回65536。

PS:逻辑值也可以进行四则运算,运算结果是数值。数值在作为逻辑值时0代表FASLE,非0值代表TRUE

从这组返回的行号或65536中用min找最小值,如果有符合条件的,则因该行号小于65536而得到它,否则返回65536.

如果没有符合条件的,则INDEX返回引用B65536,而B65536通常是空单元格

=B65536&""

的结果就是""

[此贴子已经被作者于2010-11-2 8:45:05编辑过]
回复

使用道具 举报

 楼主| 发表于 2010-11-2 13:36 | 显示全部楼层

[em01][em01]谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-1 22:54 , Processed in 1.455399 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表