Trang 1/2 1 2 cuốicuối
Hiển thị kết quả tìm kiếm từ 1 đến 10 trên tổng số: 14
  1. #1
    Tham gia ngày
    08 2008
    Nơi Cư Ngụ
    Hải Phòng
    Bài gởi
    730
    Cảm ơn
    1,223
    Được cảm ơn 554 lần trong 243 bài viết

    Làm sao biết ngày đầu tuần (thứ 2) của tuần thứ x là ngày bao nhiêu?

    Ví dụ: hiện tại weeknum(today()) đang ở tuần thứ 28
    Làm sao em biết được thứ hai rơi vào ngày bao nhiêu cụ thể thứ 2 tuần 28 rơi vào 05/07/2010
    Trang web rao vặt, chia sẻ, giao lưu, kết bạn tại Hải Phòng
    http://noivongtaylon.hnsv.com/

  2. #2
    Tham gia ngày
    05 2007
    Nơi Cư Ngụ
    SAPA
    Bài gởi
    4,133
    Cảm ơn
    9,566
    Được cảm ơn 10,883 lần trong 3,739 bài viết

    Conv

    Ví dụ:
    Ô B1 ta gõ Weeknum
    Ô B2 ta gõ weekday (quy ước Monday = 1 nhé)
    Ô B3 ta gõ Năm.

    Công thức để chuyển sang ngày thỏa mãn ba điều kiện đó như sau:

    =DATE($B$3,1,($B$1-1)*7+CHOOSE(WEEKDAY(DATE($B$3,1,1),2),0,-1,-2,-3,3,2,1)+$B$2)


    Từ đó có thể viết Code lại như sau:

    Function ConvertDate(mYear As Integer, mWeek As Integer, mDay As Integer) As Date
    Dim iDays As Integer, iNumDays As Integer
    iDays = Choose(Weekday(DateSerial(mYear, 1, 1), vbMonday), 0, -1, -2, -3, 3, 2, 1)
    iNumDays = (mWeek - 1) * 7 + iDays + mDay
    ConvertDate = DateAdd("d", iNumDays - 1, DateSerial(mYear, 1, 1))
    End Function
    Cú pháp hàm tự tạo: = Convertdate(Năm, Tuần, Thứ)
    Lưu ý: Công thức này dùng quy ước Monday = 1
    Tập tin đính kèm Tập tin đính kèm
    thay đổi nội dung bởi: cadafi, 09-07-10 lúc 03:55 PM

  3. Có 4 thành viên cảm ơn cadafi về bài viết này:


  4. #3
    Tham gia ngày
    08 2008
    Nơi Cư Ngụ
    Hải Phòng
    Bài gởi
    730
    Cảm ơn
    1,223
    Được cảm ơn 554 lần trong 243 bài viết
    Hu hu, khó quá. Chuyển về code giúp em được không
    - Bài toán là biết ngày thứ mấy (ví dụ thứ 2) biết tuần
    - Tìm ngày thứ bao nhiều ví dụ: 05/07/2010

    Cám ơn Anh Ca_dafi
    thay đổi nội dung bởi: ST-Lu!, 09-07-10 lúc 03:41 PM
    Trang web rao vặt, chia sẻ, giao lưu, kết bạn tại Hải Phòng
    http://noivongtaylon.hnsv.com/

  5. Thành viên sau cảm ơn ST-Lu! về bài viết này:


  6. #4
    Tham gia ngày
    06 2008
    Bài gởi
    24,027
    Cảm ơn
    13,793
    Được cảm ơn 42,799 lần trong 19,371 bài viết
    Trích Nguyên văn bởi cadafi View Post
    Ví dụ:
    Ô B1 ta gõ Weeknum
    Ô B2 ta gõ weekday (quy ước Monday = 1 nhé)
    Ô B3 ta gõ Năm.

    Công thức để chuyển sang ngày thỏa mãn ba điều kiện đó như sau:
    Đâu có đúng đâu chứ
    Tuần thứ 2 của năm 2010, ngày thứ 2 là ngày là ngày 4/1 cơ mà (của Kiệt ra kết quả ngày 11/1)
    Tôi nghĩ nó phải vầy:
    PHP Code:
    =DATE(2010,1,1)-WEEKDAY(DATE(2010,1,1))+ 2+(WEEKNUM(A1)-1)*
    ---------------------
    Trích Nguyên văn bởi cadafi View Post
    Xin lỗi ST-Lu! Mình làm xong mới thấy đây là box VBA.
    Chẳng quan trọng gì ---> Vấn đề là Thuật toán

  7. Có 4 thành viên cảm ơn ndu96081631 về bài viết này:


  8. #5
    Tham gia ngày
    05 2007
    Nơi Cư Ngụ
    SAPA
    Bài gởi
    4,133
    Cảm ơn
    9,566
    Được cảm ơn 10,883 lần trong 3,739 bài viết
    Anh ndu ơi cho em hỏi xíu, Weeknum(A1), anh nói thêm A1 là ngày nào? Công thức của anh quá hay!

  9. Thành viên sau cảm ơn cadafi về bài viết này:


  10. #6
    Trích Nguyên văn bởi ST-Lu! View Post
    Ví dụ: hiện tại weeknum(today()) đang ở tuần thứ 28
    Làm sao em biết được thứ hai rơi vào ngày bao nhiêu cụ thể thứ 2 tuần 28 rơi vào 05/07/2010
    Bạn thử công thức này với :A1 : nhập năm 2009 , 2010 .. ; A2 : tuần thứ ; A3: thứ mấy ( ví dụ thứ 2 là 2 , thứ 3 là 3 ,...,Chủ nhật tùy)


    =DATE(A1;1;1)-WEEKDAY(DATE(A1;1;1);1)+IF(A3<8;A3;8)+7*(A2-1)

  11. Thành viên sau cảm ơn le tin về bài viết này:


  12. #7
    Tham gia ngày
    04 2010
    Nơi Cư Ngụ
    Hải Dương
    Bài gởi
    452
    Cảm ơn
    470
    Được cảm ơn 118 lần trong 73 bài viết
    Trích Nguyên văn bởi ndu96081631 View Post
    Đâu có đúng đâu chứ
    Tuần thứ 2 của năm 2010, ngày thứ 2 là ngày là ngày 4/1 cơ mà (của Kiệt ra kết quả ngày 11/1)
    Tôi nghĩ nó phải vầy:
    PHP Code:
    =DATE(2010,1,1)-WEEKDAY(DATE(2010,1,1))+ 2+(WEEKNUM(A1)-1)*
    ---------------------

    Chẳng quan trọng gì ---> Vấn đề là Thuật toán
    Anh NDU ơi, em chưa hiểu công thức trên dùng như nào,
    ở đây em hiểu WEEKNUM(A1) mà A1 ở đây là số tuần phải không? hay A1 là gì ạh?
    Tại sao sinh mệnh lại tồn tại?
    Tại sao con người phải sống?
    Giá trị lớn nhất của cuộc đời con người là gì?

  13. #8
    Tham gia ngày
    04 2010
    Nơi Cư Ngụ
    Hải Dương
    Bài gởi
    452
    Cảm ơn
    470
    Được cảm ơn 118 lần trong 73 bài viết
    Trích Nguyên văn bởi cadafi View Post
    Ví dụ:
    Ô B1 ta gõ Weeknum
    Ô B2 ta gõ weekday (quy ước Monday = 1 nhé)
    Ô B3 ta gõ Năm.

    Công thức để chuyển sang ngày thỏa mãn ba điều kiện đó như sau:



    Từ đó có thể viết Code lại như sau:

    Cú pháp hàm tự tạo: = Convertdate(Năm, Tuần, Thứ)
    Lưu ý: Công thức này dùng quy ước Monday = 1
    Chị Ca_dafi ơi
    Công thức của Chị bị lệch mất một ngày (ngay ở trong file của chị) tuần 28 thứ 2 là 05/07/2010 chị ạh (trong file của chị nó thể hiện là 12/07/10
    Tại sao sinh mệnh lại tồn tại?
    Tại sao con người phải sống?
    Giá trị lớn nhất của cuộc đời con người là gì?

  14. Thành viên sau cảm ơn Tường_Vi về bài viết này:


  15. #9
    Tham gia ngày
    08 2008
    Nơi Cư Ngụ
    Hải Phòng
    Bài gởi
    730
    Cảm ơn
    1,223
    Được cảm ơn 554 lần trong 243 bài viết
    PHP Code:
    Function ConvertDate(mYear As IntegermWeek As IntegermDay As Integer) As Date
    Dim iDays 
    As IntegeriNumDays As Integer
    iDays 
    Choose(Weekday(DateSerial(mYear11), vbMonday), 0, -1, -2, -3321)
    iNumDays = (mWeek 2) * iDays mDay
    ConvertDate 
    DateAdd("d"iNumDays 1DateSerial(mYear11))
    End Function 
    Anh Kiệt ơi
    Em chưa hiểu đoạn này, kém quá
    - các già trị mình lấy cho Idays là 0, -1, -2, -3, 3, 2, 1 --> tại sao lại như vậy?
    - Em chưa hiểu về thuật toán trên, anh giảng qua em chút

    P.s: Code của Anh nếu sửa lại thành -2 thì đúng anh ạh
    Trang web rao vặt, chia sẻ, giao lưu, kết bạn tại Hải Phòng
    http://noivongtaylon.hnsv.com/

  16. #10
    Tham gia ngày
    05 2007
    Nơi Cư Ngụ
    SAPA
    Bài gởi
    4,133
    Cảm ơn
    9,566
    Được cảm ơn 10,883 lần trong 3,739 bài viết
    Trích Nguyên văn bởi ST-Lu! View Post
    - các già trị mình lấy cho Idays là 0, -1, -2, -3, 3, 2, 1 --> tại sao lại như vậy?
    - Em chưa hiểu về thuật toán trên, anh giảng qua em chút
    P.s: Code của Anh nếu sửa lại thành -2 thì đúng anh ạh
    Choose(Weekday(DateSerial(mYear, 1, 1), vbMonday), 0, -1, -2, -3, 3, 2, 1)
    Diễn giải như sau:
    Nếu như ngày đầu năm là thứ hai thì iday=0
    Nếu ngày đầu năm là thứ ba thì iday = -1
    ....
    Nếu như ngày đầu năm là thứ sáu thì iday = 3
    ...
    Nếu như ngày đầu năm là chủ nhật thì iday = 1

    ==>Mục đích để đưa về mức chuẩn là ngày thứ hai để tính.

    Vì vậy, chặt đầu chặt đuôi và phải chặt luôn phần quy chuẩn này, mình quên. Cho nên công thức trên sửa lại là lấy (số tuần - 2) sau đó nhân với 7 ngày là chính xác.

    Đưa về dạng số, ngày 01/01/2010 là 40,179
    vậy ngày thứ ba tuần 28 phải là [40,179 + (28-2)*7] + [thứ tự của thứ] +/- [ảnh hưởng của ngày đầu năm] (cái ảnh hưởng đó là phần Choose(....))
    thay đổi nội dung bởi: cadafi, 10-07-10 lúc 12:05 AM

  17. Thành viên sau cảm ơn cadafi về bài viết này:


Trang 1/2 1 2 cuốicuối

Thông tin về chủ đề này

Users Browsing this Thread

Hiện có 1 người đang xem đề tài này. (0 thành viên và 1 khách)

Đề tài tương tự

  1. Tạo header & Footer nhiều lần khác nhau trong nhiều trang phải làm như thế nào?
    Viết bởi huatrungkien2512 trong chuyên mục Hỏi đáp những vấn đề khác
    Trả lời: 4
    Bài mới gởi: 29-10-13, 11:29 PM
  2. Hỏi cách Upload dữ liệu từ nhiều file .html,.txt,... vào nhiều sheets trong Excel VBA
    Viết bởi hoangtu1506 trong chuyên mục Excel 2007, 2010 & 2013
    Trả lời: 0
    Bài mới gởi: 11-08-10, 03:02 PM
  3. Xóa nhiều vùng khác nhau trong nhiều sheet
    Viết bởi trantuonganh2008 trong chuyên mục Hàm và công thức Excel
    Trả lời: 20
    Bài mới gởi: 19-07-10, 08:59 PM
  4. Công thức nào để chuyển định khoản nhiều nợ - nhiều có về 1 nợ nhiều có...
    Viết bởi vuha trong chuyên mục Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
    Trả lời: 4
    Bài mới gởi: 11-03-09, 09:08 AM
  5. Truy xuất dữ liệu trong nhiều Sheet hoặc nhiều Name?
    Viết bởi BNTT trong chuyên mục Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
    Trả lời: 4
    Bài mới gởi: 10-07-08, 03:22 PM

Bookmarks

Bookmarks

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể đăng đề tài mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng file đính kèm.
  • Bạn không thể sửa bài viết.
  •  

Mudim v0.8 Tắt VNI Telex Viqr Tổng hợp
Chính tả Bỏ dấu kiểu mới  [Bật/Tắt (F9)]