Google Sheets跨工作表提取唯一学生姓名至隔行单元格
提取Google Sheets中唯一姓名到隔行单元格的解决方案
针对需求:从同一工作簿的POP表A列(A2起,含重复姓名)提取唯一姓名,填充到PracticeTracker表B列的B6、B8、B10…这类隔行位置,以下是两种可行的公式方案:
方案1:手动下拉式公式(适合按需扩展)
在PracticeTracker表的B6单元格输入以下公式,然后下拉填充到需要的行:
=IFERROR(INDEX(UNIQUE(FILTER(POP!A2:A, POP!A2:A<>"")), CEILING((ROW()-5)/2,1)), "")
公式拆解:
FILTER(POP!A2:A, POP!A2:A<>""):过滤POP表A列的空单元格,仅保留有效姓名UNIQUE(...):从过滤结果中提取不重复的姓名列表CEILING((ROW()-5)/2,1):计算当前行对应的唯一姓名索引——B6行ROW()-5=1,除以2向上取整得1;B8行ROW()-5=3,取整得2,以此实现隔行匹配唯一列表的顺序INDEX(..., 索引):根据索引取出对应姓名IFERROR(..., ""):姓名取完后显示空值,避免错误提示
方案2:自动填充数组公式(一次性生成所有结果)
在PracticeTracker表的B6单元格输入以下数组公式,无需下拉,自动填充下方符合条件的隔行:
=ARRAYFORMULA(IF(MOD(ROW(B6:B)-6,2)=0, IFERROR(INDEX(UNIQUE(FILTER(POP!A2:A, POP!A2:A<>"")), (ROW(B6:B)-6)/2 +1), ""), ""))
公式拆解:
MOD(ROW(B6:B)-6,2)=0:判断当前行是否为B6、B8这类目标隔行(B6-6=0,模2余0;B8-6=2,模2余0)- 满足条件时,通过
(ROW(B6:B)-6)/2 +1计算唯一姓名的索引,B6对应1、B8对应2… - 不满足条件的行(如B7、B9)直接显示空值
ARRAYFORMULA:让公式自动作用于B6及以下所有行
额外优化:忽略姓名大小写差异
如果POP表中存在大小写不同的同姓名(如"John"和"john"),需要视为同一姓名的话,可使用以下公式(以方案1为例):
=IFERROR(PROPER(INDEX(UNIQUE(LOWER(FILTER(POP!A2:A, POP!A2:A<>""))), CEILING((ROW()-5)/2,1))), "")
LOWER(...):将所有姓名转为小写,确保UNIQUE识别为同一值PROPER(...):将提取后的姓名转回首字母大写的规范格式
内容的提问来源于stack exchange,提问作者Amir Shahzad
相关产品推荐
相关产品推荐

