excel里面INDEX($A:$A,SMALL(IF($Ap$1:$Ap$1000=1,ROW($1:$1000),10^8),ROW(E1)),什么意思?
3个回答
2013-01-10 · 知道合伙人软件行家
关注
展开全部
IF($Ap$1:$Ap$1000=1,ROW($1:$1000),10^8)
如果AP1:AP1000区域中的数值等于1,则返回对应行号,否则返回10的8次方
SMALL(IF($Ap$1:$Ap$1000=1,ROW($1:$1000),10^8),ROW(E1)
在上个公式中取的行号中,取第1最小值 row(E1)表示E1单元格的行号为1
INDEX($A:$A,SMALL(IF($Ap$1:$Ap$1000=1,ROW($1:$1000),10^8),ROW(E1))
根据上式返回的第1最小值,返回A列对应行号中的值
因为是数组公式,需要按SHIFT+CTRL+ENTER结束
如果需要将公式讲得更加详细,需要描述很多.
如果AP1:AP1000区域中的数值等于1,则返回对应行号,否则返回10的8次方
SMALL(IF($Ap$1:$Ap$1000=1,ROW($1:$1000),10^8),ROW(E1)
在上个公式中取的行号中,取第1最小值 row(E1)表示E1单元格的行号为1
INDEX($A:$A,SMALL(IF($Ap$1:$Ap$1000=1,ROW($1:$1000),10^8),ROW(E1))
根据上式返回的第1最小值,返回A列对应行号中的值
因为是数组公式,需要按SHIFT+CTRL+ENTER结束
如果需要将公式讲得更加详细,需要描述很多.
更多追问追答
追问
这个我明白了,这个是一个排序后重新排列的过程,想达到的效果是
A C
399 2
299 3
444 1
需要达到E单元格显示如下
E
444
399
299
也就是说,在E1单元格写入公式:{INDEX($A:$A,SMALL(IF($c$1:$c$1000=1,ROW($1:$1000),10^8),ROW(E1))}
有没有更好的方法?
追答
这个公式不是重新排列.
展开全部
if:如果AP列1到1000行都是1,返回1到1000行的行号,否则为10的8次方。
row:返回E1的行号,结果就是1
small:计算数据组(if的计算结果)中第几个最小值。这里是row的计算结果为1,也就是返回第1个最小值。
index:返回A列第几行的数值,这个几就是small的计算结果。
row:返回E1的行号,结果就是1
small:计算数据组(if的计算结果)中第几个最小值。这里是row的计算结果为1,也就是返回第1个最小值。
index:返回A列第几行的数值,这个几就是small的计算结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
与我之前回答的一题是同类型的公式,你先参考一下,不明白再追问
http://zhidao.baidu.com/question/513863020.html?oldq=1
http://zhidao.baidu.com/question/513863020.html?oldq=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询