- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2025-7-5
|
我說的不夠清楚,應該以下如此類推:
日期 職員 出勤時間
13/1 ...
hkyan 發表於 2013-11-18 16:32 
那就再加一行做判斷囉.
以 3 # 為例做調整, 假設 :
A欄 日期 A1=日期 A2==INDIRECT(CONCATENATE("f",E2),1) (以下拖曳複製)
B欄 上班員工 B1=職員 B2==INDIRECT(CONCATENATE("M",MOD(ROW(B2)-2,11)+2),1) (以下拖曳複製)
C欄 C1=出勤時間
D欄 空一欄以與計算區做區隔
E欄 日期索引值 E1=1 E2==IF(B2=$M$2,E1+1,E1) (以下拖曳複製) <= 加這一欄做每一輪日期異動的依據.
F欄 F1=實際上班日 F2==IF(ISERROR(VLOOKUP(ROW(A2),$H$2:$I$40,2,0)),"",VLOOKUP(ROW(A2),$H$2:$I$40,2,0)) (以下拖曳複製)
G欄 假日計算第1段 G1=1 G2==IF(G1>100,IF(J2<>"假日",G1-100+1,G1-100),IF(J2<>"假日",G1+1,G1+100)) (以下拖曳複製)
H欄 假日計算第2段 H1=1 H2==IF(G2<100,G2,"") (以下拖曳複製)
I欄 所有日期 I1=2013/10/31(上班首日的前一日) I2==I1+CHOOSE(WEEKDAY(I1+1,2),1,1,1,1,1,3,2) (以下拖曳複製)
J欄 J1=假日註記 J2==IF(ISERROR(MATCH(F2,$I$2:$I$15,0)),"","假日") (以下拖曳複製)
K欄 空一欄以與資料區做區隔
L欄 假日日期列表放在 L2 及其之下的儲存格
M欄 員工姓名 放在 M2 ~ M12
則 A、B、C 欄就是你要的資料.
下方附檔中假日的日期是隨意編的, 請依實況自行修改輸入
出勤表-a2.zip (6.34 KB)
|
|