OFFSET函数也可解决排列组合问题

昨天的排列组合问题,今天换成OFFSET函数来解决 。
相同的样表:

OFFSET函数也可解决排列组合问题

文章插图
需要把“级别“与“等级“的所有组合列出来,有三个级别、四个等级,所以组合的可能性有3*4=12种 。
【OFFSET函数也可解决排列组合问题】分步实现:
第一步:级别重复四次
公式:
=OFFSET(A$2,INT((ROW(A1)-1)/4),,)
OFFSET函数也可解决排列组合问题

文章插图
因为“级别”要重复四次,所以用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……,OFFSET(A$2,INT((ROW(A1)-1)/4),,)即以A$2为基准点,向下偏移0行、0行、0行、0行、1行……,即返回一级、一级、一级、一级、二级…… 。
第二步:等级重复三次
公式:
=OFFSET(B$2,MOD(ROW(A1)-1,4),)
OFFSET函数也可解决排列组合问题

文章插图
ROW(A1)随着公式向下填充,返回值自动变为1、2、3、4、5……,MOD为求余函数,MOD(ROW(A1)-1,4)返回值为0,1,2,3,0……,OFFSET(B$2,MOD(ROW(A1)-1,4),)即以B$2为基准点,向下偏移0行,1行,2行,3行,0行……,即返回甲等、乙等、丙等、丁等、甲等…… 。
第三步:合成总公式
公式:
=OFFSET(A$2,INT((ROW(A1)-1)/4),,)&OFFSET(B$2,MOD(ROW(A1)-1,4),)
OFFSET函数也可解决排列组合问题

文章插图

    推荐阅读