返回列表 上一主題 發帖

[發問] 如何將週六及週日給挑選出來 ?

A欄日期B欄星期
C1=IF(COUNTIF(B:B,$B$1)<ROW(),"",TEXT(INDEX(A:A,SMALL(IF($B$1:$B$31=$B$1,ROW($1:$31),100),ROW(A1))),"D"))
如果空白用
週日=IF(SMALL(IF(MOD(ROW(INDIRECT("A40664:A40694")),7)=1,ROW($1:$31),100),ROW(A1))=100,"",SMALL(IF(MOD(ROW(INDIRECT("A40664:A40694")),7)=1,ROW($1:$31),100),ROW(A1)))
都是陣列公式
週六改=0

TOP

{=IF(SMALL(IF(MOD(ROW(INDIRECT("A40664:A40694")),7)<2,ROW($1:$31),100),ROW(A1))=100,"",SMALL(IF(MOD(ROW(INDIRECT("A40664:A40694")),7)<2,ROW($1:$31),100),ROW(A1)))}

TOP

公式中的ROW(A1) 改成 COLUMN(A1)

TOP

陣列用多了會造成程式的負擔,反應會很慢,尤其是複雜的陣列.
{=IF(ROW(A1)>SUMPRODUCT((WEEKDAY(ROW($40664:$40694),2)>5)*1),"",SMALL(IF(WEEKDAY(ROW($40664:$40694),2)>5,ROW($40664:$40694),""),ROW(A1)))}
40664可以用公式date(2011,5,1)替換
40694 用 date(2011,6,0)替換 六月的第0天即是五月底 等於DATE(2011,5,31)
可在a1輸入 2011 b1輸入1 用下列公式即可產生整年的
b2=IF(ROW(A1)>SUMPRODUCT((WEEKDAY(ROW(INDIRECT(DATE($A$1,$B$1+COLUMN(B1)-1,1)&":"&DATE($A$1,$B$1+COLUMN(B1),0))),2)>5)*1),"",SMALL(IF(MOD(ROW(INDIRECT(DATE($A$1,$B$1+COLUMN(A1)-1,1)&":"&DATE($A$1,$B$1+COLUMN(A1),0))),7)<2,ROW(INDIRECT(DATE($A$1,$B$1+COLUMN(A1)-1,1)&":"&DATE($A$1,$B$1+COLUMN(A1),0)))),ROW(A1)))

TOP

        靜思自在 : 欣賞別人就是莊嚴自己。
返回列表 上一主題