Nhờ giúp tính tổng số thứ trong một khoảng thời gian cho trước! (1 người xem)

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

bebo021999

Thành viên gạo cội
Tham gia
26/1/11
Bài viết
6,041
Được thích
8,810
Giới tính
Nam
Nghề nghiệp
GPE
Mình đang gặp vấn đề thế này:

Untitled.jpg
Cột A và B là khoảng thời gian từ ngày đến ngày.
Từ cột C đến I tương ứng với từ thứ 2 đến CN, được đánh dấu "X" hoặc để trống
Câu hỏi: Tính tổng số ngày của các thứ được đánh dấu "X" trong khoảng thời gian cho trước.
Mình đã làm như sau:
Dòng 2: T7 và CN:
=SUMPRODUCT(INT((B2-A2-WEEKDAY(B2-{5,6},2)+8)/7))
Dòng 3: T2,3, và 4:
=SUMPRODUCT(INT((B3-A3-WEEKDAY(B3-{0,1,2},2)+8)/7))
Tuy nhiên vẫn phải sửa bằng tay cho từng dòng.
Nhờ Anh chị em cho ý kiến để dùng công thức tự động cho tất cả các dòng.
Không dùng cột phụ nhé.
Cám ơn.
 

File đính kèm

Mình đang gặp vấn đề thế này:

View attachment 100015
Cột A và B là khoảng thời gian từ ngày đến ngày.
Từ cột C đến I tương ứng với từ thứ 2 đến CN, được đánh dấu "X" hoặc để trống
Câu hỏi: Tính tổng số ngày của các thứ được đánh dấu "X" trong khoảng thời gian cho trước.
Mình đã làm như sau:
Dòng 2: T7 và CN:
=SUMPRODUCT(INT((B2-A2-WEEKDAY(B2-{5,6},2)+8)/7))
Dòng 3: T2,3, và 4:
=SUMPRODUCT(INT((B3-A3-WEEKDAY(B3-{0,1,2},2)+8)/7))
Tuy nhiên vẫn phải sửa bằng tay cho từng dòng.
Nhờ Anh chị em cho ý kiến để dùng công thức tự động cho tất cả các dòng.
Không dùng cột phụ nhé.
Cám ơn.
Vầy thử xem:
Mã:
=SUMPRODUCT((TEXT($A2+ROW(INDIRECT("1:"&$B2-$A2+1))-1,"dddd")=$C$1:$I$1)*($C2:$I2="X"))
 
Ah.. quên!
Rút gọn chút chắc cũng được
Mã:
=SUMPRODUCT((TEXT(ROW(INDIRECT($A2&":"&$B2)),"dddd")=$C$1:$I$1)*($C2:$I2="X"))
(file xlsx lên đến 1048576 dòng cơ mà... nên cứ yên tâm. Ẹc... Ẹc...)
 
Ah.. quên!
Rút gọn chút chắc cũng được
Mã:
=SUMPRODUCT((TEXT(ROW(INDIRECT($A2&":"&$B2)),"dddd")=$C$1:$I$1)*($C2:$I2="X"))
(file xlsx lên đến 1048576 dòng cơ mà... nên cứ yên tâm. Ẹc... Ẹc...)
Ahh, sao không nghĩ ra tận dụng tiêu đề dòng nhỉ. Sư phụ siêu quá. Chủ nhật này đi Nam Chết Tiệt phải ghé BH cảm ơn sư phụ mới được.
Bài này đăng trên excelforum, thấy hay nên lấy về cùng giải. Sư phụ không phật lòng nếu em trích nguồn cám ơn GPE chứ?
 
Anh tham khảo cách dung hàm mảng sau:
Đặt Name:
1/ WeekNum
Mã:
=IF(Sheet1!$C5:$I5="x",{2,3,4,5,6,7,1},"")
2/ ArrDate
Mã:
=Sheet1!$A5-1+ROW(INDIRECT("1:"&Sheet1!$B5-Sheet1!$A5+1))
Công thức mảng
Mã:
=SUMPRODUCT(IF(WEEKDAY(ArrDate)=WeekNum,1,0)*1)
 

File đính kèm

Ahh, sao không nghĩ ra tận dụng tiêu đề dòng nhỉ. Sư phụ siêu quá. Chủ nhật này đi Nam Chết Tiệt phải ghé BH cảm ơn sư phụ mới được.
Tôi không nghĩ rằng bebo lại không nghĩ ra bài này đâu... Chỉ là nhìn công thức mà bebo đang làm, tôi đoán chú bị "lạc hướng" thì phải (đang nghĩ đến hướng tính số ngày thứ bảy, CN... giữa 2 thời điểm)


Bài này đăng trên excelforum, thấy hay nên lấy về cùng giải. Sư phụ không phật lòng nếu em trích nguồn cám ơn GPE chứ?
Vô tư đi
 
Lần chỉnh sửa cuối:
Tôi không nghĩ rằng bebo lại không nghĩ ra bài này đâu... Chỉ là nhìn công thức mà bebo đang làm, tôi đoán chú bị "lạc hướng" thì phải (đang nghĩ đến hướng tính số ngày thứ bảy, CN... giữa 2 thời điểm)
Vâng đúng vậy. Chỉ không nghĩ ra việc tận dụng tiêu đề cột làm điều kiện cho SUMPRODUCT. Chứ dùng hàm INDIRECT để tính thì em biết. Em vẫn thích dùng hàm mảng này hơn là dùng INT() của sư phụ.Vì giải thích hàm này lằng nhằng quá +-+-+-+
 
cho hỏi nếu không dùng hàm SUMPRODUCT và hàm TEXT trong công thức =SUMPRODUCT((TEXT(ROW(INDIRECT($A2&":"&$B2)),"dddd")=$C$1:$I$1)*($C2:$I2="X")) thì dùng hàm nào , xin diễn giải công thức dùm

cảm ơn nhiều
 

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

Back
Top Bottom