本帖最后由 shaowu459 于 2023-9-21 13:11 编辑
上述思路下完整的参考公式如下,大家有更高效率的循环方法也请不吝赐教(公式已更新):
- =LET(行,LAMBDA(x,INT((x-1)/9)+1),列,LAMBDA(x,MOD(x-1,9)+1),九宫,LAMBDA(x,INT(MOD(x-1,9)/3)+1+3*INT((x-1)/27)),结果,REDUCE(TOCOL(--B2:J10),SEQUENCE(81-COUNT(B2:J10)),LAMBDA(x,y,DROP(REDUCE(0,SEQUENCE(COLUMNS(x)),LAMBDA(m,n,LET(每一列,INDEX(x,,n),筛,LAMBDA(x,y,FILTER(每一列,x=y)),位置,MATCH(0,每一列,),行判,筛(行(ROW(1:81)),行(位置)),列判,筛(列(ROW(1:81)),列(位置)),九宫判,筛(九宫(ROW(1:81)),九宫(位置)),备选,TOROW(ROW(1:9)/ISNA(MATCH(ROW(1:9),VSTACK(行判,列判,九宫判),)),3),IF(COUNT(备选)=0,m,HSTACK(m,IF(ISNA(位置),每一列,IF(ROW(1:81)=位置,备选,每一列))))))),,1))),WRAPROWS(TAKE(FILTER(结果,BYCOL(结果,LAMBDA(x,NOT(OR(x=0))))),,1),9))
复制代码
|