- 帖子
- 522
- 主題
- 36
- 精華
- 1
- 積分
- 603
- 點名
- 0
- 作業系統
- win xp sp3
- 軟體版本
- Office 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2012-12-13
- 最後登錄
- 2021-7-11
|
5#
發表於 2015-11-27 04:53
| 只看該作者
因 "前14天的比較特別,必須要有3天含以上的假日,如六、日、一連假,
才會扣除, 如果沒有三天以上,則六日及假日則不扣除。"
的關係, 我想到用 "日柱" 來處理, "日柱" 取自
http://forum.twbts.com/thread-11971-1-1.html
使用前請先核對, 因該 "連假" 係根據公家機關而訂, 私人機構可能要修正。
一、建立 輔助欄 "xx" 及 "yy"
1. 插入欄B及欄C
2. 將欄A複製到欄B及欄C
3. 將欄B及欄C 標題改為 xx 及 yy
4. 刪除欄B所有假日儲存格(下方儲存格上移)
(可手動或執行下列VBA Code)
Sub 刪除假日()
Dim I As Integer
Sheets("Sheet2").Activate
For I = 460 To 2 Step -1
If Cells(I, 2).Font.ColorIndex = 3 Or Cells(I, 2).Font.ColorIndex = 5 Then
Cells(I, 2).Delete Shift:=xlUp
End If
Next
End Sub
5. (手動)將 欄C 所有連續3天以上的
儲存格全部刪除(下方儲存格上移)
二、建立名稱 "上線日","xx","yy"
1. 選取 "A1:C428"
2. 按 Ctrl + Shift + F3
3. 勾選[頂端列](其餘不可選)
三、將 欄B及欄C 剪下 貼上到 欄x及欄y
四、輸入公式
[B17]公式, 向下拉
=IF(ISERROR(MATCH(上線日,xx,0)),"",INDIRECT("X"&MATCH(上線日,xx,0)-2))
[C17]公式, 向下拉
=IF(ISERROR(MATCH(上線日,xx,0)),"",INDIRECT("X"&MATCH(上線日,xx,0)-5))
[D17]公式, 向下拉
=IF(ISERROR(MATCH(上線日,yy,0)),"",INDIRECT("Y"&MATCH(上線日,yy,0)-13))
|
-
-
向前推三天.rar
(114.21 KB)
|