如何在Google Sheets中基于Lookup Table自动递增条目(忽略多行块)
解决方法
假设你的查找表在Sheet1,A列是Name(表头在A1,数据从A2开始),B列是URL(表头在B1,数据从B2开始);观测记录工作表是Sheet2,每个条目占3行(Name行、空行、URL行)。
方法1:批量自动填充(ARRAYFORMULA)
在Sheet2的A1单元格输入以下公式,它会自动按查找表顺序填充所有条目块:
=ARRAYFORMULA(IF(MOD(ROW()-1,3)=0, INDEX(Sheet1!A:A, INT((ROW()-1)/3)+2), IF(MOD(ROW()-1,3)=2, INDEX(Sheet1!B:B, INT((ROW()-1)/3)+2), "")))
公式说明:
MOD(ROW()-1,3)=0:识别每个条目块的第1行(行号1、4、7...),填充查找表对应的NameMOD(ROW()-1,3)=2:识别每个条目块的第3行(行号3、6、9...),填充查找表对应的URLINT((ROW()-1)/3)+2:计算当前条目块对应的查找表数据行(+2是因为查找表数据从第2行开始)- 中间行(块的第2行)自动返回空字符串
方法2:单个单元格手动填充
如果不想批量生成,也可以在每个条目块的对应行单独输入公式:
- 在
Sheet2的Name行(如A1)输入:=INDEX(Sheet1!A:A, INT((ROW()-1)/3)+2) - 在
Sheet2的URL行(如A3)输入:=INDEX(Sheet1!B:B, INT((ROW()-1)/3)+2) - 把公式向下拖动,每个条目块的对应行会自动匹配查找表的下一个条目
调整适配不同块行数
如果你的条目块不是3行(比如4行:Name、空、备注、URL),只需修改公式中的3为实际块行数,并调整MOD的判断值:
比如4行块,Name行是MOD(ROW()-1,4)=0,URL行是MOD(ROW()-1,4)=3,公式变为:
=ARRAYFORMULA(IF(MOD(ROW()-1,4)=0, INDEX(Sheet1!A:A, INT((ROW()-1)/4)+2), IF(MOD(ROW()-1,4)=3, INDEX(Sheet1!B:B, INT((ROW()-1)/4)+2), "")))
这样不管每个条目占多少行,都会严格按照查找表的顺序逐个生成条目,不会因为行号递增而跳过查找表的后续内容。
内容的提问来源于stack exchange,提问作者Yahalnaut
相关产品推荐
相关产品推荐

