作业帮 > 综合 > 作业

=INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$D$2:$D$500="合约",ROW($A$2:

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 00:22:47
=INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$D$2:$D$500="合约",ROW($A$2:$A$500),4^8),ROW(A1)))&""是什么意思
Excel公式 =INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$D$2:$D$500="合约",ROW($A$2:$A$500),4^8),ROW(A1)))&""
这是一个用来排序取值的公式.
其中意思分别为:
=INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$D$2:$D$500="合约",ROW($A$2:$A$500),4^8),ROW(A1)))&""
1、INDEX函数取值的范围在Sheet1的A列中取,取值的依据为
SMALL(IF(Sheet1!$D$2:$D$500="合约",ROW($A$2:$A$500),4^8),ROW(A1))
2、SMALL函数的效果是取IF(Sheet1!$D$2:$D$500="合约",ROW($A$2:$A$500),4^8)得出的一组数据中的第 ROW(A1) 小的值 (使用ROW(A1) 而不是1的作用是当公式向下拉的时候,会依次变成ROW(B1)、ROW(c1)...也就分别是取第2、3、4...小的数据了.)
3、IF(Sheet1!$D$2:$D$500="合约",ROW($A$2:$A$500),4^8)的效果是当Sheet1的$D$2到$D$500单元格的内容为“合约”时 返回该行的行号,当$D$2到$D$500单元格的内容为其他项目时,数据为4的8次方(这里主要是为了装X才这样写,实际上,只要是大于500的数字即可),公式中单元格前的$是表示绝对引用,可以避免公式往下拖拽时变化,这样配合small函数就可以按顺序取出其中对应单元格内容为“合同”的单元格位置;
4、最后那个 &"" 我实在是孤陋寡闻,因为实在看不出有什么效果,如果一定要的话,只能说相当于可以把数字格式的数字变化为 文本格式.
公式的效果就是当Sheet1的$D$2到$D$500单元格的内容为“合约”时,取对应的A列单元格数据.( 不过不知道是公式写错了,还是表格比较特殊,比如D2内容是“合约”,结果不是取A2的值,而是取A1的数据,感觉怪怪的)