EXCEL 函数 index+small+match+if+row组合疑问
作者&投稿:桐慧 (若有异议请与网页底部的电邮联系)
=IFERROR(INDEX('6.27库存表'!$B:$B,SMALL(IF('6.27库存表'!$G$4:$G$200>=90,ROW($4:$200)),ROW(A1))),""),数组公式,即必须Ctrl+Shift+Enter三键齐按结束公式编辑,会自动生成一对{ }。
公式出错原因:后面用SMALL提取的是符合要求的行号,再用INDEX函数时,必须引用整行,而不能仅引用区域,如INDEX(B:B,4)是返回B4,而INDEX(B4:B200,4)则是返回从B4开始的第四个即B7的数据,因为这里的4是行号而不是次序,所以引用整列。
公式中($A$3:$A$5&""B3)存在错误。
$A$3:$A$5&""返回的是文本格式,而B3为数字,两者不相等,因此无法排除,应该修改为($A$3:$A$5B3)才能适用于数字。
其实整个公式都可以修改为
=INDEX(A:A,SMALL(IF((MATCH(A$3:A$5,A$3:A$5,)=ROW($1:$3))*(A$3:A$5B$3),ROW($3:$5),4^8),ROW(A1)))&""
=INDEX(B:B,SMALL(IF(MATCH(B$4:B$1000,B$4:B$1000,)=ROW($4:$1000)-3,ROW($4:$1000),4^8),ROW(A1)))&""
公式中首先要保持所有的维度一致,保持引用区域的行绝对引用状态,然后如果首行与第一行相隔多少行,就减去多少行。
=INDEX($B:$B,SMALL(IF(MATCH($B$4:$B$1000&"",$B$4:$B$1000&"",0)=ROW($B$4:$B$1000)-3,ROW($B$4:$B$1000),4^8),ROW($B1)))&""
你的数组公式应用有几处错误,
1、行号列标都要绝对引用
2、后面的也要从第4行开始,ROW($B$4:$B$1000),你从第3行开始的
3、如果行号不是从第一行开始的,MATCH函数是从1开始返回值,要注意后面减去相应的值
公式修改为=INDEX($B:$B,SMALL(IF(MATCH($B$4:$B$1000&"",$B$4:$B$1000&"",)=ROW($1:$997),ROW($4:$1000),4^8),ROW(A1)))&""
按三键CTRL+SHIFT+ENTER结束公式输入
下拉填充
=INDEX($B:$B,SMALL(IF(MATCH($B$4:$B$1000&"",$B$4:$B$1000&"",)=ROW($4:$1000)-3,ROW($4:$1000),4^8),ROW(B1)))&""
韦蓝吉加: index函数INDEX(区域,行,列)公式解释:假如D35单元格为空,则结果为空,否则INDEX(换算表!$B$4:$M$404 区域,第 X行,第Y列)X行:MATCH为查找,查找D35数据在 换算表!$A$4:$A$404 中为第几个,假如结果为 5Y列:MATCH为查找,查找D36数据在 换算表!$B$3:$M$3 中为第几个,假如结果为 3 则 INDEX(换算表!$B$4:$M$404,5,3) 结果为 D8 单元格的值
合水县13788477738: EXCEL里函数INDEX 、SMALL、RANK、ROW各是什么意思 - ?
韦蓝吉加: 公式的含意:当B列中数字类型数据个数大于当前行号减去4时,按照B4到B1000从小到大,的次序,取A列数据,否则为空. COUNT()参数中数字数据的个数; INDEX()返回指定单元格或单元格数组的值,此例:根据SMALL()得到顺序,依次取A列的数据; SMALL(数组,k)返回数据集中第 k 个最小值; RANK() 得到排位的数字; ROW()得到行号.
合水县13788477738: excel index函数怎么用 - ?
韦蓝吉加: 语法INDEX(array,row_num,column_num) 比如公式=INDEX(A1:D10,5,3),结果返回A1至D10单元格区域中第5行和第3列交叉处的单元格(即C5)的内容. 注:公式中行序号参数(row_num)和列序号参数(column_num)是相对于所引用的单元格区域而言的,并不是Excel工作表中的行或列序号.
合水县13788477738: excel函数index的用法 - ?
韦蓝吉加: 因为你的数据不可能是从A1到A10000行都是有的,比如,你A1到A800是有数据的,其它后面有些单元格是空格的.数组公式应用时,如果没加“&""”就会出错,因为MATCH函数必须对这一万行都进行处理呀,如果没加,空单元格,它是要以零来处理呢,还是以空格来处理呢,你又要它精确匹配,这时,它就会犯混了,因为空单元格,即是空值,又是零值.不知道我说得你明白不. 即是这样,如果,你A1到A10000行,都是有数据的,那你就可以不用加这个了 “&""”,这时,不加这个,也不会错误.它就是起这个作用.
合水县13788477738: 我想问一下在Excel中,index这个函数是怎么用的,谢了!?
韦蓝吉加: 说起来比较复杂,INDEX主要用于在给定的单元格区域中返回特定行列交叉处单元格的值或引用. 此函数的格式根据应用范围有两种使用形式: 1、=INDEX(指定区域,行序号,列序号) 返回指定区域,指定行、列中的数值 如:=INDEX(A5:D10,2,3)得到的结果就是A5到D10区域中第2行第3列的数值,即C6单元格中的数值 2、=INDEX(数组,行序号,列序号) 返回指定数组中指定行、列中的数值 如:=INDEX({5,10,15,20},0,2)得到的结果就是10 试试看吧?祝你好运!
合水县13788477738: excel里index函数解读 - ?
韦蓝吉加: Excel中按F1,输入index,搜索,有详细解释,应该比任何人都讲得清楚.C9就是给出index的参数,1~5对应列就是月份,其绝对引用,是为了可以方便拖动或复制到相邻单元格(C11~C14).
合水县13788477738: excel查找函数INDEX?
韦蓝吉加: =INDEX(A:A,SMALL(IF($C$1:$C$100="张",ROW($1:$100),4^8),ROW(1:1)))&"" 数组公式,按Ctrl+Shift+Enter确定. 向右再向下拉. 假如在F1输入姓,则公式为: =INDEX(A:A,SMALL(IF($C$1:$C$100=$F$1,ROW($1:$100),4^8),ROW(1:1)))&"" 数组公式,按Ctrl+Shift+Enter确定. 向右再向下拉.
合水县13788477738: Excel 中index 函数 - ?
韦蓝吉加: 这个是 和 IF 的嵌套:INDEX(D11:D710,$C$2) 含义:返回 D11:D710中的 $C$2 行的值,如过$C$2的值是2,那就是返回D12的值...加上IF()判断以后:如果返回的值是0,就显示 "" (什么都不显示);否则就显示返回值
合水县13788477738: excel的常见索引函数 - ?
韦蓝吉加: INDEX返回列表或数组中的元素值,此元素由行序号和列序号的索引值给定.INDEX 函数有两种语法形式:数组和引用.数组形式通常返回数值或数值数组,引用形式通常返回引用.当函数 INDEX 的第一个参数为数组常数时,使用数组形式.
合水县13788477738: excel index函数表达方式 - ?
韦蓝吉加: $A13+$M$13-1 A13单元格数值加M13单元格数值再加一. 根据求和结果N,返回清单表的E5:E100中第N个数据. 公式向下复制时,因为$A13的行引用为相对引用,所以会随着公式所在行变化而变化.其它行引用都是绝对引用,在公式复制过程中不会变化. 具体解释还可以看一下index函数的帮助 对补充问题的回复:你确定你描述的是实际情况?按照你说的A13,M13的情况,该公式会返回错误值#VALUE!除非A13(或M13)的显示值和实际值通过自定义单元格格式发生了变化.单击A13可以在编辑栏看到它的实际值.