本帖最后由 delete_007 于 2014-2-20 10:07 编辑
公式一:
方法一:直接构造6取3的组合数组6*20。
选定a2:f21,多单元格数组公式,由组合公式可知有20个组合(即6列20行)(为什么要下拉到31?不下拉到64或其他?)
(任意选定连续的6列20行即可,163字符)
=A1:F1*IF(ROW(1:20)<3,{0,0,0,1,1,1;1,1,1,0,0,0},IF(IF(ROW(1:20)>12,{0,0,0,1,1,1},{1,1,1,0,0,0}),INT(ROW(1:20)/3)<>COLUMN(A:F),MOD(ROW(1:20),3)=MOD(COLUMN(A:F),3)))
=A1:F1*IF(ROW(1:20)<3,({1;0}-(COLUMN(A:F)>3))^2,IF(IF(ROW(1:20)>12,COLUMN(A:F)>3,COLUMN(A:F)<4),INT((ROW(1:20))/3)<>COLUMN(A:F),MOD(ROW(1:20),3)=MOD(COLUMN(A:F),3)))
需要选定a2:f21:
=A1:F1*IF(ROW()<4,{0,0,0,1,1,1;1,1,1,0,0,0},IF(IF(ROW()>12,{0,0,0,1,1,1},{1,1,1,0,0,0}),INT(ROW(1:20)/3)<>COLUMN(),MOD(ROW(),3)=MOD(COLUMN(),3)))
结构不变,改变常数组形态,选定a2:f21,多单元格数组公式,设成不显示零值(138字符):
=A1:F1*IF(ROW()<4,ROW()=INT(COLUMN(F:K)/3),IF(IF(ROW()>12,COLUMN()>3,COLUMN()<4),INT(ROW(1:20)/3)<>COLUMN(),MOD(ROW(),3)=MOD(COLUMN(),3)))
还可改进成136字符的表达式:
=A1:F1*IF(ROW()<4,({1;0}-(COLUMN()>3))^2,IF(IF(ROW()>12,COLUMN()>3,COLUMN()<4),INT((ROW()-1)/3)<>COLUMN(),MOD(ROW(),3)=MOD(COLUMN(),3)))
方法二:
参考6个元素的全组合表达式:MOD(INT(ROW(1:64)*2/2^COLUMN(A:F)),2)
选定a2:f31,多单元格数组公式:
=TEXT(MID(LARGE(MMULT(A1:F1+10%^COLUMN(A1:F1),MOD(INT(COLUMN($A:$BM)*2/2^ROW($1:$6)),2))*(MMULT(COLUMN(A:F)^0,MOD(INT(COLUMN($A:$BM)*2/2^ROW($1:$6)),2))=3),ROW(1:30)),COLUMN()+3,1),A1:G1&";;")
可精简成:
=TEXT(INDEX(MOD(INT(ROW(1:64)*2/2^COLUMN(A:F)),2),SMALL(IF(MMULT(MOD(INT(ROW(1:64)*2/2^COLUMN(A:F)),2),ROW(1:6)^0)=3,ROW(1:64),64),ROW()-1),COLUMN()),A1:F1&";;")
如果设置不显示0值(149字符):
=INDEX(MOD(INT(ROW(1:64)*2/2^COLUMN(A:F)),2),SMALL(IF(MMULT(MOD(INT(ROW(1:64)*2/2^COLUMN(A:F)),2),ROW(1:6)^0)=3,ROW(1:64),64),ROW()-1),COLUMN())*A1:F1
对于公式二,先发一个直白的公式,不合参赛的要求,
=IF(LARGE(A2:F2,1)<LARGE(A2:F2,2)+LARGE(A2:F2,3),"三角形的面积为"&((SUM(A2:F2)/2)*(SUM(A2:F2)/2-LARGE(A2:F2,1))*(SUM(A2:F2)/2-LARGE(A2:F2,2))*(SUM(A2:F2)/2-LARGE(A2:F2,3)))^0.5,"不能构成三角形")
公式一选定a2:f21多单元格数组公式(136字符)
=A1:F1*IF(ROW()<4,({1;0}-(COLUMN()>3))^2,IF(IF(ROW()>12,COLUMN()>3,COLUMN()<4),INT((ROW()-1)/3)<>COLUMN(),MOD(ROW(),3)=MOD(COLUMN(),3)))
公式二:选定g2:g21多单元格数组公式(155字符)
=TEXT(TEXT(PRODUCT(SMALL(INDEX(MMULT(OFFSET(A1,1,,20,6),-1^(ROW(1:6)=COLUMN(A:G))),ROW(1:20),),COLUMN(A:D))),"0;!0;!0")^0.5/4,"三角形的面积是0.0000;[=0]!不能构成三角形")
补充内容 (2014-2-11 16:34):
上式再减成151字符
=TEXT(TEXT(PRODUCT(SMALL(INDEX(MMULT(OFFSET(A1,1,,20,6),-1^(ROW(1:6)=COLUMN(A:G))),ROW(1:20),),{1,2,3,4})),"0;!0;!0")^0.5/4,"三角形的面积是0.00;[=0]!不能构成三角形") 公式一方法一:公式只能填充至F21,同时有多余0值显示,不满足要求
公式一方法二:C列10显示成了11
公式二:只能填充至G21,没有做容错处理。公式亦间接引用了A2:F31内容,不满足要求
——delete_007
|