INDEX+SMALL+IF组合函数疑问?

已知有C列有两组相同"姓名",但公式在K4打出来以后"身份证号"能显示但往右拖会变成G列"性别",但是往右拖我想变成H列也就是"合同工资",请大神教教我吧, 并解释一下吧,我不太懂.

K4=INDEX(INDIRECT(ADDRESS(1,MATCH(K$3,$1:$1,))):INDIRECT(ADDRESS(1000,MATCH(K$3,$1:$1,))),SMALL(IF($C$1:$C$1000=$J4,ROW($A$1:$A$1000),65536),ROW(A1)))

数组公式,同时按CTRL  SHIFT 回车键,然后 右拉,下拉

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-11

K4 公式:

按Ctrl+Shift+Enter 结束公式 ,右拉 下拉

=INDEX($A:$H,SMALL(IF($C$1:$C$1000=$J4,ROW($1:$1000),4^8),COUNTIF($J$4:$J4,$J4)),MATCH(K$3,$A$1:$H$1,0))

第2个回答  2020-12-11
在K4单元格输入数组公式,然后向右填充时,默认对F列(身份证号码列)右侧的G列筛选出满足条件的性别。
如果需要得到隔一列的合同工资,仅需修改数组公式的第一参数G:G为H:H,即可,如
=INDEX(H:H,SMALL(IF……))追问

那就是实现不了像vlookup+match函数那样么?

追答

如果有多个隔列取数的要求,那么可结合MATCH函数来解决。
在K4输入数组公式,按Ctrl+Shift+Enter组合键结束,然后向右向下填充公式
=INDEX(OFFSET($A:$A,,MATCH(K$3,$A$1:$H$1,0)-1),SMALL(IF(……))
根据结果区域的标题在数据区域的列,自动修正取数的列。

第3个回答  2020-12-11
原表里面,“身份证”后面一列是“性别”,所有你往右拖复制公式时默认是加一列的,所以就显示“性别”,你可以拖动两列以后把显示“合同工资"的那列的公式进入编辑状态后复制再粘贴到你需要的位置。实际上就是index函数取数的列改成H列就可以了。本回答被网友采纳
第4个回答  2020-12-11
好久没有看到这么规整的表格了!
把,index (G2:G21,……)
换成数据H列对应你要取值的列就可以了。
Index (一维数组,行,[可忽略参数])
Index (多维数组,行,列)
相似回答
大家正在搜