【函数应用】相同条件下的信息提取 #菁培函高班PK

现有宿舍安排表一份位于A1:D19区域内,由于学期结束后宿舍内各同学有调寝需要,现有一下需求需要使用函数完成:

  1. 将需要调寝的该同学所在宿舍的全部同学提取并放置于F3:H16内

  1. 需使用函数完成且不能存在辅助列。

  1. 不同宿舍的同学可能存在重名的情况,非同一个人。

  1. 示例结果已给出,位于K3:M16区域。

相关案例完整文件:

【金山文档】 菁培函高版PK

https://kdocs.cn/l/ct1CAmQAjCIJ

广西
浏览 555
收藏
6
分享
6 +1
4
+1
全部评论 4
 
辛伟兴
我也来说一下我的想法吧~ 函数公式 =FILTER(A2:C19,COUNTIFS($A:$A,$A$2:$A$19,$D:$D,"是"))【需要三键回车】 内层函数的思路与俊超的思路是一样的,一开始想着需要把没有需要调寝的宿舍的行都置为0,COUNTIF刚好可以满足要求,于是再进行FILTER的筛选即可完成。 缺点是在没有动态数组的情况下多余的行会出现NA的错误。
· 广西
1
回复
尹俊超
尹俊超

创作者俱乐部成员

原来公式可以这么短
· 上海
回复
 
尹俊超
尹俊超

创作者俱乐部成员

菁培函高班第二组前来应战 函数公式:=IFERROR(INDEX(A:A,SMALL(IF(COUNTIFS($A:$A,$A$2:$A$19,$D:$D,"是"),ROW($2:$19)),ROW(A1))),"") 思路:1.首先通过COUNTIFS函数进行双条件判断出符合条件的数量 2.COUNTIFS函数外嵌套IF函数和ROW函数返回满足条件数据所在行 3.使用SMALL函数取数组的最小值(在INDEX中体现为第一个宿舍号的所在行) 4.最后通过INDEX函数来取值 5.为增强公式的通用性以及美观故在最外层嵌套IFERROR函数将错误值显示为空。 以上就是我对本题的解法见解,如有不足之处,还望伟兴指正
· 上海
1
回复
wps新路
wps新路

WPS函数专家

点赞,我想复杂了
· 重庆
1
回复
 
wps新路
wps新路

WPS函数专家

想了3个,都好复杂, =IFERROR(INDEX(FILTER($A$2:$D$19,IFERROR(MATCH($A$2:$A$19,FILTER($A$2:$A$19,$D$2:$D$19="是"),0),0)),ROW(A1),COLUMN(A1)),"") =IFERROR(INDEX(FILTER($A$2:$D$19,IFERROR(MATCH($A$2:$A$19,UNIQUE(FILTER($A$2:$A$19,$D$2:$D$19="是")),0),0)),ROW(A1),COLUMN(A1)),"") =IFERROR(INDEX(A$2:A$19,SMALL(IF(ISERROR(MATCH($A$2:$A$19,IF($D$2:$D$19="是",$A$2:$A$19,),0)),999,ROW($A$2:$A$19)-1),ROW(A1)),1),"")
· 重庆
3
回复