Xin giúp tính toán về thời gian (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Tại bạn đặt vấn đề trong BOX hàm tự tạo nên tặng bạn hàm tự tạo đây

PHP:
Option Explicit
Function Culy_ThGian(DTM As Byte, Optional Sang As String = "s", _
   Optional GiaoMau As Byte = 0, Optional Culy As Boolean = True)
 Dim sRng As Range, Rng As Range, Sh As Worksheet
 Dim Rws As Long
 
 Set Sh = Sheets("Tong"):              Set Rng = Sheets("Tong").Range("BangTra")
 Rws = Rng.Rows.Count:                 Sang = UCase$(Sang)
 Set Rng = Rng.Cells(1, 1).Resize(Rws)
 Set sRng = Rng.Find(DTM, , xlFormulas, xlWhole)
 If Culy Then
   Culy_ThGian = sRng.Offset(, IIf(GiaoMau = 0, 6, 5)).Value
 Else
   If Sang = "S" Then
      Culy_ThGian = sRng.Offset(, IIf(GiaoMau = 0, 2, 1)).Value
   Else
      Culy_ThGian = sRng.Offset(, IIf(GiaoMau = 0, 4, 3)).Value
   End If
 End If
End Function

Chú í: Mình đã gán tên cho vùng tra rồi đó nha!
 

File đính kèm

Sếp giao cho em bài toán này để tính thời gian cho nhân viên mà e làm hoài không ra. Mong các anh chị em giúp đỡ. đây là link: http://www.megaupload.com/?d=GOJTPCVE

http://www.megaupload.com/?d=GOJTPCVE


Thanks đc giúp đỡ. -\\/.
Bạn xem lại ví dụ 2 và 4 có vấn đề gì không:
nếu ĐTM = 2, buổi chiều (c) và không giao mẫu (0) thì tổng giờ là 3.5, tổng km là 28
nếu ĐTM = 2, buổi chiều (c), km thêm = 10 và có giao mẫu (1) thì tổng giờ là 3.5, tổng km là (28+10 = 38)
 

File đính kèm

Gửi bác SA_DQ
Bác khó tính quá ^^ E không biết đặt ở box nào nên đặt vào đây ý mà.

Vậy là bạn chưa hoàn toàn hiểu ý mình rồi.

Mình tưởng bạn cần viết 1 hàm tự tạo thì mình viết & vậy thôi. . .

Thế này nha: Ở trang tính 'Tong' ta cứ coi như là bảng tra của hàm VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

lookup_value: đó là ĐTM cần tra;
table_array là vùng Tong!A3:G45
Ta chỉ còn thiếu col_Index_Num; Ta chỉ cần viết 1 hàm tự tạo để:
Ứng với 3 tham số S/c, G/0G & ThGia/cự li sẽ cho ra (trả về) trị Col_Index_Num tương ứng

Như ví dụ của bạn, tại 'I2' ta nhập công thức:
=VLOOKUP(D2,BangTra,HeSo(C2,E2,FALSE),FALSE)

HeSo(C2,E2, False) là hàm tự tạo;
Nó có nội dung sau:

PHP:
Option Explicit
Function HeSo(Sang As String, GiaoMau As Byte, Optional CuLy As Boolean = True) As Byte
 Dim Temp As Byte
 If UCase$(Sang) = "S" Then
   HeSo = 2
 ElseIf UCase$(Sang) = "C" Then
   HeSo = 4
 End If
 If CuLy Then HeSo = 6
 If GiaoMau = 0 Then HeSo = HeSo + 1
End Function

Chắc sau khi đọc bài này, bạn sẽ dễ hiểu hơn bài trên của mình.

Chúc vui!
 
Lần chỉnh sửa cuối:
thanks bác SA_DQ nhiều. Đóng topic này ở đây nha :)
 
e cung muon hoi ve tinh thoi gian lam viec trong ngay, chi tiet theo gio , phut?moi nguoi giup e voi huhuh
 
Web KT

Bài viết mới nhất

Back
Top Bottom