Các bác tính giúp em số ngày hoạt động của máy trong tháng với ạ, em nghiên cứu cả tuần mà vẫn chưa ra

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

vantinbkdn

Thành viên mới
Tham gia
1/12/22
Bài viết
4
Được thích
0
Các bác giúp em với ạ, chả là em đang tính số ngày làm việc của máy, cụ thể em có mô tả trong file excel, em mô tả sơ đây bác nào giúp em với ạ.
Ví dụ em có một lò sấy và em cần đưa mẫu vào lò sấy ở các ngày khác nhau, và em cần tính xem lò hoạt động tổng cộng bao nhiêu
 

File đính kèm

  • Nang luc may.xlsx
    9.7 KB · Đọc: 23
Các bác giúp em với ạ, chả là em đang tính số ngày làm việc của máy, cụ thể em có mô tả trong file excel, em mô tả sơ đây bác nào giúp em với ạ.
Ví dụ em có một lò sấy và em cần đưa mẫu vào lò sấy ở các ngày khác nhau, và em cần tính xem lò hoạt động tổng cộng bao nhiêu
Ngày bắt đầu từ ngày: 01/11/2022, làm đến ngày 29/11/2022, tức máy đã hoạt động trong vòng (<=) 29 ngày. Xét bằng mắt thấy có ngày 09/11/2022 máy không hoạt động, vậy chỉ còn có 28 ngày thôi! Đúng ý bạn chưa?

Nếu đúng thì dùng công thức sau:
Mã:
D10=COUNT(1/COUNTIFS(B5:B8,"<="&ROW(INDIRECT(MIN(B5:C8)&":"&MAX(B5:C8))),C5:C8,">="&ROW(INDIRECT(MIN(B5:C8)&":"&MAX(B5:C8)))))
Kết thúc bằng Ctrl+Shift+Enter.

Thân
Tb: Nhớ sửa lại ô B8 là 23/11/2022 nha, chứ để 23/11/202 nó hổng hiểu gì hết, bé cái lầm! :)
 

File đính kèm

  • Nang luc may.xlsx
    11.1 KB · Đọc: 21
Lần chỉnh sửa cuối:
File bài 1 tải về ngày tháng như thế này mà vẫn có người giải được. Hay thật

1669901729768.png
 
Đang suy nghĩ thuật toán dùng hàm tự tạo.

1. Hàm nhận 1 tham, range bao gồm cột ngày bắt đầu (NBD) và cột ngày kết thúc (NKT)
2. lấy d1= Min(NBD), d2 = Max(NKT)
3. Redim mảng a(d1 To d2)
4. Duyệt qua các dòng của input range
4.1. Cứ mỗi ngày từ ngày bắt đầu đến ngày kết thúc:
4.1.1. a(ngày) = 1
5. số ngày = sum(a)

Thuật toán dùng đít sần:

2. Duyệt qua các dòng của input range
2.1. Cứ mỗi ngày từ ngày bắt đầu đến ngày kết thúc:
2.1.1. item(ngày) = ""
5. số ngày = items.count

Thường thỉ array nhanh hơn đít sần. Nhưng ở đây, nếu dùng array thì phải thêm mấy lần gọi hàm bảng tính và code dựng mảng. Cuối cùng chả biết thằng nào hơn thằng nào. Chỉ biêt là array tổng quát hơn, có thể dùng trên các hệ thống vận hành khác (Mac, Linux,...).
.
 
Lần chỉnh sửa cuối:
Đang suy nghĩ thuật toán dùng hàm tự tạo.

1. Hàm nhận 1 tham, range bao gồm cột ngày bắt đầu (NBD) và cột ngày kết thúc (NKT)
2. lấy d1= Min(NBD), d2 = Max(NKT)
3. Redim mảng a(d1 To d2)
4. Duyệt qua các dòng của input range
4.1. Cứ mỗi ngày từ ngày bắt đầu đến ngày kết thúc:
4.1.1. a(ngày) = 1
5. số ngày = sum(a)

Thuật toán dùng đít sần:

2. Duyệt qua các dòng của input range
2.1. Cứ mỗi ngày từ ngày bắt đầu đến ngày kết thúc:
2.1.1. item(ngày) = ""
5. số ngày = items.count

Thường thỉ array nhanh hơn đít sần. Nhưng ở đây, nếu dùng array thì phải thêm mấy lần gọi hàm bảng tính và code dựng mảng. Cuối cùng chả biết thằng nào hơn thằng nào. Chỉ biêt là array tổng quát hơn, có thể dùng trên các hệ thống vận hành khác (Mac, Linux,...).
.
Còn nghĩ ra giải thuật là tốt rồi anh!
Chỉ sợ nhìn bài mà không biết mình nên làm gì và bắt đầu từ đâu.

Chúc anh nhiều sức khỏe.
/-*+//-*+//-*+/
 
Xem file.
Công thức mảng, nếu Ex2016 trở về trước thì kết thúc bằng Ctrl_shift_enter thay vì Enter
cảm ơn bác nhiều nhiều ạ
Bài đã được tự động gộp:

Ngày bắt đầu từ ngày: 01/11/2022, làm đến ngày 29/11/2022, tức máy đã hoạt động trong vòng (<=) 29 ngày. Xét bằng mắt thấy có ngày 09/11/2022 máy không hoạt động, vậy chỉ còn có 28 ngày thôi! Đúng ý bạn chưa?

Nếu đúng thì dùng công thức sau:
Mã:
D10=COUNT(1/COUNTIFS(B5:B8,"<="&ROW(INDIRECT(MIN(B5:C8)&":"&MAX(B5:C8))),C5:C8,">="&ROW(INDIRECT(MIN(B5:C8)&":"&MAX(B5:C8)))))
Kết thúc bằng Ctrl+Shift+Enter.

Thân
Tb: Nhớ sửa lại ô B8 là 23/11/2022 nha, chứ để 23/11/202 nó hổng hiểu gì hết, bé cái lầm! :)
vâng ạ, cảm ơn bạn nhiều nhé
Bài đã được tự động gộp:

File bài 1 tải về ngày tháng như thế này mà vẫn có người giải được. Hay thật

View attachment 284134
xin lỗi bác, em đánh sai, đúng là "23/11/2022" đã có người giải được rồi ạ. Còn định dạng em không rõ sao lại như vậy, em đã format các ô này trước rồi
 
Web KT
Back
Top Bottom