Google Sheets公式实现两列按顺序合并并无限循环
Google Sheets 交替循环合并两列数据公式解法
需求明确:列1含A、B、C、D(4行非空),列2前3行是X、Y、Z(第4行空),需在列3生成交替取两列元素的无限循环序列——列2先进入循环,列1元素用完后也同步循环。
拖拽式公式(在C1单元格输入后向下拖拽即可):
=IF(ISODD(ROW()), INDEX(FILTER(A:A,A:A<>""), MOD((ROW()+1)/2 -1, COUNTA(A:A)) +1), INDEX(FILTER(B:B,B:B<>""), MOD(ROW()/2 -1, COUNTA(B:B)) +1))公式逻辑拆解:
FILTER(A:A,A:A<>""):自动提取列1所有非空值,得到数组{"A","B","C","D"},忽略空单元格COUNTA(A:A):统计列1非空单元格数量(即列1的循环周期为4)- 奇数行(第1、3、5…行):取列1的循环元素,通过
MOD((ROW()+1)/2 -1, 4)+1计算循环索引,超出4个元素后自动从头循环 - 偶数行(第2、4、6…行):取列2的循环元素,列2非空值为
{"X","Y","Z"}(循环周期3),通过MOD(ROW()/2 -1, 3)+1实现循环,自动跳过原列2的空单元格
一次性生成多行(无需拖拽,ARRAYFORMULA批量版):
=ARRAYFORMULA(IF(SEQUENCE(100)=0,, IF(ISODD(SEQUENCE(100)), INDEX(FILTER(A:A,A:A<>""), MOD((SEQUENCE(100)+1)/2 -1, COUNTA(A:A)) +1), INDEX(FILTER(B:B,B:B<>""), MOD(SEQUENCE(100)/2 -1, COUNTA(B:B)) +1))))注:将
SEQUENCE(100)中的100改为你需要的行数,即可一次性生成对应行数的循环序列。
内容的提问来源于stack exchange,提问作者melnikas
相关产品推荐
相关产品推荐

