Đăng ký học Excel và VBA cùng GPE tháng 11 - TPHCM

Đăng ký học Excel và phân tích số liệu cùng GPE tháng 12 - TPHCM

Mua sách "VBA trong Excel - Cải thiện và tăng tốc" tái bản

Hỏi công thức cộng trừ ngày tháng năm

Thảo luận trong 'Hàm và công thức Excel' bắt đầu bởi chidlla, 24 Tháng mười một 2007.

  1. chidlla

    chidlla Thành viên mới

    Vui lòng giúp tôi cách công trừ ngày tháng năm. VD: Tại Ô A1 là ngày 24/11/2007 Tôi muốn tại Ô A2 bằng Ô A1 cộng thêm 05 năm nữa là ngày 24/11/2012. Thì phải làm sao? Cám ơn các bạn nhiều!
     
  2. nvson

    nvson Geotechnics

    Bạn dùng hàm EDate
    Ô A1 = 24/11/2007
    Ô A2 = EDate(A1, 5*12) = 24/11/2012
    (Lưu ý định dạng 2 ô dạng DATE)
     
  3. SoiBien

    SoiBien Thành viên tiêu biểu

    một cách khác là bạn sử dụng hàm Date(year,month,day)
    trong đó bạn có thể +- các đối số year, month, day thoải mái.
    ví dụ của bạn thì áp dụng như sau:
    =Date(year(a1)+5,month(a1),day(a1))
    hoặc
    =Date(year(a1),month(a1)+5*12,day(a1))
    Thân.
     
  4. mymichau

    mymichau Thành viên hoạt động

    Có cách nào cộng trừ chuẩn cho những năm nhuần không. VD: ngày 29/2/2004, nếu cộng 4 năm thì đúng ( 29/2/2008 ), nhưng nếu cộng 3 năm thì sai ( 01/3/2007 ). Xin các bạn chỉ giúp.
     
  5. ThuNghi

    ThuNghi Hãy cho rồi sẽ nhận!

    Chưa hiểu lắm yêu cầu hay là u muốn hỏi
    =DATE(YEAR(A1)+4,MONTH(A1),DAY(A1))
     
  6. anhtuan1066

    anhtuan1066 Thành viên gạo cội

    Ý bạn ấy muốn ngày 29/2/2004 khi công thêm vào 3 năm thì ra 28/2/2007 chứ ko phải là 01/3/2007
    giã sứ A1 là cell bạn gõ ngày tháng năm vào... cell B1 là số năm cần công thêm, bạn dùng công thức này xem:
    Mã:
    =DATE(YEAR(A1)+B1,MONTH(A1),MIN(DAY(DATE(YEAR(A1)+B1,MONTH(A1)+1,0)),DAY(A1)))
    Mến
    ANH TUẤN
     
  7. mymichau

    mymichau Thành viên hoạt động

    Tôi làm bên bộ phận tổng hợp, có nhiệm vụ cập nhật số liệu hàng ngày từ năm 2000 đến nay. Só liệu tổng hợp yêu cầu tính theo thời gian như sau:
    Tính từng ngày 01/2/2005 đến ngày 28/2/2005, so sánh với thời gian cùng kỳ ( tức là 1/2/04 đến 29/2/04 ).
    Tôi dùng hàm
    '=IF(AND(B15>=$C$14,B15<=$D$14),"HN",(IF(AND(B15>=$C$14-366,B15<=$D$14-366),"CK","XX"))) thì chỉ đúng được 1 phần, sau những so sánh với năm nhuần phải sửa lại là -365.
    Do đó tôi nhờ các bạn giúp cách nào để không chỉnh sửa -365 hoặc -366 mà vẫn tính đúng cho năm nhuần và những năm không nhuần.
     

    Các file đính kèm:

    Lần chỉnh sửa cuối: 26 Tháng mười một 2007
  8. BNTT

    BNTT Bùi Nguyễn Triệu Tường

    Tôi chỉ xin phép gợi ý thôi.
    Năm nhuần là năm chia chẵn cho 4.
    Bạn có thể dùng hàm MOD(năm,4), nếu hàm này trả về giá trị 0 thì đó là năm nhuận. Vd: MOD(2008,4)=0
    Rồi kết hợp IF với MOD để xác định năm nào = 365 ngày, năm nào = 366 ngày.
     
  9. anhtuan1066

    anhtuan1066 Thành viên gạo cội

    Trong trường hợp này tôi nghĩ bạn dùng EDATE sẽ gọn nhất...
    Gợi ý 1 công thức:
    Mã:
    =IF(AND(B15>=$C$14,B15,12<=$D$14),"HN",IF(AND(EDATE(B15,12)>=$C$14,EDATE(B15,12)<=$D$14),"CK","XX"))
    Bạn test thử xem... vì trong file dử liệu ít quá, với lại tôi cũng chưa rõ lắm cách tính của bạn... Theo tôi thì có lẽ bạn đang nêu cách tính như sau:
    1> Nếu ngày nằm lọt trong khoảng 1/2/2005 đến 28/2/2005 thì ghi "HN"
    2> Nếu ngày nằm lọt trong khoảng 1/2/2004 đến 29/2/2004 thì ghi "CK" (cùng ngày, cùng tháng nhưng chênh nhau 1 năm)
    3> Những trường hợp khác thì ghi "XX"
    Ko biết tôi suy luận thế có đúng ko? Gữi luôn file đính kèm bạn kiểm tra lại nhé!
    Lần sau có hỏi thì ghi rõ hơn 1 chút...
    ANH TUẤN
     

    Các file đính kèm:

  10. bacute

    bacute Thành viên mới

     
  11. BNTT

    BNTT Bùi Nguyễn Triệu Tường

    Để có được những hàm này, bạn phải cài Add-Ins Analysis Toolpak.
    Riêng với hàm DATEDIF, thì không hiểu sao trong danh sách hàm và trong help của Excel không có đâu, tuy nhiên vẫn sử dụng được.


    Về Analysis Toolpak, bạn đọc thêm ở đây: http://www.google.com.vn/custom?dom...ysis+Toolpak&sitesearch=www.giaiphapexcel.com
    Về hàm DATEDIF, bạn đọc ở đây: http://www.google.com.vn/custom?num...www.giaiphapexcel.com&meta=lr=lang_en|lang_vi
     
    Lần chỉnh sửa cuối: 26 Tháng mười một 2007
  12. ptm0412

    ptm0412 Excel Ordinary Member Staff Member Super Moderator


    Hi hi hi. bạn ơi, có người la làng lỗi #name? khi dùng edate()!
    Đùa tí, đừng giận nhe bạn. Không phải tớ vui mà là tớ mừng đấy.
     
  13. anhtuan1066

    anhtuan1066 Thành viên gạo cội

    Thì đúng rồi... như có lần tôi đã nói đấy thôi... Nên tạo công thức sao cho tất cả mọi người đều dùng dc, bất kễ là họ cài Office gì và cài như thế nào (ngay cả Portable)... trừ những trường hợp bất khả kháng như trường hợp của tôi ở trên... Vì ko thể nghĩ ra dc cách nào vẹn toàn nên đành chấp nhận EDATE... hi.. hi.. Chứ nếu có cách khác thì tôi đã vứt cha nó cái hàm EDATE này rồi
     
  14. ThuNghi

    ThuNghi Hãy cho rồi sẽ nhận!

    Xin hỏi bạn mimychau
    Nếu B20 là 29/02/2008 hay = 29/02/2000 thì C20 là CK, HN hay XX
    Theo tôi sao không dùng
    Nếu cẩn thận thêm hàm kiểm tra ngày tại B, if(type(B)=2,"",))
     
  15. nguyenquochung10102004

    nguyenquochung10102004 Thành viên mới

    Giúp tôi với

    **~****~**Tôi muốn tính 28/12/2007 đến 28/10/2015 bao nhiêu tháng và năm thì làm sao mấy bác. thanks**~****~****~****~****~**
     
  16. hoangminhtien

    hoangminhtien Thành viên tích cực

    Bạn dùng hàm DATEDIF nhé!
    Tính năm DATEDIF(A1,A2,"Y")
    Tính Tháng lẻ: DATEDIF(A1,A2,"YM")
    Tính tổng số tháng DATEDIF(A1,A2,"M")
     
  17. thuy sony

    thuy sony Thành viên mới

    minh lam cong thuc =date(year(a1),month(a1),date(a1)+7) ma ko dc bao loi ko ah.vi cong no cua minh chi cho 7 ngay thoi nen minh muon tinh han thanh toan
     
  18. hoangminhtien

    hoangminhtien Thành viên tích cực

    Bạn thử sửa lại thành =date(year(a1),month(a1),day(a1)+7) xem có được không nhé!
     
  19. bebo021999

    bebo021999 Thành viên gạo cội

    Sao không làm =a1+7 cho đơn giản?
     
  20. morningstar85

    morningstar85 Thành viên mới

    Bạn đang dùng excel 2003 thì ko có là đúng rồi
    Bạn Phải vào tools=>add_ins=>kicks vào dòng thứ 2 .......VBA
    ok
     

Chia sẻ trang này