Chào anh/ chị,
Em cần tính tổng số ngày thứ 3 và thứ 5 trong khoảng thời gian từ ngày 2/6/2020 tới ngày 24/9/2020.
Rất mong nhận được sự giúp đỡ của các anh/ chị trong diễn đàn ạ![]()
Tôi có cái nàyChào anh/ chị,
Em cần tính tổng số ngày thứ 3 và thứ 5 trong khoảng thời gian từ ngày 2/6/2020 tới ngày 24/9/2020.
Rất mong nhận được sự giúp đỡ của các anh/ chị trong diễn đàn ạ![]()
Tính số ngày thứ hai: =INT((A2-A1-WEEKDAY(A2,2)+8)/7)
Tính số ngày thứ ba: =INT((A2-A1-WEEKDAY(A2-1,2)+8)/7)
Tính số ngày thứ tư: =INT((A2-A1-WEEKDAY(A2-2,2)+8)/7)
Tính số ngày thứ năm: =INT((A2-A1-WEEKDAY(A2-3,2)+8)/7)
Tính số ngày thứ sáu: =INT((A2-A1-WEEKDAY(A2-4,2)+8)/7)
Tính số ngày thứ bảy: =INT((A2-A1-WEEKDAY(A2-5,2)+8)/7)
Tính số ngày chủ nhật: =INT((A2-A1-WEEKDAY(A2-6,2)+8)/7)
Tính số ngày thứ hai: =NETWORKDAYS.INTL(A2;A1;"0111111")
Tính số ngày thứ ba: =NETWORKDAYS.INTL(A2;A1;"1011111")
Tính số ngày thứ tư: =NETWORKDAYS.INTL(A2;A1;"1101111")
Tính số ngày thứ năm: =NETWORKDAYS.INTL(A2;A1;"1110111")
Tính số ngày thứ sáu: =NETWORKDAYS.INTL(A2;A1;"1111011")
Tính số ngày thứ bảy: =NETWORKDAYS.INTL(A2;A1;"1111101")
Tính số ngày chủ nhật: =NETWORKDAYS.INTL(A2;A1;"1111110")
View attachment 240179
Bạn xem file đính kèm mình có làm sẵn cho bạn luôn rồi á.
Không hiểu gì cứ hỏi lại mình nha !
Lưu ý: Excel 2010 trở lên mới hỗ trợ hàm mình sử dụng nha. Còn các phiên bản thấp hơn thì... tính sau ! hi, căng.
Thân.
Làm gì có tự nhảy, dùng công thức hoặc viết 1 UDF.Mình không biết có cách nào để lúc nhập 35 vào 1 ô thì nó tự nhảy ra là "1010111",
và tương tự nếu mình nhập 46 thì nó sẽ ra dãy số"1101011"
DEC2BIN(64+32+16+8+4+2+1, 7) là "1111111" (lưu ý 7 vị trí 2^n)Làm gì có tự nhảy, dùng công thức hoặc viết 1 UDF.
Rất hay và chuyên sâu, cám ơn anh.DEC2BIN(64+32+16+8+4+2+1, 7) là "1111111" (lưu ý 7 vị trí 2^n)
64+32+16+8+4+2+1 = 127
Cần số 0 ở chỗ nào thì trừ đi đúng vị trí ấy
DEC2BIN(127-32-8, 7) = 1010111
Bạn tạo bảng phụ để tự quy ước dễ mà.Bạn ơi, cho mình hỏi mình đang làm data cho trung tâm học thêm á. Sẽ có những đứa học những ngày khác nhau vì dụ như thứ 2,4; thứ 3,5 và thứ 7, chủ nhật. Mình không biết có cách nào để lúc nhập 35 vào 1 ô thì nó tự nhảy ra là "1010111", và tương tự nếu mình nhập 46 thì nó sẽ ra dãy số"1101011" luôn ko bạn để mình không phải viết tay nhiều trường hợp nữa![]()
Người dùng muốn 246, 357.... hahaha ...Bạn tạo bảng phụ để tự quy ước dễ mà.
Bạn xem file mình đính kèm, mình tạo sẵn cho bạn hết luôn rồi đó. Xài thôi !![]()
Dạ người dùng muốn em thì em cho em luôn. =))Người dùng muốn 246, 357.... hahaha ...
Thử gộp chung 7 hàm iF() vào hàm SUMPRODUCT() xem sao.Công thức hơi củ chuối nhưng theo hướng này cũng tạm giải quyết được![]()
Bạn ơi, bạn đính kèm file dữ liệu của bạn rồi mọi người sẽ có giải pháp hay nhứt cho bạn đó !Bạn ơi, cho mình hỏi mình đang làm data cho trung tâm học thêm á. Sẽ có những đứa học những ngày khác nhau vì dụ như thứ 2,4; thứ 3,5 và thứ 7, chủ nhật. Mình không biết có cách nào để lúc nhập 35 vào 1 ô thì nó tự nhảy ra là "1010111", và tương tự nếu mình nhập 46 thì nó sẽ ra dãy số"1101011" luôn ko bạn để mình không phải viết tay nhiều trường hợp nữa![]()
Cảm ơn bác. Em loay hoay mãi mà chưa raCông thức bài 14, rút gọn lại:
=NETWORKDAYS.INTL(D6,E6,TEXT(1111111-SUMPRODUCT(ISNUMBER(SEARCH({1,2,3,4,5,6,7},F6))*{1,1000000,100000,10000,1000,100,10}),"0000000"))
yêu bạn nì quá ^^View attachment 240179
Bạn xem file đính kèm mình có làm sẵn cho bạn luôn rồi á.
Không hiểu gì cứ hỏi lại mình nha !
Lưu ý: Excel 2010 trở lên mới hỗ trợ hàm mình sử dụng nha. Còn các phiên bản thấp hơn thì... tính sau ! hi, căng.
Thân.
=SUM(N(WEEKDAY(ROW(INDIRECT(D6&":"&E6)))=--MID(F6,TRANSPOSE(ROW(INDIRECT("1:"&LEN(F6)))),1)))
Nhấn Ctrl+Shirt+Enter
Yêu cầu quái đản. Nhưng mà thôi kệ, mình cứ thử (chỉ thử cách giải thôi, có thể còn phải chải chuốt cho thật đúng):
=DEC2BIN(SUMPRODUCT({1,2,4,8,16,32,64}*(SEARCH({1,7,6,5,4,3,2},$A1&"1765432")>LEN($A1))), 7)
Phát triển dựa trên ý của bác VetMini:Người dùng muốn 246, 357.... hahaha ...
=NETWORKDAYS.INTL(A1,B1,DEC2BIN(127-SUMPRODUCT(CHOOSE(MID(C3,ROW(INDIRECT("1:"&LEN(C3))),1)-1,64,32,16,8,4,2,1)),7))
1/ Số thì dùng Find()Công thức bài 14, rút gọn lại:
=NETWORKDAYS.INTL(D6,E6,TEXT(1111111-SUMPRODUCT(ISNUMBER(SEARCH({1,2,3,4,5,6,7},F6))*{1,1000000,100000,10000,1000,100,10}),"0000000"))
Tôi luôn luôn tránh dùng hàm INDIRECT. Cực chẳng đã mới phải dùng. Vì nó là volatile.Phát triển dựa trên ý của bác VetMini:
Kết thúc Ctrl+shift+enterMã:=NETWORKDAYS.INTL(A1,B1,DEC2BIN(127-SUMPRODUCT(CHOOSE(MID(C3,ROW(INDIRECT("1:"&LEN(C3))),1)-1,64,32,16,8,4,2,1)),7))
A1: ngày bắt đầu
B1: ngày kết thúc
C3: thứ cần tính: 246, 357, 2348,....
@thuhien23 : mình không ngờ cái ý muốn nhỏ nhoi của bạn mà đã làm cho các cao thủ lập trình (ko có mình trong đó) vào trổ tài luôn đó. dzui ghê, hiiiii.Bạn ơi, cho mình hỏi mình đang làm data cho trung tâm học thêm á. Sẽ có những đứa học những ngày khác nhau vì dụ như thứ 2,4; thứ 3,5 và thứ 7, chủ nhật. Mình không biết có cách nào để lúc nhập 35 vào 1 ô thì nó tự nhảy ra là "1010111", và tương tự nếu mình nhập 46 thì nó sẽ ra dãy số"1101011" luôn ko bạn để mình không phải viết tay nhiều trường hợp nữa![]()
@VetMini : bác thấy không, đây là 1 trong những minh chứng cho phát biểu: Người "không được siêng" khi làm việc thường có những ý tưởng... phi thường, hoặc... quái đản.Yêu cầu quái đản. Nhưng mà thôi kệ, mình cứ thử (chỉ thử cách giải thôi, có thể còn phải chải chuốt cho thật đúng):
=DEC2BIN(SUMPRODUCT({1,2,4,8,16,32,64}*(SEARCH({1,7,6,5,4,3,2},$A1&"1765432")>LEN($A1))), 7)
@quocturtle : bác vetmini nói quái đản ở chỗ chủ thớt muốn nó tự nhảy đó bạn, hi.ko quái đản đâu bác. Nghe yêu cầu thì chắc bạn này làm bên học vụ cần tính số buổi học cho hssv rồi
Mình khoái công thức 'néch' kia của bạn hiền kìa!Nếu "Chủ nhật" được ghi là : "Chủ nhật", "CN" ,"Cn", bẫy thêm:
=SUMPRODUCT(--ISNUMBER(SEARCH(WEEKDAY(ROW(INDIRECT(D7&":"&E7))),SUBSTITUTE(F7,"C",1))))
dạ chị cho em hỏi cái chỗ1010111 đó là gì vậy ạ? e không hiểu chỗ đó ạ,em cảm ơn ạyêu bạn nì quá ^^
yêu bạn nì quá ^^
Dạ cho em hỏi tí với ạ,cái dãy sau cùng trong công thức ý ạ, dãy số 0111111, hay 1011111 lần lượt cho các thứ trên đó là như thế nào ạ, em không hiểu vì sao có dãy số này ạ, em cảm ơn nhiều ạTôi thì có cái này
Với cell A1 chứa ngày bắt đầu, cell A2 chứa ngày kết thúcMã:Tính số ngày thứ hai: =NETWORKDAYS.INTL(A2;A1;"0111111") Tính số ngày thứ ba: =NETWORKDAYS.INTL(A2;A1;"1011111") Tính số ngày thứ tư: =NETWORKDAYS.INTL(A2;A1;"1101111") Tính số ngày thứ năm: =NETWORKDAYS.INTL(A2;A1;"1110111") Tính số ngày thứ sáu: =NETWORKDAYS.INTL(A2;A1;"1111011") Tính số ngày thứ bảy: =NETWORKDAYS.INTL(A2;A1;"1111101") Tính số ngày chủ nhật: =NETWORKDAYS.INTL(A2;A1;"1111110")
Giờ muốn tính cái gì thì cứ việc ráp vào
À, đó là chuỗi nhị phân 7 ký tự.dạ chị cho em hỏi cái chỗ1010111 đó là gì vậy ạ? e không hiểu chỗ đó ạ,em cảm ơn ạ
Bài đã được tự động gộp:
Dạ cho em hỏi tí với ạ,cái dãy sau cùng trong công thức ý ạ, dãy số 0111111, hay 1011111 lần lượt cho các thứ trên đó là như thế nào ạ, em không hiểu vì sao có dãy số này ạ, em cảm ơn nhiều ạ
À, đó là chuỗi nhị phân 7 ký tự.
Bạn xem bài này của bạn @TranThanhPhong viết rất rõ về hàm NETWORKDAYS.INTL này nha:
Lưu ý hàm này Excel 2010 trở lên mới có nhen.![]()
Hàm NETWORKDAYS.INTL (Excel 2010)
Hàm NETWORKDAYS.INTL (Excel 2010) Hàm NETWORKDAYS.INTL (Excel 2010)Trả về số ngày làm việc trọn vẹn ở giữa hai ngày bằng cách dùng tham số để cho biết có bao nhiêu ngày cuối tuần và đó là những ngày nào. Ngày cuối tuần và bất kỳ ngày nào được chỉ rõ là ngày lễ sẽ không được coi là ngày làm...www.giaiphapexcel.com
Đại khái vầy:
Các giá trị chuỗi ngày cuối tuần (chính xác hơn là để biểu diễn ngày nghỉ trong tuần) dài 7 ký tự và mỗi một ký tự trong chuỗi biểu thị một ngày trong tuần, bắt đầu từ thứ Hai.
– 1 thể hiện là ngày nghỉ.
– 0 thể hiện là ngày làm việc.
Chỉ những ký tự 1 và 0 được sử dụng trong chuỗi. 1111111 là một chuỗi không hợp lệ.
Ví dụ, “0000011″ sẽ biểu diễn ngày cuối tuần (weekends) là Thứ bảy và Chủ nhật.
Bạn hiểu chứ?
Công thức mảng nàyChào anh/ chị,
Em cần tính tổng số ngày thứ 3 và thứ 5 trong khoảng thời gian từ ngày 2/6/2020 tới ngày 24/9/2020.
Rất mong nhận được sự giúp đỡ của các anh/ chị trong diễn đàn ạ![]()
Tôi có cái này
Với cell A1 chứa ngày bắt đầu, cell A2 chứa ngày kết thúcMã:Tính số ngày thứ hai: =INT((A2-A1-WEEKDAY(A2,2)+8)/7) Tính số ngày thứ ba: =INT((A2-A1-WEEKDAY(A2-1,2)+8)/7) Tính số ngày thứ tư: =INT((A2-A1-WEEKDAY(A2-2,2)+8)/7) Tính số ngày thứ năm: =INT((A2-A1-WEEKDAY(A2-3,2)+8)/7) Tính số ngày thứ sáu: =INT((A2-A1-WEEKDAY(A2-4,2)+8)/7) Tính số ngày thứ bảy: =INT((A2-A1-WEEKDAY(A2-5,2)+8)/7) Tính số ngày chủ nhật: =INT((A2-A1-WEEKDAY(A2-6,2)+8)/7)
Giờ muốn tính cái gì thì cứ việc ráp vào
[/QUOTE
Bạn đúng là cao thủ)