Làm sao để tính số ngày làm việc trong một khoảng thời gian?

  • Thread starter Thread starter vinhtq
  • Ngày gửi Ngày gửi
Liên hệ QC

vinhtq

Thành viên mới
Tham gia
31/10/07
Bài viết
3
Được thích
0
Các cao thủ cho em hỏi em muốn tính số ngày làm việc không kể T7, CN trong một khoảng thời gian thì dùng hàm nào?
Càng đơn giản càng tốt nhé.
Tks các đại ca.
 
Bạn sử dụng hàm NETWORKDAYS(startdate,endate,holidays)

muốn sử dụng hàm này bạn phải cài addins Analysis Toolpak.

holidays là tham số tùy chọn, nếu muốn tính ngày lễ nào thì bạn, nhập vào, hàm sẽ tự trử ngày đó ra.

VD: networkdays("1/11","1/11") = 0
networkdays("13/11","20/11")=5
networkdays("13/11","20/11","19/11")=4

Thân.

P/s để cài Analysis Toolpak bạn phải có đĩa source của bộ office bạn đang sử dụng (cứ gõ đại vào, nếu báo lỗi #name thì là chưa có).
 
Lần chỉnh sửa cuối:
Trong trường hợp ko thể cài Analysis Toolpak do nhiều yếu tố khách quan thì vẫn có thể dùng công thức thường dc đấy... Tôi giới thiệu với các bạn 1 công thức tương đối tổng quát:
-Tính số ngày thứ hai: =INT((Y-X-WEEKDAY(Y,2)+8)/7)
-Tính số ngày thứ ba: =INT((Y-X-WEEKDAY(Y-1,2)+8)/7)
-Tính số ngày thứ tư: =INT((Y-X-WEEKDAY(Y-2,2)+8)/7)
-Tính số ngày thứ năm: =INT((Y-X-WEEKDAY(Y-3,2)+8)/7)
-Tính số ngày thứ sáu: =INT((Y-X-WEEKDAY(Y-4,2)+8)/7)
-Tính số ngày thứ bảy: =INT((Y-X-WEEKDAY(Y-5,2)+8)/7)
-Tính số ngày chủ nhật: =INT((Y-X-WEEKDAY(Y-6,2)+8)/7)
Với X là điểm bắt đầu, Y là điểm kết thúc...
Từ đây là có thể tính số ngày làm việc như bạn vừa nói rồi chứ gì! hi... hi...
ANH TUẤN
 
Vậy cộng lại là:
=INT((Y-X-WEEKDAY(Y,2)+8)/7)+INT((Y-X-WEEKDAY(Y-1,2)+8)/7)+INT((Y-X-WEEKDAY(Y-2,2)+8)/7)+INT((Y-X-WEEKDAY(Y-3,2)+8)/7)+INT((Y-X-WEEKDAY(Y-4,2)+8)/7)
dài ghê!
mà không được rút gọn kiểu thừa số chung à nha.
Bởi vì int nhiều lần rồi cộng lại khác với cộng lại rồi mới int.
Tóm lại là:
1. chọn ngắn
2. chọn dài
 
Làm gì mà dài thế... hi.. hi...
Bạn lấy tổng số ngày - số ngày CN - số ngày thứ 7 là dc rồi
Tức là:
Y-X+1-INT((Y-X-WEEKDAY(Y-5,2)+8)/7)-INT((Y-X-WEEKDAY(Y-6,2)+8)/7)
Còn nữa... công thức này có thể làm khối việc đấy! Ví dụ như có lần VuNgoc cắc cớ hỏi rằng làm thế nào tính dc có bao nhiêu ngày CN giữa 2 thời điểm? Vậy bạn làm sao? Dùng Analysis ToolPak có giãi quyết dc ko? Chắc ăn là ko rồi... ha.. ha.. Vả lại như tôi nói ở trên, công thức này dùng trong trường hợp máy bạn chưa cài Add-Ins.. Bạn hiểu ko?
ANH TUẤN
 
Lần chỉnh sửa cuối:
làm sau tính được số ngày vào ngành để biết tính lương
vd: tới 3 năm thì tăng lương một lần,nếu mình vào ngày là ngày 1/9/2004 đến ngày 10/9/2007 thì tăng lương lúc đó công thức làm sau tính được số năm lẻ mấy ngày các bạn nhé
 
ongtrungducmx25 đã viết:
làm sau tính được số ngày vào ngành để biết tính lương
vd: tới 3 năm thì tăng lương một lần,nếu mình vào ngày là ngày 1/9/2004 đến ngày 10/9/2007 thì tăng lương lúc đó công thức làm sau tính được số năm lẻ mấy ngày các bạn nhé
Trên 4R có nhiều Ex về Datedif(), bạn nghiên cứu thử.
 
anhtuan1066 đã viết:
Làm gì mà dài thế... hi.. hi...
Vả lại như tôi nói ở trên, công thức này dùng trong trường hợp máy bạn chưa cài Add-Ins.. Bạn hiểu ko?
ANH TUẤN
Hiểu!
ý tôi là chọn ngắn thì phải cài add in, chọn dài thì chịu rủi ro là gõ sai. Gõ sai thì ai cũng có thể bị, nhưng mình phải hạn chế rủi ro chứ. Cho nên mình thường chọn ngắn và đơn giản. Nếu phải cài add in thì cài add in! Cài từ đĩa cứng ấy mà, cài nhanh thôi.

Tức là:
Y-X+1-INT((Y-X-WEEKDAY(Y-5,2)+8)/7)-INT((Y-X-WEEKDAY(Y-6,2)+8)/7)
vẫn còn dài.
 
Ý là bạn ấy cài AddIns từ MS Office mà.
=B2-A2+1-INT((B2-A2-WEEKDAY(B2-5,2)+8)/7)-INT((B2-A2-WEEKDAY(B2-6,2)+8)/7)
là 73 ký tự. Vậy ngắn hơn một chút
=SUMPRODUCT((WEEKDAY(ROW(INDIRECT("A"&$A$2&":A"&$B$2)),2)<6)*1) là 63 ký tự.
 
BNTT đã viết:
Các bác vui nhỉ, chủ đề của box này là Làm sao để tính số ngày làm việc trong một khoảng thời gian? mà các bác lại đi cãi nhau om sòm về cái chuyện gì ấy...
Đơn giản là vì bài toán này có liên quan đến Add-Ins Analysis Toolpak... Ko có nó lấy đâu mà dùng hàm NETWORKDAY... đúng ko?
Vấn đề ở đây là nếu máy chưa cài Add-Ins này thì phải làm thế nào? Theo ý bác? Có cần phải có đĩa CD ko?
 
anhtuan1066 đã viết:
Trời ơi.... Có ai hiểu.. ai.. đang.. nói.. cái.. gì.. ko?

Tôi khẳng định 100% rằng muốn có dc Analysis Toolpak thì bắt buộc bạn phải có đĩa Office, còn ko nữa thì chí ít bộ đĩa Office ấy cũng đã dc chép sẳn vào máy tính của bạn rồi.. Nếu ko sẽ ko đời nào cài dc
ANH TUẤN

Tớ thấy cần nói rõ lại những gì tớ đã viết. Khổ quá, tại tớ có tật nói ít muốn người khác hiểu nhiều ấy mà.
1 la mã:
1. chọn ngắn: là chọn dùng hàm networkday, phải cài add in, phải có đĩa Office hoặc chép sẵn vào đĩa cứng nhhư tớ đã làm
2. Chọn dài: là chọn dùng hàm Int và weekday, phải chấp nhận rủi ro gõ sai và gõ thiếu. Mức rủi ro đối với người khác là nhỏ nhưng với tớ là 50%.

Vì vậy riêng tớ chọn ngắn và đơn giản.

2 la mã:
Vì tớ biết chọn ngắn phải cài add in và sẽ bị yêu cầu đưa đĩa vào, và vì nhiếu lý do khác thí dụ Ofice bị lỗi, hư, muốn thêm, bớt không chỉ Excel mà còn Word, Access, Publisher, Visio, tớ đành chép luôn source Ofice vào máy. ( cả source Window!). Không phải tớ khoe mà muốn chia sẻ với những ai cài đăt Office typical với 1 số chọn lựa install for first use.

Lần sau mỗi khi viết bài tớ sẽ cố gắng viết rõ nghĩa hơn. Cám ơn ThuNghi đã hiểu tớ từ đầu.
 
SoiBien đã viết:
Bạn sử dụng hàm NETWORKDAYS(startdate,endate,holidays)

muốn sử dụng hàm này bạn phải cài addins Analysis Toolpak.

holidays là tham số tùy chọn, nếu muốn tính ngày lễ nào thì bạn, nhập vào, hàm sẽ tự trử ngày đó ra.

VD: networkdays("1/11","1/11") = 0
networkdays("13/11","20/11")=5
networkdays("13/11","20/11","19/11")=4

Thân.

P/s để cài Analysis Toolpak bạn phải có đĩa source của bộ office bạn đang sử dụng (cứ gõ đại vào, nếu báo lỗi #name thì là chưa có).
Đã chạy đựoc rồi bác SoiBien ơi. Thank bác nhiều, bác tài wá.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Tiện đây tớ hỏi thêm là trong trường hợp có ngày nghỉ Tết thì có cách nào tính số ngày làm việc một cách tự động không?
 
Tiện đây hỏi thêm là trong trường hợp có ngày nghỉ Tết thì có cách nào tính số ngày làm việc một cách tự động không?
Năm tời lại có ngày dỗ tổ nữa;
Mình nghỉ nếu bạn muốn vẫn có lối thoát:
Nghiên cứu cái này trước: http://www.informatik.uni-leipzig.de/~duc/amlich/
Nếu cho rằng nó rất chi là khoa học & luôn chuẩn xác thì hoặc
* Nhờ hẵn tác giả viết tiếp cho hàm WEEKDAYAmLich() để bạn xài!
* Tự học & viết hàm nêu trên;
* Nhờ hay thuê, theo kiều:
Mã:
[SIZE="3"][B][I]
                                                           Không có việc gì khó;
                                                   Chỉ sợ túi không tiền;
                                 Đào núi & lấp biển;
                    Không làm được thì thuê![/I][/B][/SIZE]
 
vinhtq đã viết:
Tiện đây tớ hỏi thêm là trong trường hợp có ngày nghỉ Tết thì có cách nào tính số ngày làm việc một cách tự động không?

tham số holidays đó bạn. nhưng sẽ phải tra Calendar xem ngày tết đó là ngày nào. VD năm 2007, tết ta (30, 1, 2, 3) rơi vào các ngày 16, 17, 18, 19 tháng 2. vậy để tính số ngày làm việc trong tháng 2 bạn phải nhập công thức như thế này

=Networkdays("1/2/07","28/2/07",{"16/2","17/2","18/2","19/2"}) = 18 ngày

Hix, hàm này không tính bà con nghỉ bù (vì ngày 18 là CN, bà con được nghỉ bù ngày 20, đành phải thêm vào trong list luôn bạn àh, hoặc thay ngày 18 = 21, 17 = 20)

=Networkdays("1/2/07","28/2/07",{"16/2","21/2","20/2","19/2"}) = 16 ngày


thân.
 
Cám ơn ANH TUẤn rất nhiều, vì mình đang cần những công thức này này. nhưng xài mà không hiểu thì rất khó chịu vậy bạn có thể giải thích cụ thể thêm những công thức bên dưới không? mình mới tập tành xài excel nên không hiểu lắm
Cám ơn bạn nhiều
anhtuan1066 đã viết:
Trong trường hợp ko thể cài Analysis Toolpak do nhiều yếu tố khách quan thì vẫn có thể dùng công thức thường dc đấy... Tôi giới thiệu với các bạn 1 công thức tương đối tổng quát:
-Tính số ngày thứ hai: =INT((Y-X-WEEKDAY(Y,2)+8)/7)
-Tính số ngày thứ ba: =INT((Y-X-WEEKDAY(Y-1,2)+8)/7)
-Tính số ngày thứ tư: =INT((Y-X-WEEKDAY(Y-2,2)+8)/7)
-Tính số ngày thứ năm: =INT((Y-X-WEEKDAY(Y-3,2)+8)/7)
-Tính số ngày thứ sáu: =INT((Y-X-WEEKDAY(Y-4,2)+8)/7)
-Tính số ngày thứ bảy: =INT((Y-X-WEEKDAY(Y-5,2)+8)/7)
-Tính số ngày chủ nhật: =INT((Y-X-WEEKDAY(Y-6,2)+8)/7)
Với X là điểm bắt đầu, Y là điểm kết thúc...

Từ đây là có thể tính số ngày làm việc như bạn vừa nói rồi chứ gì! hi... hi...
ANH TUẤN
 
Web KT

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

Back
Top Bottom