如下样表:
需要把“级别“与“等级“的所有组合列出来,有三个级别、四个等级,所以组合的可能性有3*4=12种。
我们来分步实现。
第一步:级别重复四次
公式:
=INDEX($A$2:$A$4,INT((ROW(A1)-1)/4)+1)
因为“级别”要重复四次,所以用INT((ROW(A1)-1)/4)。
ROW(A1)随着公式向下填充,返回值自动变为1、2、3、4、5……,(ROW(A1)-1)/4返回0、1/4、2/4、3/4、4/4……,再用INT取整,返回值为0、0、0、0、1……,INT((ROW(A1)-1)/4)+1返回1、1、1、1、2……,INDEX($A$2:$A$4,INT((ROW(A1)-1)/4)+1)即返回$A$2:$A$4中的第1个、第1个、第1个、第1个、第2个……,即实现了每个级别重复四次。
最后的错误值暂时不管。
第二步:等级重复三次
公式:
=INDEX($B$2:$B$5,MOD(ROW(A1)-1,4)+1)
ROW(A1)随着公式向下填充,返回值自动变为1、2、3、4、5……,MOD为求余函数,MOD(ROW(A1)-1,4)返回值为0,1,2,3,0……,MOD(ROW(A1)-1,4)+1返回值为1,2,3,4,1……,INDEX($B$2:$B$5,MOD(ROW(A1)-1,4)+1)返回值$B$2:$B$5中的第1个、第2个、第3个、第4个、第1个……,即实现等级重复。
第三步:合成总公式
将以上两步公式用“&”连接,同时,为了避免错误值,所有加IFERROR函数。
公式如下:
=IFERROR(INDEX($A$2:$A$4,INT((ROW(A1)-1)/4)+1)&INDEX($B$2:$B$5,MOD(ROW(A1)-1,4)+1),””)