Google Sheets中根据匹配姓名自动填充对应排班表的技术求助
Google Sheets 按姓名自动填充排班表解决方案
你需要从原始排班表(姓名+多列排班数据)中,给目标表的对应姓名自动填充排班信息,之前的方法没效果是因为函数用法不对,下面给你两种直接可用的解决方案:
方法一:VLOOKUP 批量填充(推荐)
在目标表第一个需要填充排班的单元格(比如B13),输入以下公式,回车后会自动批量填充所有对应姓名的排班数据:
=ARRAYFORMULA(IFNA(VLOOKUP(A13:A21, A1:G9, {2,3,4,5,6,7}, FALSE)))
公式说明:
ARRAYFORMULA:让公式一次性处理A13:A21的所有姓名,无需手动下拉公式VLOOKUP:精确匹配目标表的姓名在原始表中的位置{2,3,4,5,6,7}:指定返回原始表的第2到第7列(也就是B到G列的排班数据)FALSE:强制精确匹配,避免近似匹配导致的错误IFNA:把找不到匹配的单元格显示为空,替代默认的#N/A提示
方法二:INDEX+MATCH 组合
如果更习惯用INDEX和MATCH,也可以用这个公式,效果一致:
=ARRAYFORMULA(IFNA(INDEX(B1:G9, MATCH(A13:A21, A1:A9, 0), SEQUENCE(1,6))))
公式说明:
MATCH(A13:A21, A1:A9, 0):找到目标表姓名在原始表中对应的行号SEQUENCE(1,6):生成1到6的列号,对应原始表的B到G列INDEX(B1:G9, 行号, 列号):精准定位并返回排班数据ARRAYFORMULA和IFNA的作用和方法一一致
为什么你之前的方法失败?
- 你用的
LOOKUP("Clair",A1:A9,ARRAYFORMULA(INDEX(B1:G9))):LOOKUP要求查找范围必须是升序排序的,而且它只能返回单值,无法一次性返回整行的多列排班数据,所以会返回#N/A REGEXMATCH的思路没必要,直接用姓名匹配函数比正则更高效,也更贴合需求
内容的提问来源于stack exchange,提问作者Codra Kai
相关产品推荐
相关产品推荐

