Excel lấy giá trị của ngày nhập cuối cùng trong một tháng (4 người xem)

Liên hệ QC

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

Phanhanhdai

Thành viên tiêu biểu
Tham gia
16/3/08
Bài viết
733
Được thích
1,876
Nghề nghiệp
Thiết kế công trình
&&&%$R Em có bảng file đính kèm. Em muốn bảng bên trái nhập dữ liệu theo ngày tháng, bảng bên phải tự động cập nhật và tổng hợp kết quả ngày nhập cuối trong mối tháng. Anh chị nào có cách gì giúp em với.
 

File đính kèm

&&&%$R Em có bảng file đính kèm. Em muốn bảng bên trái nhập dữ liệu theo ngày tháng, bảng bên phải tự động cập nhật và tổng hợp kết quả ngày nhập cuối trong mối tháng. Anh chị nào có cách gì giúp em với.
Tại J7 bạn nhập ct sau:
=INDEX($B$9:$B$17,COUNTIF($A$9:$A$17,"<"&DATE(2008,TRIM(RIGHT($I7,2))+1,1)),0)
Hay là dùng Ct:
=VLOOKUP(DATE(2008,TRIM(RIGHT($I7,2))+1,0),$A$9:$B$18,2,1)
Với điều kiện ngày phải xếp theo TT tăng dần.
 
Tại J7 bạn nhập ct sau:
=INDEX($B$9:$B$17,COUNTIF($A$9:$A$17,"<"&DATE(2008,TRIM(RIGHT($I7,2))+1,1)),0)
Hay là dùng Ct:
=VLOOKUP(DATE(2008,TRIM(RIGHT($I7,2))+1,0),$A$9:$B$18,2,1)
Với điều kiện ngày phải xếp theo TT tăng dần.

Bác xem lại giúp, nếu như 03/03/2008 là 2000 và báo cáo có 12 tháng thì bị sai :
Kết quả Dư nợ
Tháng 1 6000
Tháng 2 1000
Tháng 3 2000
Tháng 4 2000
Tháng 5 2000
Tháng 6 2000
Tháng 7 2000
Tháng 8 2000
Tháng 9 2000
Tháng 10 2000
Tháng 11 2000
Tháng 12 2000
 
Một cách khác dùng công thức mảng :
 

File đính kèm

&&&%$R Em có bảng file đính kèm. Em muốn bảng bên trái nhập dữ liệu theo ngày tháng, bảng bên phải tự động cập nhật và tổng hợp kết quả ngày nhập cuối trong mối tháng. Anh chị nào có cách gì giúp em với.

Dùng INDEX + MATCH.​

Kiểm tra giúp xem có trường hợp nào bị sai không?​
 

File đính kèm

Lần chỉnh sửa cuối:
Thì thêm if vào là oK, quên dự trù khoảng đó
=IF(SUMPRODUCT((MONTH($A$9:$A$18)>=TRIM(RIGHT($I7,2))*1)*1)>0,VLOOKUP(DATE(2008,TRIM(RIGHT($I7,2))+1,0),$A$9:$B$18,2,1),0)
 
Bác xem lại giúp, nếu như 03/03/2008 là 2000 và báo cáo có 12 tháng thì bị sai :
Tháng 3 2000
Tháng 4 2000
...
Tháng 12 2000
Như vậy mới đúng chứ HoanhDanh?
Cuối tháng 3 dư nợ 2000, từ tháng 4 đến tháng 12 không phát sinh, số dư phải còn nguyên mới đúng.
Còn như file của HoangDanh, từ tháng 4 trở về sau số dư bằng không, con nợ quịt nợ sạch chẳng làm gì nó. Mà mình làm chủ nợ biết đâu mà đòi, tất cả bằng zero.
 
Như vậy mới đúng chứ HoanhDanh?
Cuối tháng 3 dư nợ 2000, từ tháng 4 đến tháng 12 không phát sinh, số dư phải còn nguyên mới đúng.
Còn như file của HoangDanh, từ tháng 4 trở về sau số dư bằng không, con nợ quịt nợ sạch chẳng làm gì nó. Mà mình làm chủ nợ biết đâu mà đòi, tất cả bằng zero.

Theo ý bác thì như thế này à? (P/a1)
 

File đính kèm

Theo ý bác thì như thế này à? (P/a1)

Cả 2 phương án của Boyxin đều đúng, nếu chú ý chuyện này:
Nếu có phát sinh làm thay đổi Dư nợ thì mới nhập liệu, không thì thôi. Chứ không phát sinh chả ai nhập vào 1 dòng dữ liệu trống cả.

Thì thêm if vào là oK, quên dự trù khoảng đó

Còn cái Anh Thu Nghi này, công thức đang đúng đè sửa lại cho sai: trong điều kiện của If có tháng nào mà lớn hơn 13 đâu chứ, nên số dư cuối tháng 12 bằng không theo giá trị If (False).

Chắc Thu Nghi là con nợ, cuối năm kết sổ mới trốn.
 
Còn cái Anh Thu Nghi này, công thức đang đúng đè sửa lại cho sai: trong điều kiện của If có tháng nào mà lớn hơn 13 đâu chứ, nên số dư cuối tháng 12 bằng không theo giá trị If (False).

Chắc Thu Nghi là con nợ, cuối năm kết sổ mới trốn.
Tranh thủ hôm nay thứ bảy, các nhân tài nghỉ weekend mới có cơ hội trả lời mà Bác cứ chọc hoài.
Cơ bản là chỉ ra cho cái hướng còn vận dụng thì tùy bạn ấy. Quan trọng nhất là tổ chức Data, chớ ngày mà format m/d là thấy không được.
 
Thêm một kiểu ct dài đoàng nữa.
 

File đính kèm

&&&%$R Em có bảng file đính kèm. Em muốn bảng bên trái nhập dữ liệu theo ngày tháng, bảng bên phải tự động cập nhật và tổng hợp kết quả ngày nhập cuối trong mối tháng.

Mình lấy dữ liệu từ file anh ptm0412, góp thêm ba cách nữa, không cần sort dữ liệu, không cần Name:

Cách 1:
{=SUM(IF($A$9:$A$30=LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$B$9:$B$30))}

Nếu bẫy thêm lỗi #Num nữa thì thêm vào:

{=IF(ISERR(SUM(IF($A$9:$A$30=LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),
$B$9:$B$30))),0,SUM(IF($A$9:$A$30=LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,
""),1),$B$9:$B$30)))}

Cách 2:
{=INDEX($B$9:$B$30,MATCH(LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$A$9:$A$30,0),0)}

Nếu bẫy thêm lỗi #Num nữa thì thêm vào:

{=IF(ISERR(INDEX($B$9:$B$30,MATCH(LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$A$9:$A$30,0),0)),0,
INDEX($B$9:$B$30,MATCH(LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$A$9:$A$30,0),0))}


Cách 3:
{=VLOOKUP(LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$A$9:$B$30,2,0)}

Nếu bẫy thêm lỗi #Num nữa thì thêm vào:

{=IF(ISERR(VLOOKUP(LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$A$9:$B$30,2,0)),0,
VLOOKUP(LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$A$9:$B$30,2,0))}

Bạn xem file đính kèm.
 

File đính kèm

Lần chỉnh sửa cuối:
Cách dễ nhất là làm thêm 1 cột tính tháng (nếu làm lâu, thì cả cột năm nữa)
Rồi dùng DSUM, SUMIF... theo điều kiện tháng=, năm=
Như thế là nhanh và đỡ rắc rối nhất.
 
Mình lấy dữ liệu từ file anh ptm0412, góp thêm ba cách nữa, không cần sort dữ liệu, không cần Name:
Ba phát của Bác lại không có cách nếu tháng không phát sinh thì số dư phải lấy số dư của tháng trước. Hì Hì lại trốn nợ.
 
Ba phát của Bác lại không có cách nếu tháng không phát sinh thì số dư phải lấy số dư của tháng trước. Hì Hì lại trốn nợ.

À, lúc đang viết không biết các anh thêm điều kiện chuyển số dư vào, cái này cũng đơn giản thôi, xử lý sau hàm ISERR là xong mà, thay số 0 bằng giá trị của tháng trước đó.

Em gửi lại file ở bài trước, xin vui lòng tải lại.

Cách 1:
{=IF(ISERR(SUM(IF($A$9:$A$30=LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$B$9:$B$30))),J6,SUM(IF($A$9:$A$30=LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$B$9:$B$30)))}

Cách 2:
{=IF(ISERR(INDEX($B$9:$B$30,MATCH(LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$A$9:$A$30,0),0)),K6,INDEX($B$9:$B$30,MATCH(LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$A$9:$A$30,0),0))}


Cách 3:
{=IF(ISERR(VLOOKUP(LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$A$9:$B$30,2,0)),L6,VLOOKUP(LARGE(IF(MONTH($A$9:$A$30)=$I7,$A$9:$A$30,""),1),$A$9:$B$30,2,0))}
 
Nếu là tôi thì tôi sẽ làm theo cách khác ngắn gọn hơn rất nhiều lần!
Tham khảo thử! Nếu thích thì xin có ý kiến góp ý nhé
-----------------------
Oh... Post rồi xem lại mới thấy cách mình làm giống với của boyxin 100%.
Cùng ý tưởng quá nhỉ!
Tôi luôn thích cách ngắn nhất. Dài thòng lòng nhìn ngán lắm
 

File đính kèm

Lần chỉnh sửa cuối:
Mình lấy dữ liệu từ file anh ptm0412 ...
Kiệt ui, mình không có file nào,
À, lúc đang viết không biết các anh thêm điều kiện chuyển số dư vào
Và mình không thêm điều kiện, chỉ là dòm dữ liệu trong file có tiêu đề cột là Dư nợ, có thể là số dư tài khoản hoặc số dư công nợ, đằng nào cũng phải theo đúng nguyên tắc dư nợ nên mới phát biểu thế thôi.

Nếu là mình, sẽ sửa "tháng 1" thành 1 rồi format custom như boyxin, rồi dùng công thức của Thu Nghi: (công thức đầu tiên ấy, công thức thức sau sai vì trốn nợ).
Mã:
=VLOOKUP(DATE(2008,[COLOR=red]I7+1,0)[/COLOR],$A$9:$B$18,2,1)
 
Kiệt ui, mình không có file nào,

Và mình không thêm điều kiện, chỉ là dòm dữ liệu trong file có tiêu đề cột là Dư nợ, có thể là số dư tài khoản hoặc số dư công nợ, đằng nào cũng phải theo đúng nguyên tắc dư nợ nên mới phát biểu thế thôi.

Nếu là mình, sẽ sửa "tháng 1" thành 1 rồi format custom như boyxin, rồi dùng công thức của Thu Nghi: (công thức đầu tiên ấy, công thức thức sau sai vì trốn nợ).
Mã:
=VLOOKUP(DATE(2008,[COLOR=red]I7+1,0)[/COLOR],$A$9:$B$18,2,1)

Đúng là do em hấp tấp quá nên viết lung tung, nhìn lại công thức của mình thiệt củ chuối quá!+-+-+-+, anh thông cảm cho em út nhé! Sẽ tạ lỗi anh 5 chai ken nhé
 
Chào cả nhà,

Mình có file muốn lấy dữ liệu ngày sau cùng mới nhất của 1 nhân viên có nhiều lần bị kỷ luật vi phạm. Từ sheet " theo doi ky luat" mình lấy data ngày sau cùng qua bên sheet " TỔNG HỢP".Nhờ cao nhân giúp đỡ.

Thanks !
 

File đính kèm

Web KT

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

Back
Top Bottom