答案已通过短消息发送。 占个位置,请老师给看看。 谢谢! ==== {=TEXT(SUM(N(INDIRECT("r"&ROW()&"c"&SMALL(IF(A2:BR2<>"",COLUMN(A2:BR2)),COLUMN($A$2:$G$2)),))*TRANSPOSE(10^(7-ROW($1:$7)))),"0000000")} “INDIRECT("r"&ROW()&"c"……)”可简化为“INDIRECT("rc"……)”,R后面没有行号,表示引用本行。 “TRANSPOSE(10^(7-ROW($1:$7)))”可用“10^(7-COLUMN(A:G))”。 公式简化为: {=TEXT(SUM(N(INDIRECT("rc"&SMALL(IF(A2:BR2<>"",COLUMN(A2:BR2)),COLUMN($A:$G)),))*10^(7-COLUMN(A:G))),"0000000")} ——山菊花 {=TEXT(MMULT(SUBTOTAL(9,OFFSET($A$2:$J$2,ROW($A$2:$A$14)-2,(COLUMN($A$2:$G$2)-1)*10)),10^(7-ROW($1:$7))),"0000000")} OFFSET()引用了与结果无关的区域,造成大量多余的运算。MMULT()用得也不够灵活。公式是个普通公式,不用按三键。公式可简化为: =TEXT(MMULT(10^(7-COLUMN($A:$G)),SUBTOTAL(9,OFFSET(A2,,(ROW($1:$7)-1)*10,,10))),"0000000") ——山菊花 {=TEXT(MMULT(SUMIF(OFFSET($A$2:$J$2,ROW($A$2:$A$14)-2,(COLUMN($A$2:$G$2)-1)*10),"<>"),10^(7-ROW($1:$7))),"0000000")} 用SUMIF()代替SUBTOTAL(),好。不足之处同上。 ——山菊花 用SUMIF()代替SUBTOTAL(),好。不足之处同上。 ——山菊花
[此贴子已经被山菊花于2007-2-21 11:56:07编辑过] |