提问人:Sarah Savoy 提问时间:3/11/2023 最后编辑:halferSarah Savoy 更新时间:3/11/2023 访问量:144
在 Google 表格中过滤、索引、匹配
Filter, Index, Match in Google Sheets
问:
我试图了解出了什么问题,但我在这方面很糟糕,并试图学习。我需要“发票”表来创建学生在上午和下午在场的日期列表,作为学校前/后护理的临时人员。因此,我需要匹配名称,然后在其下方的单元格中列出带有 P 的列日期。看一下就更容易理解了。https://docs.google.com/spreadsheets/d/1Sd_rTMoKlngcwx8ORyzM7JyK_0Uy8CQYqrMo12eDLlQ/edit?usp=sharing
我以前用 Filter、Index 和 Match 做过类似的事情,但它是在转置公式中,我觉得我不小心让它工作了。现在我不明白为什么这不起作用。
我已经看过很多已经审查过的建议问题,要么它们不是我需要的,要么我没有足够的理解来适应我自己的需求。接下来我可以尝试什么?
答:
您可以在选项卡中尝试这些Invoicing
单元格 M2
=byrow(A2:A,lambda(z,if(z="",,ifna(join(", ",filter('Drop-In AM Attendance'!GD4:HE4,filter('Drop-In AM Attendance'!GD5:HE,'Drop-In AM Attendance'!A5:A=z)="P"))))))
细胞 N2
=byrow(A2:A,lambda(z,if(z="",,ifna(join(", ",filter('Drop-In PM Attendance'!GD4:HE4,filter('Drop-In PM Attendance'!GD5:HE,'Drop-In PM Attendance'!A5:A=z)="P"))))))
评论
使用筛选和匹配是正确的。我认为在这种情况下,偏移量比索引更容易使用。
=ifna(join(", ",FILTER('Drop-In AM Attendance'!$GD$4:$HE$4,offset('Drop-In AM Attendance'!$GD$4:$HE$4,match(A2,'Drop-In AM Attendance'!$A$5:A,0),0)="P")),"None")
让我们先看一下偏移量
offset('Drop-In AM Attendance'!$GD$4:$HE$4,match(A2,'Drop-In AM Attendance'!$A$5:A,0),0)
这是说将 AM 考勤表中的单元格 GD4:HE4 向下移动一定数量的行。行数由哪一行与单元格 A2 匹配决定。因此,这将返回 A2 中显示的学生的 AM 考勤表行。
现在,过滤器:
FILTER('Drop-In AM Attendance'!$GD$4:$HE$4,offset('Drop-In AM Attendance'!$GD$4:$HE$4,match(A2,'Drop-In AM Attendance'!$A$5:A,0),0)="P")
这就是说,取 $GD$4:$HE$4 中的日期,找到我们从偏移量返回的行等于“P”的日期。默认情况下,每个日期都将在新单元格中返回。这就是 JOIN() 函数的原因。
JOIN() 获取学生所有带有“P”的日期,并用“、”分隔它们(在它们之间添加逗号和空格,并将它们缩小为一个单元格)。
最后,IFNA() 函数表示,如果存在 #N/A 错误(如果学生没有日期删除,就会发生这种情况),则返回“无”而不是错误。
您可以简单地为所有学生向下拖动此公式,然后对 PM 执行相同的操作:
=ifna(join(", ",FILTER('Drop-In PM Attendance'!$GD$4:$HE$4,offset('Drop-In PM Attendance'!$GD$4:$HE$4,match(A2,'Drop-In PM Attendance'!$A$5:A,0),0)="P")),"None")
下一个:匹配 3 个不相邻列中的值
评论