Tính ngày sau 1 khoảng thời gian không kể chủ nhật (1 người xem)

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

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

Linhvoi

Thành viên mới
Tham gia
23/5/09
Bài viết
16
Được thích
2
Nghề nghiệp
admin
Câu hỏi của tớ là: vi du: từ ngày 1/4/2009 thì sau 22 ngày nữa sẽ là ngày tháng năm nào? nhớ là không tính chủ nhật.
rất mong moịi người giúp tớ, tớ đã cố làm rồi mà ko làm đc.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Câu hỏi của tớ là: vi du: từ ngày 1/4/2009 thì sau 22 ngày nữa sẽ là ngày tháng năm nào? nhớ là không tính chủ nhật.
rất mong moịi người giúp tớ, tớ đã cố làm rồi mà ko làm đc.
Bạn cho hỏi: Ngoài Chủ nhật ra thì có trừ ngày nghỉ lễ không?
 
Câu hỏi của tớ là: vi du: từ ngày 1/4/2009 thì sau 22 ngày nữa sẽ là ngày tháng năm nào? nhớ là không tính chủ nhật.
rất mong moịi người giúp tớ, tớ đã cố làm rồi mà ko làm đc.
Mình viết theo đúng như yêu cầu của bạn, các ngày nghỉ lễ không tính đến.
PHP:
Function DateAdd(CurDate As Date, Days As Long) As Date
Do
CurDate = CurDate + 1
If Weekday(CurDate) <> 1 Then Days = Days - 1
Loop While Days > 0
DateAdd = CurDate
End Function
 

File đính kèm

Câu hỏi của tớ là: vi du: từ ngày 1/4/2009 thì sau 22 ngày nữa sẽ là ngày tháng năm nào? nhớ là không tính chủ nhật.
rất mong moịi người giúp tớ, tớ đã cố làm rồi mà ko làm đc.


Mình nghĩ lấy ngày 1/4/2009 + 22

Sau đó xem trong mảng từ ngày 1/4/2009 thêm 22 ngày nữa có bao nhiêu ngày chủ nhật nữa rồi cộng vào trên!

Cách giải của mình như trên không biết có hợp lý không?

Mong mọi người cho ý kiến!

BB! ;;;;;;;;;;;
 
Mình nghĩ lấy ngày 1/4/2009 + 22

Sau đó xem trong mảng từ ngày 1/4/2009 thêm 22 ngày nữa có bao nhiêu ngày chủ nhật nữa rồi cộng vào trên!

Cách giải của mình như trên không biết có hợp lý không?

Mong mọi người cho ý kiến!

BB! ;;;;;;;;;;;

Sai, vì nếu bạn lấy khoảng thời gian "1/4/2009 + 22" để đếm số ngày chủ nhật rồi công thêm vào thì coi như bạn đã bỏ sót 1 ngày chủ nhật 26/04/2009. Và kết quả sai sẽ là 23/04/2009 thay vì 27/04/2009
 
Mình nghĩ lấy ngày 1/4/2009 + 22

Sau đó xem trong mảng từ ngày 1/4/2009 thêm 22 ngày nữa có bao nhiêu ngày chủ nhật nữa rồi cộng vào trên!

Cách giải của mình như trên không biết có hợp lý không?

Mong mọi người cho ý kiến!

BB! ;;;;;;;;;;;
Không đơn giản thế đâu!
Ví dụ:
- Ngày 4 tháng 4 năm 2009 là ngày thứ 7
- Cho thời gian trôi qua là 7 ngày
- Vậy theo ý bạn, khi cộng thêm 7 ngày ta sẽ ra kết quả = 11/04/2009 (cũng là ngày thứ 7)
- Và cũng theo cách của bạn, giửa 2 ngày này có 1 ngày CN, ta cộng thêm vào kết quả, nó ra ngày 12/04/2009 ---> Ngày này là CN nha!
------------------
Nói thêm: Bài này dùng công thức hay VBA đều không khó, quan trọng phải làm rõ mấy vấn đề sau:
- Tổng số ngày là có bao gồm ngày bắt đầu hay không?
- Ngoài việc loại trừ CN còn loại trừ thêm gì không? Chẳng hạn là NGÀY NGHỈ LỄ
 
Cách của mình là:

Lấy số ngày cần cộng thêm chia cho 7 được bao nhiêu thì đó là số ngày chủ nhật cần cộng thêm. Sau đó xem ngày bắt đầu là thứ mấy rồi cộng thêm phần dư của phép chia ở trên, nếu phần dư cộng thứ của ngày bắt đầu lớn hơn hoặc bằng 7 thì sẽ cộng thêm số ngày dư cộng 1 ngày nữa, còn không thì cộng số ngày dư thôi.

Ví dụ ô A1 là ngày bắt đầu, ô B1 là ngày số cần cộng thêm thì công thức sẽ là:
=IF(WEEKDAY(A1)+MOD(B1,7)>=7,MOD(B1,7)+1,MOD(B1,7))+B1+INT(B1/7)+A1
Và nếu A1=04/04/2009 B1=22 thì kết quả là 01/05/2009

Theo công thức trên, giả thiết của
Không đơn giản thế đâu!
Ví dụ:
- Ngày 4 tháng 4 năm 2009 là ngày thứ 7
- Cho thời gian trôi qua là 7 ngày
- Vậy theo ý bạn, khi cộng thêm 7 ngày ta sẽ ra kết quả = 11/04/2009 (cũng là ngày thứ 7)
- Và cũng theo cách của bạn, giửa 2 ngày này có 1 ngày CN, ta cộng thêm vào kết quả, nó ra ngày 12/04/2009 ---> Ngày này là CN nha!
Kết quả là ngày 13/04/2009
 
Lần chỉnh sửa cuối:
vo cung cam on cac ban da giup to, to di lam ca ngay gio moi xem dc cac y kien dong gop cua cac ban, y cua to la :
4/1/2009 sau 22 ngày nữa ko tính chủ nhật thì là ngày nào, va các bạn ko cần quan tâm tới ngày nghỉ, lễ, và tính bắt đàu từ 4/1/2009 các bạn ạ.

va mình xin nói thêm là, kết quả đúng là rơi vào 4/25/2009(theo excel thì là tháng rồi đến ngày, nên ở đây là ngày 1 tháng 4 năm 2009 sau 22 ngày, ko kể chủ nhật(đếm cả thứ 7) thì sẽ là ngày bao nhiêu? kết quả mình tính thủ công là ngày 25 thãng năm 2009 các bạn ạ/ các bạn giup mình với nhé. neu thành công mình sẽ hậu tạ

cach cua bạn hoangdanh28vn minh da lam thu roi ma ko dc, no bao loi #name ban a

-------------------
Bạn lưu ý : bài không dấu sẽ bị xoá
 
Chỉnh sửa lần cuối bởi điều hành viên:
Cach cua ban solomon2211 ko dung voi tat ca cac ngay dau, vi minh da thu voi ngay khac nhung ket qua ko dung . Cac ban nghi lai xem co cach nao giup minh ko?thanhks

Bạn thử công thức này, trường hợp ngày bắt đầu là chủ nhật vẫn đúng:
=IF(WEEKDAY(A1)+MOD(IF(B1>7,B1,0),7)>=7,MOD(IF(B1>7,B1,0),7)+1,MOD(IF(B1>7,B1,0),7))+B1+INT(B1/7)+A1

Kết quả đúng là 27/04/2009 mà. Bạn đếm lại xem.
 
Chỉnh sửa lần cuối bởi điều hành viên:
chào cả nhà, tớ là thành viên mới, tớ có vấn đề khúc mắc sau muốn thỉnh giáo ý kiến của tất cả mọi người, mong mọi người giúp tớ, tớ sẽ hậu tạ bạn nào giúp tớ giải quyết đc vấn đề này |||||. câu hỏi của tới như sau:
bắt đầu từ nggày 5 tháng 5 năm 2009 thì sau 22 nggày ( kô đếm chủ nhật, ko quan tâm tới ngày nghỉ lễ, và nhớ vẫn đếm thứ bảy bình thường) thì ngày sau 22 ngày đó là ngày nào?và theo cách tính thủ công của tớ đó là ngày 29 tháng 5 năm 2009.
chân thành cảm ơn các bạn trước nhé//**/

bạn solomon ơi, tớ thử với ngày khác lại ko đúng bạn ạ.

toứ ví dụ thếm nhé, từ ngày 12 tháng 5 năm 2009 sau 17 ngày nữa thì theo tính cách bạn sẽ là ngày 3 tháng 6 năm 2009. thực tế lại là ngỳ 30 tháng 5 năm 2009 mà

Tớ đã chhạy thử công thức mới của bạn rồi salomon ạ, nhưng nó lại báo lỗi #name? Bạn ạ?
 
Chỉnh sửa lần cuối bởi điều hành viên:
toứ ví dụ thếm nhé, từ ngày 12 tháng 5 năm 2009 sau 17 ngày nữa thì theo tính cách bạn sẽ là ngày 3 tháng 6 năm 2009. thực tế lại là ngỳ 30 tháng 5 năm 2009 mà

Bạn giải thích cách tính này đi, từ đó mới có thể có công thức đúng được. 17 ngày sau có tính ngày 12 tháng 5 không vậy?
 
Tớ đã chhạy thử công thức mới của bạn rồi salomon ạ, nhưng nó lại báo lỗi #name? Bạn ạ?
Sau khi xem trao đổi giữa bạn với anh solomon tôi cũng chưa hỉu lắm về ý đồ của bạn.Tuy nhiên tôi cũng đưa ra cho bạn cách thế này cho bạn tham khảo nhé!Chúc thành công!
 

File đính kèm

thanks Logica nhiều lắm, nhưng với ngày khác mình áp dụng lại ko đúng bạn ạ, ví dụ từ ngày 30 tháng 5 sau 14 ngày nữa thì đúng ra là ngày 15 tháng 6 thì chạy theo cách của bạn lại ra 14 thnág 6. và ngày 14 tháng sau rơi vào chủ nhật, hình như nó ko bỏ chủ nhật này thì pải.
 
Đổi món tí đi vậy: Thử với hàm người dùng như sau

PHP:
Option Explicit
Function WorkingDayS(Num As Integer, Optional Dat As Date) As Date
 If Dat = 0 Then Dat = Date
 Dim Jj As Integer
 Do
   If Weekday(Dat) > 1 Then
      Jj = Jj + 1
   End If
   If Jj = Num Then Exit Do
   Dat = Dat + 1
 Loop
 WorkingDayS = Dat
End Function
| Ngay | SoLg | Hàm trả về |(Cú pháp)
|5/5/2009|22|5/29/2009| =WorkingDayS(C2,B2)
|5/12/2009|17|5/30/2009| }}}}} ;;;;;;;;;;; --=0
|5/30/2009|14|6/15/2009| =WorkingDayS(C4,B4)
 
Theo cách tính của bạn kết quả đúng là 25/04/2009!

Bạn xem lại kết quả thử xem bắt đầu từ ngày 01/04/2009 sau 22 ngày nữa là ngày 23/04/2009 trong quảng thời gian trên có 3 ngày chủ nhật ra 26/04/2009 nhưng ngày 26/04/2009 lại là chủ nhật nên kết quả đúng lại là 27/04/2009 (không kể chủ nhật)+-+-+-++-+-+-+

BB!--=--

-------------------
Bạn lưu ý : bài không dấu sẽ bị xoá
[/quote]
 
Theo cách tính của bạn kết quả đúng là 25/04/2009!

Bạn xem lại kết quả thử xem bắt đầu từ ngày 01/04/2009 sau 22 ngày nữa là ngày 23/04/2009 trong quảng thời gian trên có 3 ngày chủ nhật ra 26/04/2009 nhưng ngày 26/04/2009 lại là chủ nhật nên kết quả đúng lại là 27/04/2009 (không kể chủ nhật)+-+-+-++-+-+-+

BB!--=--

-------------------

Vậy công thức này đúng mà, với A1 là ngày bắt đầu, B1 là số ngày cộng thêm.

=IF(WEEKDAY(A1)+MOD(IF(B1>7,B1,0),7)>=7,MOD(IF(B1> 7,B1,0),7)+1,MOD(IF(B1>7,B1,0),7))+B1+INT(B1/7)+A1

 
Gửi bạn Linhvoi cách tính của tôi
Bài toán này tôi đã tính toán cách đây khá lâu và khó hơn: Tính ngày đi làm sau 1 khoảng thời gian, bỏ qua CN và các ngày lể... Bây giờ bạn chỉ bỏ qua CN, không bỏ qua các ngày lể thì.. càng dể
Xem file nhé (file có dùng name để làm gọn công thức)
 

File đính kèm

Lần chỉnh sửa cuối:
cảm ơn bạn Ndu nhé, nhưng bạn có thể giải thích rõ các hàm và cách làm cuả bạn ko? hình như bạn đã dấu bớt công thức rồi nên khi thử lam mình luôn bị bào lỗi, mong bạn giúp thig giup tỉ mỉ một chút%#^#$tớ hứa sẽ hậu tạ bạn nếu tớ làm đc hàm này/-*+/

solomon oi, công thức naỳ của bạn không đúng với tất cả các ngày , tớ đã thử rồi mà, bạn thử tham khảo cách dùng của Ndu ở trang thứ 3 xem sao? ban ấy dùng hàm Index, và có lẽ bạn ấy đã dấu bớt công thức đi nên tớ ko hiểu rõ lắm, nếu bạn có thể giải thích và lam no cụ thể hay hoàn chỉnh thì giúp tớ nhe, tớ đã thử rồi mà không được
 
Chỉnh sửa lần cuối bởi điều hành viên:
cảm ơn bạn Ndu nhé, nhưng bạn có thể giải thích rõ các hàm và cách làm cuả bạn ko? hình như bạn đã dấu bớt công thức rồi nên khi thử lam mình luôn bị bào lỗi, mong bạn giúp thig giup tỉ mỉ một chút%#^#$tớ hứa sẽ hậu tạ bạn nếu tớ làm đc hàm này/-*+/
Bạn mở file của tôi lên, vào menu Insert\Name\Define sẽ thấy 2 công thức phụ nằm trong đó
Đương nhiên nếu làm trên file thật mà bạn không mang 2 công thức phụ này theo thì nó sẽ báo lổi!
Nếu bạn áp dụng vào file mình không được, có thể gửi file lên đây, tôi giúp cho!
 
gui bạn NDU

Bạn Ndu ơi, Linh đã làm theo hướng dẫn của bạn rồi mà vẫn không được, nó vẫn báo lỗi, bạn xem lại mình đã làm sai chỗ nào và giúp ,mình nhé,cảm ơn bạn rất nhiều. híc...
 

File đính kèm

Bạn Ndu ơi, Linh đã làm theo hướng dẫn của bạn rồi mà vẫn không được, nó vẫn báo lỗi, bạn xem lại mình đã làm sai chỗ nào và giúp ,mình nhé,cảm ơn bạn rất nhiều. híc...
Bạn sai 2 chổ:
- Ngày tháng bạn gõ vào G6 thật chất không phải là dạng DATE (nó chỉ là TEXT) ---> Không tin bạn cứ kiểm tra bằng hàm =ISTEXT(G6)... nó cho kết quả =TRUE
- Công thức thì sai 2 chổ:
- Vì đây là công thức mãng nên sau khi gõ xong phải Ctrl + Shift + Enter (chứ không thể Enter)
- Sai tham chiếu: Giá trị nhập nằm ở cell G6 và H6, vậy đương nhiên công thức phải tham chiếu đến 2 cell này chứ (bạn cho tham chiếu đi đến tận đâu, J26 và K26 là thế nào)
Tôi sửa lại cho bạn rồi đấy
 

File đính kèm

ND yeu quy, khi tớ nháp và tính theo cách của bạn thì nó hoàn toàn đúng, nhưng khi tớ làm trưcj tiếp vao file của mình thì nó ko chạy, bạn xem giúp tớ lại lần nữa đc ko? chân thành cảm ơn và cũng xin lỗi vì đã làm phiền bạn nhiều như vậy
 

File đính kèm

ND yeu quy, khi tớ nháp và tính theo cách của bạn thì nó hoàn toàn đúng, nhưng khi tớ làm trưcj tiếp vao file của mình thì nó ko chạy, bạn xem giúp tớ lại lần nữa đc ko? chân thành cảm ơn và cũng xin lỗi vì đã làm phiền bạn nhiều như vậy
Không chạy nghĩa là sao? Tôi thử thấy bình thường mà bạn!
Lưu ý: Sao khi ra kết quả, nếu bạn thấy nó không phải dạng dd/mm/yyyy mà là 1 số nào đó lạ hoắc (chẳng hạn =39972) thì cứ yên tâm... Vào menu Format\Cells, chọn mục Custom và gõ vào khung Type: dd/mm/yyyy là xong!
---------------
Thêm nữa: Tuy bạn nhìn thấy công thức có 2 dấu {} ở đầu và cuối, nhưng khi gõ thì bạn không được cho 2 dấu này vào... cứ gõ bình thường, sau khi bạn Ctrl + Shift + Enter thì 2 dấu {} tự thân nó sẽ xuất hiện (bạn gõ dấu {} vào là nó cóc chạy đâu)
Xem file
 

File đính kèm

Lần chỉnh sửa cuối:
dung roi Du a, hi hi tớ ngốc thật đấy, tớ ko có kiến thức chuyên sâu về Excel cho lắm nên nó mới tệ hại như thế đấy. tớ cũng tim đọc về hàm index và tìm hiểu nguyên do cách bạn làm, vì sao lại làm như thế...nhưng-+*/ tớ hoa hết cả mắt.... nếu bạn có thể giải thích tỉ mẩn cho tớ về cách bạn làm được thì tốt quá, nhưng nếu không được thì ko sao đâu, dù sao tớ vô cùng cảm ơn bạn. nếu có thể làm gì cụ thể hơn việc cảm ơn tất cả các thành viên đã góp ý cho tớ lần này như bạn muốn và như tớ đã làm rồi ..... tớ sẽ làm ngay--=0
 
dung roi Du a, hi hi tớ ngốc thật đấy, tớ ko có kiến thức chuyên sâu về Excel cho lắm nên nó mới tệ hại như thế đấy. tớ cũng tim đọc về hàm index và tìm hiểu nguyên do cách bạn làm, vì sao lại làm như thế...nhưng tớ hoa hết cả mắt.... nếu bạn có thể giải thích tỉ mẩn cho tớ về cách bạn làm được thì tốt quá, nhưng nếu không được thì ko sao đâu, dù sao tớ vô cùng cảm ơn bạn. nếu có thể làm gì cụ thể hơn việc cảm ơn tất cả các thành viên đã góp ý cho tớ lần này như bạn muốn và như tớ đã làm rồi ..... tớ sẽ làm ngay
Trong công thức này chỉ rắc rối có 1 chổ: ROW(INDIRECT(.....) mà thôi...
Bạn có thể thuộc lòng luôn đoạn code này, nó có tác dụng tạo ra 1 cột số thứ tự
Cú pháp
=ROW(INDIRECT("1:"& x))
với x là 1 số nguyên dương nào đó
ví dụ bạn thí nghiệm gõ công thức này vào 1 cell nào đó:
=ROW(INDIRECT("1:&10))
Enter công thức xong, bạn bôi đen công thức trên thanh Formula rồi bấm F9, bạn sẽ thấy kết quả ={1;2;3;4;5;6;7;8;9;10}
Thay số 10 trong công thức bằng số 7 (chẳng hạn) rồi cũng làm thao tác trên, bạn thấy kết quả ={1;2;3;4;5;6;7}
Thí nghiệm tiếp:
- Gõ vào cell A1 số 10
- Gõ vào cell B1 công thức:
=ROW(INDIRECT("1:"&A1))
ta cũng được kết quả tương đương với công thức =ROW(INDIRECT("1:&10))
----------------
Quay trở lại công thức trong file:
INDEX(D4-1+ROW(INDIRECT("1:"&I4*2))......
Ta xét đoạn D4-1+ROW(INDIRECT("1:"&I4*2))
- Với D4Start Day, thì D4-1 nghĩa là Start Day trử bớt 1 sẽ là ngày hôm trước (đúng không)
- Từ ngày hôm trước ấy, lần lượt cộng cho dảy số thứ tự {1;2;3;.... } (đã được tạo từ công thức ROW(INDIRECT(....) ---> Ta thu được 1 chuổi gồm các ngày liên tiếp cách nhau 1 đơn vị (1 ngày)
Phù..... Tới đây đã được nữa đường ---> Bạn tự mình suy luận tiếp đi
Lưu ý: Hãy cắt công thức ra từng đoạn nhỏ mà.. suy luận... Làm 1 nhát dài thòng lòng có mà.. đói luôn ---> Giống như cách tôi đặt Name ở bài đầu, mục đích là cắt công thức ra nhiều phần cho tiện theo dỏi (chứ chẳng phải "bí hiểm" gì như 1 số bạn đã nghĩ)
 
HI, Thanks kiu Du, tớ lại tiếp tục làm piền bạn nhé, một chút nữa thôi, tớ ví dụ thế này, trong khoảng thời gian 5/5/2009 tới 5/29/2009 sẽ có bao nhiêu chủ nhật? tớ dùng hàm công thức như sau: =INT(("5/29/2009"-"5/5/2009"-WEEKDAY("5/29/2009"-6,2)+8)/7) SẼ RA được ngày số ngày CN trong khoảng này là 4 ngày. nhưng khi tớ làm tương tu trong file tó gửi kèm bạn đây lại ko đc. tớ ko biết vì sao cả. bạn xem giúp tớ với
 

File đính kèm

HI, Thanks kiu Du, tớ lại tiếp tục làm piền bạn nhé, một chút nữa thôi, tớ ví dụ thế này, trong khoảng thời gian 5/5/2009 tới 5/29/2009 sẽ có bao nhiêu chủ nhật? tớ dùng hàm công thức như sau: =INT(("5/29/2009"-"5/5/2009"-WEEKDAY("5/29/2009"-6,2)+8)/7) SẼ RA được ngày số ngày CN trong khoảng này là 4 ngày. nhưng khi tớ làm tương tu trong file tó gửi kèm bạn đây lại ko đc. tớ ko biết vì sao cả. bạn xem giúp tớ với
Công thức đúng cả, nhưng nó không ra kết quả là vì cell L4 cũng bạn đang Format dạng text
Sửa lại:
- Click phải vào L4, chọn Format Cells
- Nhấp chọn mục General rồi bấm OK
- Giờ chọn vào cell L4, bấm F2 rồi Enter 1 nhát xem thế nào nhé
(không biết thì phải hỏi.. có gì mà phiền chứ)
 

File đính kèm

Lần chỉnh sửa cuối:
và giờ tớ lại hỏi tiếp Du nhé, tớ ví dụ thế này. từ ngày 5/21/2009 sau 17 ngày nữa là ngày nào? lần này đếm liên tiếp, kô bỏ CN và T7, nhưng nếu ngày cuối cùng tức ngày 6/6/2009 mà rơi vào t7 sẽ bỏ qua t7 và CN tính vào ngày t2 tức là đếm luôn ngày thích hợp ở đây là 6/8/2009 thì pải làm thế nào? tớ đang lập bảng tính phép cho công nhân, vì nếu ngày trả phép của họ rơi vào t7 hoặc chủ nhật hay các ngày lễ thì ngày đó bọn tớ ko đi làm nên sẽ hẹn họ vào t2 hoặc ngày tiếp theo, bạn có thể giúp tớ cái này ko
 
và giờ tớ lại hỏi tiếp Du nhé, tớ ví dụ thế này. từ ngày 5/21/2009 sau 17 ngày nữa là ngày nào? lần này đếm liên tiếp, kô bỏ CN và T7, nhưng nếu ngày cuối cùng tức ngày 6/6/2009 mà rơi vào t7 sẽ bỏ qua t7 và CN tính vào ngày t2 tức là đếm luôn ngày thích hợp ở đây là 6/8/2009 thì pải làm thế nào? tớ đang lập bảng tính phép cho công nhân, vì nếu ngày trả phép của họ rơi vào t7 hoặc chủ nhật hay các ngày lễ thì ngày đó bọn tớ ko đi làm nên sẽ hẹn họ vào t2 hoặc ngày tiếp theo, bạn có thể giúp tớ cái này ko
Trước hết, cho tôi hỏi tí: Hôm nay là ngày 31/5, thì theo bạn, "sau 1 ngày nữa" là ngày mấy? Ngày 01/6 hay vẫn là ngày 31/5?
Nếu bạn trả lời câu hỏi trên đây là ngày 01/6, thì "sau 17 ngày nữa" của bạn (tính từ ngày 21/5) phải là ngày 07/6 chứ không phải là ngày 06/6.
Bởi vì, nếu "sau 1 ngày" tức lấy ngày 31/5 cộng thêm 1, ra ngày 01/6, thì "sau 17 ngày" phải lấy ngày 21/5 cộng thêm 17...

Hỏi cho vui, nhưng thật sự tôi muốn nói rằng, cho dù là ví dụ, bạn cũng nên cho một đáp số chính xác, thì mới dễ dàng trả lời. Thôi, trả lời cho bạn đây:

Dùng Excel, nếu chỉ cần cộng thêm bao nhiêu ngày mà không trừ ngày nào hết, thì bạn chỉ việc lấy ngày đó cộng thêm số ngày muốn thêm.

Nếu muốn xét ngày kết quả có rơi vào thứ Bảy hay Chủ Nhật hay không, thì dùng hàm WEEKDAY, với tham số thứ hai là 2. Khi dùng tham số thứ hai là 2, Excel sẽ đặt ngày thứ Hai là 1, thứ Ba là 2... thứ Bảy là 6 và Chủ Nhật là 7, thích hợp với câu hỏi của bạn. Và chúng ta sẽ gán cho cái WEEKDAY này một điều kiện, nếu WEEKDAY của ngày kết quả mà lớn hơn 5 (nghĩa là lớn hơn thứ Sáu), thì cộng thêm 2 ngày nữa (để buộc kết quả phải rơi vào ngày thứ Hai tiếp theo).

Giả sử ngày bắt đầu của bạn ở ô A1, số ngày cần cộng thêm ở ô B1, và ngày chứa kết quả ở ô C1, thì bạn dùng công thức này ở ô C1:
=A1+B1+IF(WEEKDAY(A1+B1,2)>5,2,0)​
Hoặc có thể dùng biểu thức này, không cần IF:
=A1+B1+(WEEKDAY(A1+B1,2)>5)*2​
 
Giả sử ngày bắt đầu của bạn ở ô A1, số ngày cần cộng thêm ở ô B1, và ngày chứa kết quả ở ô C1, thì bạn dùng công thức này ở ô C1:
=A1+B1+IF(WEEKDAY(A1+B1,2)>5,2,0)​
Hoặc có thể dùng biểu thức này, không cần IF:
=A1+B1+(WEEKDAY(A1+B1,2)>5)*2​
Không chính xác à nha!
Nếu ngày cuối rơi vào ngày thứ bảy, ta cộng thêm 2
Nếu ngày cuối rơi vào ngày chủ nhật, ta cộng thêm 1

Ở đây bạn BNTT thêm 2 tất tần tật là không chính xác đâu
Nếu dùng IF thì phải thế này:
PHP:
=A1+B1+IF(WEEKDAY(A1+B1)=1,1,IF(WEEKDAY(A1+B1)=7,2,0))
Nhưng theo bạn Linhvoi đã nói ngay từ đầu, việc "đếm số ngày" là có tính luôn ngày bắt đầu, vì thế công thức trên được sửa lại như sau:
PHP:
=A1+B1-1+IF(WEEKDAY(A1+B1-1)=1,1,IF(WEEKDAY(A1+B1-1)=7,2,0))
 
du oi, ở đây bạn làm nó chỉ mới nhảy ngày nếu là chủ nhậ hoặc thứ bẩy thôi pải ko? tớ muốn nó sẽ nhảy ngày nêu rơi vào các ngày nghỉ lễ nữa cơ. ví dụ nếu rơi vào nghỉ lễ 1/5, 30/4, 2/9, 10/3(âm lịch) tết nguyên đán, tết dương lịch nó cũng sẽ nhảy. bạn có cách nào làm đc ko?

đây là file mẫu mình gưỉư cho bạn.
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
đây là file mẫu mình gưỉư cho bạn.
Nó đây!
Trong file có dùng đến 1 name (FDay)
Nếu bạn không thích, có thể copy công thức trong Name FDay và Paste vào công thức của bạn! Tuy nhiên nếu làm thế thì công thức sẽ rất dài
 

File đính kèm

1/29/2009 1/30/2009 1/31/2009 2/1/2009 2/2/2009 2/3/2009 du ah, sao trong ngay nghi le lai co cac ngay nay???to ko hieu cai nay lam
Tôi đâu có biết... bạn liệt kê ngày nào thì tôi ghi cả vào đó
Bạn ghi thế này đây:
1/1/2009-(tết tây-rơi vào thứ 5)
25,26,27,28/1/2009(tết nguyên đán-30,1,2,3/1/2009-rơi vào thứ cn,t2,t3,t4)
4/4/2009(giỗ tổ hùng vương-10/3)
30/4/2009(rơi v ào t5)
1/5/2009((rơi vào t6)
2/9/2009(rơi vào t2)
Ngày nào không đúng thì xóa đi... Dể mà
(mấy ngày nghỉ lể ấy chỉ gõ bằng tay vào thôi)
 
Gui Du

đây là file tớ gửi kèm với câu hỏi tớ gửi theo timn nhắn riwng cho bạn
 

File đính kèm

Xin nhắc bạn.

đây là file tớ gửi kèm với câu hỏi tớ gửi theo timn nhắn riwng cho bạn

Có một số vùng miền, khi nghe xưng hô 'Tớ' sẽ tưởng người xưng là trịnh thượng, chứ không tưởng đó là sự thân mật quá trớn.

Bạn nên thận trọng vì chúng ta có tuổi tác, địa vị xã hội & có những thói quen vùng miền rất khác nhau

(Riêng mình, đã sống ngoài nớ gần 1/4 thế kỹ nhưng giờ vẫn chưa quen với cách xưng hô như vậy!):-=
Bạn hãy nghỉ đến người đọc thêm nha!

Thân ái.
 
gửi anh du

đây là file em làm theo cách anh hướng dẫn, ko rõ là sai chỗ nào, anh xem giúp em
 

File đính kèm

xin chào mọi người!
Tớ đang rối nhờ mọi người chỉ giúp:
ví dụ: cho ngày 16/8/2010 là ngày bắt đầu.
yêu cầu thực hiện:
ngày cuối=ngày đầu + 4 ( bỏ qua thứ 7, CN và ngày lễ, ngày nghĩ bù)
mong mọi người giúp cho
Xin cảm ơn!
 
xin chào mọi người!
Tớ đang rối nhờ mọi người chỉ giúp:
ví dụ: cho ngày 16/8/2010 là ngày bắt đầu.
yêu cầu thực hiện:
ngày cuối=ngày đầu + 4 ( bỏ qua thứ 7, CN và ngày lễ, ngày nghĩ bù)
mong mọi người giúp cho
Xin cảm ơn!

Bạn hỏi câu này mọi người cũng rối chứ không riêng gì bạn ...
Ngày nào được xem là ngày nghỉ bù, nghỉ lễ của bạn ?

P/s: Bạn có biết ngày nghỉ bù của tôi không????
 
Bạn hỏi câu này mọi người cũng rối chứ không riêng gì bạn ...
Ngày nào được xem là ngày nghỉ bù, nghỉ lễ của bạn ?

P/s: Bạn có biết ngày nghỉ bù của tôi không????
cảm ơn bạn đã hỏi.
ví dụ ngày nghỉ bù: 2/9 là ngày chủ nhật thì tính ngày nghỉ là thứ hai
mong các bạn chỉ giúp cho
mình đang đánh vần với excel. cảm ơn!
 
cảm ơn bạn đã hỏi.
ví dụ ngày nghỉ bù: 2/9 là ngày chủ nhật thì tính ngày nghỉ là thứ hai
mong các bạn chỉ giúp cho
mình đang đánh vần với excel. cảm ơn!
Dùng hàm WORKDAY bạn à!
Hàm này nằm trong bộ AddIn Analysis ToolPak ---> Vào menu Tools\Add-Ins và check vào mục Analysis ToolPak trước khi dùng hàm
 
Dùng hàm WORKDAY bạn à!
Hàm này nằm trong bộ AddIn Analysis ToolPak ---> Vào menu Tools\Add-Ins và check vào mục Analysis ToolPak trước khi dùng hàm
cảm ơn bạn đã giúp!
mình đã làm rồi nhưng không được ( mình mới học ).
mình có file đính kèm, mong các bạn giúp cho!
 

File đính kèm

cảm ơn bạn đã giúp!
mình đã làm rồi nhưng không được ( mình mới học ).
mình có file đính kèm, mong các bạn giúp cho!
Nhìn file của bạn tôi chẳng biết "gắn" công thức vào chổ nào cả! Nói rõ chút đi
Hơn nữa, ngày tháng trong file gì mà kỳ cục vậy? Làm sao mà tính?
 

File đính kèm

File đính kèm

Làm cho bạn bằng hàm WORKDAY đây!
Vụ nghỉ bù gì đó tôi không biết à nha!
Muốn ngày nào nghỉ, cứ liệt kê vào khu vực cột nghỉ lễ là được
thật cảm ơn bạn đã giúp!
mình mở file của bạn làm và nhập ngày nghỉ vào thì bảng tính không thực hiện được.
Bạn giúp mình lần nữa nhé.
mình gởi kèm thêm file.
 

File đính kèm

Lần chỉnh sửa cuối:
thật cảm ơn bạn đã giúp!
mình mở file của bạn làm và nhập ngày nghỉ vào thì bảng tính không thực hiện được.
Bạn giúp mình lần nữa nhé.
mình gởi kèm thêm file.
Sao lại không tính được chứ
Đã nói hàm này thuộc bộ Add-In Analysis ToolPak ---> Thế bạn đã vào menu Tools\AddIns và check vào Analysis ToolPak chưa?
Nếu đã check rồi mà vẫn chưa được, hãy check thêm mục Analysis ToolPak - VBA nhé
(File này tôi mở lên chạy bình thường)
 

File đính kèm

Lần chỉnh sửa cuối:
Sao lại không tính được chứ
Đã nói hàm này thuộc bộ Add-In Analysis ToolPak ---> Thế bạn đã vào menu Tools\AddIns và check vào Analysis ToolPak chưa?
Nếu đã check rồi mà vẫn chưa được, hãy check thêm mục Analysis ToolPak - VBA nhé
(File này tôi mở lên chạy bình thường)
mình đã làm như bạn nói rồi nhưng sao nó vẫn không được.
 
mình đã thực hiện theo những gì bạn hướng dẫn nhưng không đạt kết quả.
chắc do mình còn kém.
mong bạn quan tâm giúp mình nhé.
khi nào có dịp sẽ hậu tạ.
 
mình đã thực hiện theo những gì bạn hướng dẫn nhưng không đạt kết quả.
chắc do mình còn kém.
mong bạn quan tâm giúp mình nhé.
khi nào có dịp sẽ hậu tạ.
Ít ra bạn cũng phải mô tả chi tiết cái vụ "không đạt kết quả" này nó như thế nào chứ! Hàm báo lỗi chăng? Nếu có thì đó là lỗi gì?
 
Ít ra bạn cũng phải mô tả chi tiết cái vụ "không đạt kết quả" này nó như thế nào chứ! Hàm báo lỗi chăng? Nếu có thì đó là lỗi gì?

mình nhắc lại cách làm của mình nhé:
-download file của bạn về
-thực hiện những điều hướng dẫn của bạn
-khi check thử vào vùng ngày nghỉ thì các cột B và D mà bạn
làm công thức đều hiện lên lối #NAME?
mình cũng không hiểu vì sao?
 
mình nhắc lại cách làm của mình nhé:
-download file của bạn về
-thực hiện những điều hướng dẫn của bạn
-khi check thử vào vùng ngày nghỉ thì các cột B và D mà bạn
làm công thức đều hiện lên lối #NAME?
mình cũng không hiểu vì sao?
Đặt con trỏ chuột vào cell báo lỗi ấy, nhìn lên thanh công thức xem có gì đặc biệt không?

untitled.JPG


Mà tôi cũng không chắc là bạn đã làm đúng như hướng dẫn chưa nữa ---> Vì trước giờ chưa ai phàn nàn về lỗi này!

untitled2.JPG


có chăng là khi check vào mục Analysis ToolPak, máy tính sẽ báo 1 lỗi nào đó, bắt ta phải cho đĩa CD vào
 
Lần chỉnh sửa cuối:
mình đã làm đúng y như vậy đấy. trên thanh công thức cũng hiển thị giống như hình bạn đưa lên.
 
nó hiện lên công thức ATPVBAEN.XLA!workday($B5,4,$G$2:$G$10)
khi mình gõ lại công thức như trong hình thì nó hiện lên bảng thông báo update values: ATPVBAEN.XLA
 
nó hiện lên công thức ATPVBAEN.XLA!workday($B5,4,$G$2:$G$10)
khi mình gõ lại công thức như trong hình thì nó hiện lên bảng thông báo update values: ATPVBAEN.XLA
Bạn phải sửa lại thành workday($B5,4,$G$2:$G$10) thôi chứ (xóa hết khúc đầu đi)
Chán quá đi mất!
 
Bạn phải sửa lại thành workday($B5,4,$G$2:$G$10) thôi chứ (xóa hết khúc đầu đi)
Chán quá đi mất!
Thật cảm ơn bạn đã giúp!
mình đã làm được rồi. ( mình mới tập tành thôi mà ... bạn thông cảm nhé)
mong thời gian tới bạn giúp mình mở mang thêm kiến thức nhé.
 
Trong công thức này chỉ rắc rối có 1 chổ: ROW(INDIRECT(.....) mà thôi...
Bạn có thể thuộc lòng luôn đoạn code này, nó có tác dụng tạo ra 1 cột số thứ tự
Cú pháp
=ROW(INDIRECT("1:"& x))
với x là 1 số nguyên dương nào đó
ví dụ bạn thí nghiệm gõ công thức này vào 1 cell nào đó:
=ROW(INDIRECT("1:&10))
Enter công thức xong, bạn bôi đen công thức trên thanh Formula rồi bấm F9, bạn sẽ thấy kết quả ={1;2;3;4;5;6;7;8;9;10}
Thay số 10 trong công thức bằng số 7 (chẳng hạn) rồi cũng làm thao tác trên, bạn thấy kết quả ={1;2;3;4;5;6;7}
Thí nghiệm tiếp:
- Gõ vào cell A1 số 10
- Gõ vào cell B1 công thức:
=ROW(INDIRECT("1:"&A1))
ta cũng được kết quả tương đương với công thức =ROW(INDIRECT("1:&10))
----------------
Quay trở lại công thức trong file:
INDEX(D4-1+ROW(INDIRECT("1:"&I4*2))......
Ta xét đoạn D4-1+ROW(INDIRECT("1:"&I4*2))
- Với D4Start Day, thì D4-1 nghĩa là Start Day trử bớt 1 sẽ là ngày hôm trước (đúng không)
- Từ ngày hôm trước ấy, lần lượt cộng cho dảy số thứ tự {1;2;3;.... } (đã được tạo từ công thức ROW(INDIRECT(....) ---> Ta thu được 1 chuổi gồm các ngày liên tiếp cách nhau 1 đơn vị (1 ngày)
Phù..... Tới đây đã được nữa đường ---> Bạn tự mình suy luận tiếp đi
Lưu ý: Hãy cắt công thức ra từng đoạn nhỏ mà.. suy luận... Làm 1 nhát dài thòng lòng có mà.. đói luôn ---> Giống như cách tôi đặt Name ở bài đầu, mục đích là cắt công thức ra nhiều phần cho tiện theo dỏi (chứ chẳng phải "bí hiểm" gì như 1 số bạn đã nghĩ)

Thầy chỉnh giúp em công thức dạng này nhưng không kể cả thứ 7, chủ nhật với ạ. em xin cảm ơn
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn thầy nhiều em làm được rồi ạ
 

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

Back
Top Bottom