[Xin giúp đỡ] Công thức tính thời gian làm được tính tiền mà không tính thời gian nghỉ

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Lá chanh

Thành viên mới
Tham gia
28/6/23
Bài viết
14
Được thích
3
Mình có 1 bảng thời gian máy làm việc không được tính tiền và dữ liệu thời gian máy chạy. Cần tính "thời gian làm việc được tính tiền" của máy dựa trên dữ liệu làm việc của máy. Nhờ các bác giúp công thức để tính toán.
Ví dụ:
-Thời gian máy làm việc nhưng không được tính tiền là từ 10:00-11:00 ....( còn một số khoảng thời gian không đc tính tiền nữa nhưng mình không viết vào đây)
-Ngày 01/06/2023 Máy làm việc từ 9:00 đến 12:10. thì "thời gian làm việc được tính tiền"=9:00-10:00+ 11:00-12:10 = 60'+70'=130'
Chi tiết các bác xem file đính kèm và giúp em nhé,
Cảm ơn cả nhà!!!
 

File đính kèm

  • New Microsoft Excel Worksheet.xlsx
    10.6 KB · Đọc: 21
1 Phương án dùng UDF (User Define Function) là hàm tự tạo nhé
Cú pháp:
=TinhTien(Vùng TG không tính tiền, TG bắt đầu, TG kết thúc)
VD: tại E10:
=tinhtien($C$3:$D$6,C10,D10)

Cách dùng:
Alt-F11 mở cửa sổ VBA, insert / module, copy code này vô:
Save as file dạng .xlsm

Mã:
Option Explicit
Function TinhTien(ByVal tg As Range, bd As Range, kt As Range)
Dim i&, j&, h1 As Double, h2 As Double, sum&
Dim dic As Object, key
Set dic = CreateObject("Scripting.Dictionary")
TinhTien = tg.Columns(1).Cells(1, 1)
For i = 1 To 4
    h1 = tg.Columns(1).Cells(i, 1): h2 = tg.Columns(1).Cells(i, 2)
    h1 = Hour(h1) * 60 + Minute(h1): h2 = Hour(h2) * 60 + Minute(h2)
    For j = h1 + 1 To h2
        dic.Add j, ""
    Next
Next
h1 = Hour(bd) * 60 + Minute(bd): h2 = Hour(kt) * 60 + Minute(kt)
For i = h1 + 1 To h2
    If Not dic.exists(i) Then sum = sum + 1
Next
TinhTien = sum
Set dic = Nothing
End Function

Capture.JPG
 

File đính kèm

  • New Microsoft Excel Worksheet.xlsm
    18.9 KB · Đọc: 13
Cảm ơn bạn @bebo021999 . mình sẽ thử cách của bạn. Tuy nhiên, có thể sử dụng hàm excel không nhỉ? Do file của mình để trên server công ty lại không thể chạy được file .xlsm
 
Up. Mong các cao thủ đi qua giúp e 1 chút. Đang cần quá
 
Muốn hàm thì xem trong này, nếu hiểu thì tự sửa được.
Sở dĩ tớ không viết hàm cho bạn vì tớ vẫn chưa hiểu được cách hoạt động của hàm mặc dù đọc đi đọc lại mấy lần.
Nói chung là khó quá.

 
Không tính giây nha, chỉ tính phút. Không rành lắm nên hơi rườm rà. Hy vọng hiểu ý và giải quyết đúng vấn đề.
 

File đính kèm

  • New Microsoft Excel Worksheet.xlsx
    12.1 KB · Đọc: 8
Cảm ơn bạn @bebo021999 . mình sẽ thử cách của bạn. Tuy nhiên, có thể sử dụng hàm excel không nhỉ? Do file của mình để trên server công ty lại không thể chạy được file .xlsm
Thử công thức dưới, ctrl+shift+enter:
Mã:
=(D10-C10-SUM((C10<=$C$3:$C$6)*(D10>=$D$3:$D$6)*($D$3:$D$6-$C$3:$C$6))-SUM((C10:D10<$D$3:$D$6)*(C10:D10>$C$3:$C$6)*IF({1,0},$D$3:$D$6-C10,D10-$C$3:$C$6)))*1440
 
Mình có 1 bảng thời gian máy làm việc không được tính tiền và dữ liệu thời gian máy chạy. Cần tính "thời gian làm việc được tính tiền" của máy dựa trên dữ liệu làm việc của máy. Nhờ các bác giúp công thức để tính toán.
Ví dụ:
-Thời gian máy làm việc nhưng không được tính tiền là từ 10:00-11:00 ....( còn một số khoảng thời gian không đc tính tiền nữa nhưng mình không viết vào đây)
-Ngày 01/06/2023 Máy làm việc từ 9:00 đến 12:10. thì "thời gian làm việc được tính tiền"=9:00-10:00+ 11:00-12:10 = 60'+70'=130'
Chi tiết các bác xem file đính kèm và giúp em nhé,
Cảm ơn cả nhà!!!
Hàm round làm tròn phút
Mã:
=ROUND((D10-C10-SUM(--TEXT(IF($D$3:$D$6<D10,$D$3:$D$6,D10)-IF($C$3:$C$6>C10,$C$3:$C$6,C10),"[<0]\0")))*1440,0)
Nhấn ctrl+shift+enter
 
Hàm round làm tròn phút
Mã:
=ROUND((D10-C10-SUM(--TEXT(IF($D$3:$D$6<D10,$D$3:$D$6,D10)-IF($C$3:$C$6>C10,$C$3:$C$6,C10),"[<0]\0")))*1440,0)
Nhấn ctrl+shift+enter
Chào bạn! công thức này của bạn mình áp dụng vào trường hợp này thì thấy nó cho kết quả không đúng. (vì không hiểu bản chất của công thức nên không hiểu vì sao không cho kết quả đúng)
Bạn xem hộ mình công thức mình viết có đúng không?
Mình cảm ơnUntitled.jpg
 

File đính kèm

  • New Microsoft Excel Worksheet.xlsx
    9.6 KB · Đọc: 4
Chào bạn! công thức này của bạn mình áp dụng vào trường hợp này thì thấy nó cho kết quả không đúng. (vì không hiểu bản chất của công thức nên không hiểu vì sao không cho kết quả đúng)
Bạn xem hộ mình công thức mình viết có đúng không?
Mình cảm ơnView attachment 299299
Thử E5:
Mã:
=D5-C5-SUM(1-(C5>=$G$2:$G$4)-(D5<=$F$2:$F$4))
Kết thúc bằng Ctrl+Shift+Enter.

Thân
 

File đính kèm

  • New Microsoft Excel Worksheet.xlsx
    10.6 KB · Đọc: 12
Chào bạn! công thức này của bạn mình áp dụng vào trường hợp này thì thấy nó cho kết quả không đúng. (vì không hiểu bản chất của công thức nên không hiểu vì sao không cho kết quả đúng)
Bạn xem hộ mình công thức mình viết có đúng không?
Mình cảm ơnView attachment 299299
Bạn nhập dư hàm SUM
Bài đã được tự động gộp:

Thử E5:
Mã:
=D5-C5-SUM(1-(C5>=$G$2:$G$4)-(D5<=$F$2:$F$4))
Kết thúc bằng Ctrl+Shift+Enter.

Thân
Công thức hại não như vậy mà bạn cũng nghĩ ra, quá tuyệt vời. /-*+/ /-*+/ /-*+/
 
Lần chỉnh sửa cuối:
@HieuCD @Phan Thế Hiệp 2 bác có sách gì hay nguồn nào để học nâng cao excel, Giúp em có thể đọc hiểu và xa hơn nữa là có thể viết những công thức như này không ạ? Giới thiệu em với!
Anh @HieuCD có cuốn sách bí quyết dạy học các môn không chỉ có mỗi môn Excel, từ vỡ lòng đến nâng cao, đó là cuốn: "Khiêm động học luyện tích năng".

Bạn hỏi xin ảnh thử, chỉ sợ ảnh giấu làm của mà thôi!. :):):)

Thân
 
Web KT
Back
Top Bottom