Xử lý hàm ngày tháng như thế nào ?

Liên hệ QC

Người Đưa Tin

Hạt cát sông Hằng
Thành viên danh dự
Tham gia
12/12/06
Bài viết
3,661
Được thích
18,158
Vui lòng giúp mình xử lý hàm ngày tháng trong trường hợp này :

|
A​
|
B​
|
C​
|
D​
|
1​
|
Thử việc từ​
|
đến​
|
HĐ Xác định thời hạn từ 1 năm​
|
đến​
|
2​
|
01/01/08​
|
28/02/08​
|
01/01/08​
|
31/12/08​
|
3​
|
01/05/08​
|
30/04/08​
|
01/05/08​
|
30/04/09​
|
4​
|
11/12/08​
|
10/02/09​
|
11/12/08​
|
10/12/09​
|

Giả sử mình ký kết hợp đồng lao động xác định thời hạn 1 năm (cột C và D) và có 2 tháng thử việc.(Cột A và B)

Ví dụ : Ký hợp đồng với 1 nhân viên A - xác định thời hạn 1 năm
Thời gian : từ 01/01/2008 đến 31/12/2008 (Cột C và D)
Biết rằng ngày bắt đầu (hiệu lực) ký hợp đồng xác định thời hạn là cột A hoặc tương đương cột C
Mình muốn tìm cột B (Do cột B là xác định ngày kết thúc thử việc "2 tháng"
và muốn tìm cột D (Ngày kết thúc hợp đồng lao động xác định thời hạn " 1 năm"

Vui lòng hướng dẫn mình sử dụng hàm nào để xác định thời hạn kết thúc thử việc và kết thúc hợp đồng lao động xác định thời hạn cho các trường hợp này.

Chân thành cám ơn
 
Lần chỉnh sửa cuối:
Ví dụ minh họa của Bác không đúng lắm. Bác xem file đính kèm xem có đúng ý Bác không nha.
Có thể gia giảm ngày cho phù hợp.
 

File đính kèm

  • Tinh han hop dong.xls
    13.5 KB · Đọc: 356
Anh có thể dùng hàm EDATE (nếu Excel của anh có cài Analysis toolpak)
D2 =EDATE(C2,12)-1
 
Tính hợp đồng 1 năm có thể tính theo công thức sau

D2=DATE(YEAR(C2)+1,MONTH(C2),DAY(C2)-1)
 
Xin đề nghị bác bố trí lại dữ liệu cho "khoa học" tí:
Bác cài AnalysisToolPak Addin vào Excel (nếu chưa có), rồi chỉ cần dùng 3 cột thôi:
  • Cột A: Ngày bắt đầu vào làm
  • Cột B: Ngày kết thúc thử việc
  • Cột C: Ngày kết thúc hợp đồng
Thêm 2 ô nữa để dễ linh hoạt:
  • Ô B1: Số tháng thử việc
  • Ô C1: Số năm hợp đồng
Dĩ nhiên là nếu thêm 2 ô này thì bác phải dời dữ liệu xuống hàng thứ 2 hoặc thứ 3, né hàng 1 ra.
Với bài này, bác gõ số 2 (2 tháng) vào ô B1 và số 1 (1 năm) vào ô C1. Đặt ô như thế, bác sẽ đỡ phải sửa công thức khi muốn thay đổi số tháng thử việc hoặc thay đổi số năm hợp đồng. Khi thay đổi, bác chỉ việc sửa lại con số trong B1, C1 mà thôi.

Ví dụ bác dùng hàng 2 làm tiêu đề, và bắt đầu nhập ngày tháng từ hàng thứ 3, thì:
  • Công thức tính ngày hết hạn thử việc ở B3 là: =EDATE(A3, B1)-1
  • Công thức tính ngày kết thúc hợp đồng ở C3 là: =EDATE(A3, C1*12)-1
Sau đó bác chỉ việc gõ ngày tháng bắt đầu vào làm ở A3, A4, A5, v.v... và kéo công thức ở B3 và C3 xuống...
 
Hợp đồng lao động, thường có các loại :
+ Không xác định thời hạn
+ Xác định thời hạn
+ Thời vụ

Em có 1 file dữ liệu nhân sự, xin nhờ tư vấn, hướng dẫn cách thiết lập công thức cho các cột sau đây :

Cột J : ngayketthuchopdong
Cột L : sonamhopdong
Cột M : Loai HDLD (dữ liệu có thể nhập vào các cụm từ sau : hợp đồng xác định thời hạn (hoặc loại hợp đồng không xác định thời hạn) hoặc thời vụ


Em muốn khi dữ liệu cột M được nhập vào, thì các cột J và L

Cột L : sonamhopdong : sẽ không ghi và trả kết quả ra ngày tháng nếu cột M có giá trị : "không xác định thời hạn". Trường hợp có ghi là : xác định thời hạn hoặc thời vụ thì cột này mới ghi lại thời gian (ngày/tháng/năm : cụ thể)

Tương tự, cột J cũng cho ra kết quá như thế cho trường hợp dữ liệu cột M là hợp đồng xác định thời hạn (hoặc loại hợp đồng không xác định thời hạn) hoặc thời vụ

======
Vui lòng giúp sửa lại công thức cho

Cột L : sonamhopdong :

Hiện nay công thức chỗ cột L là nhập vào giá trị "số năm" ký kết hợp đồng lao động.
Cột này sẽ đúng cho trường hợp xác định được "số năm" ký kết hợp đồng lao động như 1 năm, 2 năm cho loại hợp đồng xác định thời hạn
. Nhưng nếu cột M khi xác định là loại hợp đồng thời vụ như 6 tháng thì kết quả của cột L dẫn đến sai
Giả sử cột M ghi : Thời vụ
và mình chỉ muốn ký là 6 tháng thôi, nhưng khi nhập dữ liệu số "6" thì giá trị kết quả của cột L cho ra kết quả đến năm 28/02/2014;


Nay, em muốn tư vấn sửa lại công thức cho cột này cho trường hợp nếu cột M là loại hợp động thời vụ thì sẽ ra số ngày tháng kết thúc hợp đồng lao động.

Vậy bài toán, công thức ở đây phải chỉnh xử lý như thế nào để cho đúng cho trường hợp lao động thời vụ hoặc hợp đồng lao động không xác định thời hạn

|
H​
|
I​
|
J​
|
K​
|
L​
|
M​
|
1​
|
ngaybatdauvaolam​
|
ngayketthucthuviec​
|
ngayketthuchopdong​
|
sothangthuviec​
|
sonamhopdong​
|
Loai HDLD​
|
2​
|
01/01/2008​
|
29/02/2008​
|
31/12/2008​
|
2​
|
1​
|xác định thời hạn|
3​
|
01/01/2008​
|
29/02/2008​
|
31/12/2008​
|
2​
|
1​
|xác định thời hạn|
4​
|
01/01/2008​
|
29/02/2008​
|
31/12/2008​
|
2​
|
1​
|xác định thời hạn|
5​
|
01/01/2008​
|
29/02/2008​
|
31/12/2008​
|
2​
|
1​
|xác định thời hạn|
6​
|
01/01/2008​
|
29/02/2008​
|
31/12/2008​
|
2​
|
1​
|xác định thời hạn|
7​
|
01/01/2008​
|
29/02/2008​
|
31/12/2009​
|
2​
|
2​
|xác định thời hạn|
8​
|
01/01/2008​
|
29/02/2008​
|
31/12/2009​
|
2​
|
2​
|xác định thời hạn|
9​
|
01/01/2008​
|
29/02/2008​
|
31/12/2009​
|
2​
|
2​
|xác định thời hạn|
10​
|
01/01/2008​
|
29/02/2008​
|
31/12/2009​
|
2​
|
2​
|xác định thời hạn|
11​
|
01/01/2008​
|
29/02/2008​
|
31/12/2009​
|
2​
|
2​
|xác định thời hạn|
12​
|
01/01/2008​
|
29/02/2008​
|
31/12/2009​
|
2​
|
2​
|xác định thời hạn|
13​
|
01/02/2008​
|
31/03/2008​
|
31/01/2010​
|
2​
|
2​
|xác định thời hạn|
14​
|
01/02/2008​
|
29/02/2008​
|
31/01/2008​
|
1​
|
0​
|không xác định thời hạn|
15​
|
01/02/2008​
|
29/02/2008​
|
31/01/2008​
|
1​
|
0​
|không xác định thời hạn|
16​
|
01/02/2008​
|
29/02/2008​
|
31/01/2008​
|
1​
|
0​
|không xác định thời hạn|
17​
|
01/02/2008​
|
29/02/2008​
|
31/01/2008​
|
1​
|
0​
|không xác định thời hạn|
18​
|
01/03/2008​
|
31/03/2008​
|
29/02/2008​
|
1​
|
0​
|không xác định thời hạn|
19​
|
01/03/2008​
|
31/03/2008​
|
29/02/2008​
|
1​
|
0​
|không xác định thời hạn|
20​
|
01/03/2008​
|
31/03/2008​
|
29/02/2008​
|
1​
|
0​
|không xác định thời hạn|
21​
|
01/03/2008​
|
30/04/2008​
|
29/02/2008​
|
2​
|
0​
|không xác định thời hạn|
22​
|
01/03/2008​
|
30/04/2008​
|
28/02/2014​
|
2​
|
6​
|Thời vụ|
23​
|
01/05/2008​
|
30/06/2008​
|
30/04/2014​
|
2​
|
6​
|Thời vụ|

Mục đích : để làm tự động mail merge cho hợp đồng lao động và quản lý được danh sách nhân viên, hợp đồng lao động trong năm đã ký kết.

- Loại hợp đồng lao động : hợp đồng xác định thời hạn (hoặc xác định thời hạn), thời vụ
- Từ ngày : đến ngày :

Chân thành cám ơn.
 

File đính kèm

  • nhansu.xls
    46.5 KB · Đọc: 204
Lần chỉnh sửa cuối:
Em chưa thử, nhưng thấy... mắc cười chỗ này:
... và mình chỉ muốn ký là 6 tháng thôi, nhưng khi nhập dữ liệu số "6" thì giá trị kết quả của cột L cho ra kết quả đến năm 28/02/2014;
Bác nhập số 6 vào cột L, thì nó hiểu là 6 năm chứ sao bi giờ ? Vì đang tính cột L theo năm mà ?

Giả sử bác muốn Excel hiểu là "tao nhập 6 thì mày phải hiểu là 6 tháng", thì lỡ như hợp đồng xác định thời hạn là 6 năm, thì bác sẽ nhập số mấy đây?

Nếu đã xác định cột L là số năm hợp đồng, thì bác phải quy số tháng thời vụ thành năm (6 tháng = 0.5 năm), khi đó Excel nó mới hiểu. Nói thiệt bác, Excel hỏng có thông minh như mình nghĩ đâu!

----------------------
Bác thử công thức này cho cột J, nếu không ra như ý muốn thì nói em sửa nghe:
=IF(M2="không xác định thời hạn", "", EDATE(H2, L2*IF(M2="thời vụ",1,12))-1)​
Nếu cột M là "không xác định thời hạn", thì bỏ trống, còn không thì dùng EDATE để tính ngày kết thúc hợp đồng. Nhưng trong hàm EDATE, nếu cột M là "thời vụ", thì tính cột L như là tháng, còn không thì mới nhân cho 12 để tính thành năm.
 
Lần chỉnh sửa cuối:
Em chưa thử, nhưng thấy... mắc cười chỗ này:

Bác nhập số 6 vào cột L, thì nó hiểu là 6 năm chứ sao bi giờ ? Vì đang tính cột L theo năm mà ?

Giả sử bác muốn Excel hiểu là "tao nhập 6 thì mày phải hiểu là 6 tháng", thì lỡ như hợp đồng xác định thời hạn là 6 năm, thì bác sẽ nhập số mấy đây?

Nếu đã xác định cột L là số năm hợp đồng, thì bác phải quy số tháng thời vụ thành năm (6 tháng = 0.5 năm), khi đó Excel nó mới hiểu. Nói thiệt bác, Excel hỏng có thông minh như mình nghĩ đâu!

----------------------
Bác thử công thức này cho cột J, nếu không ra như ý muốn thì nói em sửa nghe:
=IF(M2="không xác định thời hạn", "", EDATE(H2, L2*IF(M2="thời vụ",1,12))-1)​
Nếu cột M là "không xác định thời hạn", thì bỏ trống, còn không thì dùng EDATE để tính ngày kết thúc hợp đồng. Nhưng trong hàm EDATE, nếu cột M là "thời vụ", thì tính cột L như là tháng, còn không thì mới nhân cho 12 để tính thành năm.


Thầy BNTT xử lý công thức cho trường hợp này đúng như ý của em rồi.

Thật sự câu diễn đạt của em cũng chưa đầy đủ lắm. Em cũng lúng túng khi tổ chức cái dữ liệu ở Cột L : sonamhopdong (là số năm hay số tháng, nếu số năm thì lại vướng như bài em trình bày. Còn tổ chức ghi và qui ra số tháng thì công thức lúc này cũng chưa biết cài đặt như thế nào cho đúng).

Giả sử : dữ liệu cho cột L : sonamhopdong

Em không hiểu phải dùng cách gì, số gì, hoặc ký tự để ghi nhận phản ánh cho hợp đồng lao động loại :

+ Không xác định thời hạn : tạm thời em ghi nhận là số 0 (không), hoặc
+ Thời vụ : thì ghi số tháng. Trong trường hợp này nó lại vướng cho HDLD loại xác định thời hạn.

Hiện chưa có ý tưởng nào khác để khai báo dữ liệu cho cột L này. Thành thử Thầy đọc là Thầy mắc cười là phải rồi.
7.gif


Miễn là cười yêu trò được rồi phải không Thầy

Chân thành cám ơn Thầy và quý anh đã quan tâm đề tài này.

|
H​
|
I​
|
J​
|
K​
|
L​
|
M​
|
1​
|
ngaybatdauvaolam​
|
ngayketthucthuviec​
|
ngayketthuchopdong​
|
sothangthuviec​
|
sonamhopdong​
|
Loai HDLD​
|
2​
|
01/01/2008​
|
29/02/2008​
|
31/12/2008​
|
2​
|
1​
|xác định thời hạn|
3​
|
01/01/2008​
|
29/02/2008​
|
31/12/2008​
|
2​
|
1​
|xác định thời hạn|
4​
|
01/01/2008​
|
29/02/2008​
|
31/12/2008​
|
2​
|
1​
|xác định thời hạn|
5​
|
01/01/2008​
|
29/02/2008​
|
31/12/2008​
|
2​
|
1​
|xác định thời hạn|
6​
|
01/01/2008​
|
29/02/2008​
|
31/12/2008​
|
2​
|
1​
|xác định thời hạn|
7​
|
01/01/2008​
|
29/02/2008​
|
31/12/2009​
|
2​
|
2​
|xác định thời hạn|
8​
|
01/01/2008​
|
29/02/2008​
|
31/12/2009​
|
2​
|
2​
|xác định thời hạn|
9​
|
01/01/2008​
|
29/02/2008​
|
31/12/2009​
|
2​
|
2​
|xác định thời hạn|
10​
|
01/01/2008​
|
29/02/2008​
|
31/12/2009​
|
2​
|
2​
|xác định thời hạn|
11​
|
01/01/2008​
|
29/02/2008​
|
31/12/2009​
|
2​
|
2​
|xác định thời hạn|
12​
|
01/01/2008​
|
29/02/2008​
|
31/12/2009​
|
2​
|
2​
|xác định thời hạn|
13​
|
01/02/2008​
|
31/03/2008​
|
31/01/2010​
|
2​
|
2​
|xác định thời hạn|
14​
|
01/02/2008​
|
29/02/2008​
| |
1​
|
0​
|không xác định thời hạn|
15​
|
01/02/2008​
|
29/02/2008​
| |
1​
|
0​
|không xác định thời hạn|
16​
|
01/02/2008​
|
29/02/2008​
| |
1​
|
0​
|không xác định thời hạn|
17​
|
01/02/2008​
|
29/02/2008​
| |
1​
|
0​
|không xác định thời hạn|
18​
|
01/03/2008​
|
31/03/2008​
| |
1​
|
0​
|không xác định thời hạn|
19​
|
01/03/2008​
|
31/03/2008​
| |
1​
|
0​
|không xác định thời hạn|
20​
|
01/03/2008​
|
31/03/2008​
| |
1​
|
0​
|không xác định thời hạn|
21​
|
01/03/2008​
|
30/04/2008​
| |
2​
|
0​
|không xác định thời hạn|
22​
|
01/03/2008​
|
30/04/2008​
|
30/09/2008​
|
2​
|
7​
|Thời vụ|
23​
|
01/05/2008​
|
30/06/2008​
|
31/10/2008​
|
2​
|
6​
|Thời vụ|

Xin được tiếp chỉ thỉnh giáo tiếp v/v tổ chức dữ liệu cho trường hợp này.

Nhân đây gởi tặng Thầy chút đỉnh để hút thuốc và uống cafe, miễn ăn phở nhe.

PhotoFunia-13dc95e.jpg
 
Anh có thể dùng hàm EDATE (nếu Excel của anh có cài Analysis toolpak)
D2 =EDATE(C2,12)-1

Muội đang ở vùng sâu vùng xa, không có thể chạy về nhà lấy đĩa để cài đặt Analysis ToolPak
Các huynh tỉ cho muội hỏi: Không cài đặt được Analysis ToolPak do không có đĩa thì có thể thay thể công thức: D2 =EDATE(C2,12)-1
 
Thay D2 =EDATE(C2,12)-1 bằng
D2 = Date(year(C2), Month(C2) + 12, Day(C2) - 1)
 
Tính hợp đồng 1 năm có thể tính theo công thức sau

D2=DATE(YEAR(C2)+1,MONTH(C2),DAY(C2)-1)

Thay D2 =EDATE(C2,12)-1 bằng
D2 = Date(year(C2), Month(C2) + 12, Day(C2) - 1)

Đúng là không có tay của sư huynh vô thì không xong. Hôm qua muội cũng loay hoay áp dụng lời giải của bạn hoangminhtien mà cứ báo sai liên tục. Sáng nay, vào thử lại công thức của sư huynh thì đáp ứng được tốt cho công việc.

Xin cám ơn sư huynh ptm0412. Quả là không hổ danh dành cho sư phụ đào tạo từ xa cho các thành viên.
 
Của HoangMinhTien:
D2=DATE(YEAR(C2)+1,MONTH(C2),DAY(C2)-1)

Tôi không thấy sai gì cả?
 
Muội xin gởi thông tin này để các sư huynh cứu muội với, không rõ cũng cái =EDATE(U3;X3)-1 này sao cái máy tại cơ quan mở lên thì báo đúng, còn về nhà thì lại báo lỗi: #NAME?. Nhở các sư huynh cho ý kiến.

attachment.php

(Đã sử dụng Add-Ins đầy đủ)

attachment.php


Xin cám ơn.
 

File đính kèm

  • hanhtoikhonkho.jpg
    hanhtoikhonkho.jpg
    22.8 KB · Đọc: 72
  • Add_Ins.jpg
    Add_Ins.jpg
    12.2 KB · Đọc: 72
Sáng giờ, chờ các huynh cứu giúp muội bài này. Chắc ai cũng bận hành tới khốn khổ (HTKK3.0) nên chưa trả lời cho muội chăng?
Về nhà làm không được, đem file vào cơ quan thì không bị tình trạng báo lỗi: #NAME?. Xin các huynh chỉ giúp muội để khắc phục lỗi trên tại máy nhà. Xin cám ơn.
 
tại máy ở nhà, bạn chưa cài Addins Analysis toolpak, bạn vào Addins để cài là được
 
Sáng giờ, chờ các huynh cứu giúp muội bài này. Chắc ai cũng bận hành tới khốn khổ (HTKK3.0) nên chưa trả lời cho muội chăng?
Về nhà làm không được, đem file vào cơ quan thì không bị tình trạng báo lỗi: #NAME?. Xin các huynh chỉ giúp muội để khắc phục lỗi trên tại máy nhà. Xin cám ơn.
Thử bấm Alt + F11 vào cửa số code xem thử có nhìn thấy 2 mục giống như file đính kèm này không?

untitled.JPG
 
Muội đã chiếu theo lời giáo huấn của huynh y khuôn ạ.

attachment.php
 

File đính kèm

  • dochieu.jpg
    dochieu.jpg
    13.6 KB · Đọc: 63
Mở tập tin ra xem thì hàm: =EDATE(U3;X3)-1 vẫn thực hiện được không báo lỗi gì cả. Nhưng khi nhấn F2 lên để xem công thức thì báo lỗi #NAME?

attachment.php
 

File đính kèm

  • Edit.jpg
    Edit.jpg
    22.5 KB · Đọc: 62
Muội muội chạy teamviewer cho huynh xem cho nào
(Nhưng nhớ tắt camera WC trước khi huynh vào nhé)
 
Lần chỉnh sửa cuối:
Muội chân thành cám ơn sư huynh ptm0412 đã hướng dẫn gỡ bỏ toàn bộ office 2003 cũ đang hiện hành trong máy. Sau đó cài lại bộ office 2003 mới (để cài đặt Add-Ins Analysis ToolPak) thì không còn bị lỗi dù có edit cách mấy khi (nhấn F2) cho vùng có sử dụng công thức =EDATE(U3;X3).

Lý do: Người cái máy trước đây cho muội sử dụng bản office 2003 vớ vẩn nào đó, trong khi cái Add-Ins Analysis ToolPak trên cái điã CD của muội lại lại là (Bộ office 2003) xịn (Origin 100%) của Bill Gates tặng cho sư huynh ptm0412.

Chỉ có vậy thôi mà đã hành hạ muội 2 ngày qua, làm cho sư huynh phải tốn tiền điện thoại hướng dẫn từ xa cho muội. (Hết máy tại cơ quan đến máy tại nhà). Đây là tình huống giải quyết rốt ráo nhất cho trường hợp này. Hỡi ông Bill Gates của muội, cớ sao chãnh quá, chúng con còn lắm điều khó khăn ạ.

Một lần nữa xin cám ơn sư huynh ptm0412 đã nhanh chóng hỗ trợ vướng mắc kịp thời cùng sư huynh ndu96081631 đã quan tâm mách bảo chỉ thêm cái chiêu xem cái code của Analysis ToolPak - Analysis ToolPak VBA thông qua phím tổ hợp Alt+F11.


attachment.php



Thân gởi các huynh triệu nụ hôn nồng thắm nhất.
 

File đính kèm

  • verygood.jpg
    verygood.jpg
    22.4 KB · Đọc: 59
Chỉnh sửa lần cuối bởi điều hành viên:
Web KT
Back
Top Bottom