標題:
[發問]
資料庫資料整合問題請教
[打印本頁]
作者:
rouber590324
時間:
2015-3-18 10:36
標題:
資料庫資料整合問題請教
DEAR ALL 大大 -
1.SHEET1資料庫工作表儲存格內容如下 (小弟公司限制無法上傳檔案)
A B C D
1 姓名 日期 入廠時 出廠時
2 A 1030102 0746 1203
3 A 1030102 1246 1709
4 A 1030103 0750 1716
5 B 1030103 0742 1855
...
2.需求說明
2.1 目前資料中午出外用餐者會同一日出現2筆資料(如 A君 2 3 列 0746 1203 & 1246 1709).
需取其當日上下班時間(補回吃飯時間計算 如 A君 0746 1709)
2.2 需求結果格式如下 (姓名同一人同一天只能留一列資料-取其前(例-0746)與尾(例-1709)之資料)
2.2.1 資料 轉另一工作表 SHEET2 結果工作表儲存格如下
A B C D
1 姓名 日期 入廠時 出廠時
2 A 1030102 0746 1709
3 A 1030103 0750 1716
4 B 1030103 0742 1855
...
3.煩不吝賜教 THANKS*10000
作者:
vanguarx
時間:
2015-3-18 13:13
邏輯上
同一個人, 同一天,取其 入場的最小值,與 出場的最大值...
但若有人 跨天的凌晨 才離開,例如 隔天的 0100離開,那當天就算到 2400 ?
你這是要算 加班費的?或上班時數?
作者:
rouber590324
時間:
2015-3-19 09:29
dear sir
1算 上班時數
2不會有超過 00:00 後還不走地.若有算至 00:00 thanks
作者:
GBKEE
時間:
2015-3-19 10:49
回復
3#
rouber590324
試試看
Option Explicit
Sub Ex()
Dim D As Object, Rng As Range, AR()
Set D = CreateObject("SCRIPTING.DICTIONARY") '字典物件
Set Rng = Sheets("Sheet1").Range("a1") '
Do While Rng <> ""
If D.EXISTS(Rng & Rng(1, 2)) Then 'key(關鍵字)值存在
AR = D(Rng & Rng(1, 2)) '取得內容
AR(1, 4) = Rng(1, 4)
D(Rng & Rng(1, 2)) = AR 'key(關鍵字)值 內容重新置入
Else
D(Rng & Rng(1, 2)) = Rng.Resize(, 4)
End If
Set Rng = Rng.Offset(1) '下移一個儲存格
Loop
With Sheets(2)
.Cells.Clear
.[A1].Resize(D.Count, 4) = Application.Transpose(Application.Transpose(D.ITEMS))
End With
End Sub
複製代碼
作者:
rouber590324
時間:
2015-3-19 14:21
DEAR GBKEE 大大
1.完全符合小弟之需求.非常感謝您之指導. THANKS*10000
作者:
rouber590324
時間:
2015-3-19 14:37
DEAR GBKEE & ALL 大大
1.SORRY 轉出資料無問題.
例
C欄 =入廠時間(A) 10301020756
D欄 =出廠時間(B) 10301021815
1.1 小弟需於 E欄秀出 上班時數(D-C) D欄時間 -C欄時間後之小時
1.1.1 如範例 10301021815-10301020756= 9.32小時
2.請教 VBA如何書寫 THANKS*10000
作者:
rouber590324
時間:
2015-3-19 15:33
DEAR ALL 大大
小弟已用如下方式解決 THANKS*10000
Sub 計算新出勤工時()
Sheet4.Select
Range("A1").Select
Sheet4.[E2:E65536].ClearContents
R = Sheet4.[A65536].End(xlUp).Row
On Error Resume Next
For M = 2 To R
X1 = Mid(Sheet4.Cells(M, 3), 8, 2)
X2 = Mid(Sheet4.Cells(M, 3), 10, 2)
Y1 = Mid(Sheet4.Cells(M, 4), 8, 2)
Y2 = Mid(Sheet4.Cells(M, 4), 10, 2)
Sheet4.Cells(M, 5) = (Y1 - X1 - 1) + (60 - X2 + Y2) / 60
Next
Sheet4.Select
Range("A1").Select
End Sub
作者:
yokokamio212
時間:
2015-3-24 09:56
rouber590324 大大~
你的檔案可以分享給我嗎??
作者:
rouber590324
時間:
2015-3-24 11:43
DEAR SIR
我無法上傳檔案.公司LOCK
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)