Tính ngày cuối cùng trong tháng

Liên hệ QC
Công thức bài cuối của LeHuong là đúng rồi!

Nếu thêm tí mắm muối nữa thì hay biết bao: Chỉ hiện những dòng nào đúng là ngày cuối có giao dịch thì tuyệt!
Cháu thêm tí xì dầu chú ạ
Mã:
=IF(LOOKUP(2;1/(MONTH($A$2:$A$23)=MONTH(A2));$A$2:$A$23)=A2;"Ngày giao dịch cuối cùng trong tháng "&MONTH(A2);"")
 
Tăng độ kho của bài anh Hoang2013 chút, dùng 1 công thức tìm ngày giao dịch cuối cùng của từng tháng (Thứ tự các ngày giao dịch không được sắp xếp),
Lưu ý: liệt kê tất cả các kết quả liền nhau trong một cột
:D:D:D
 

File đính kèm

  • Book1.xlsx
    10.4 KB · Đọc: 13
Lần chỉnh sửa cuối:
Tăng độ kho của bài anh Hoang2013 chút, dùng 1 công thức tìm ngày giao dịch cuối cùng của từng tháng:
Lưu ý: liệt kê tất cả các kết quả liền nhau trong một cột
Thứ tự các ngày giao dịch không được sắp xếp!!!
:D:D:D
Hình như anh giải ở bài #40 rồi thì phải.
/-*+//-*+//-*+/
 
Hình như anh giải ở bài #40 rồi thì phải.
/-*+//-*+//-*+/
Anh xem file của em đi, file của anh anh gom 3 cột lại thành có một cột à, mà file đấy anh dựa vào chỗ đã đánh dấu để tìm (mà ngày đấy có lẽ anh @Hoang2013 để dấu để cho mọi người biết, nên dùng dấu đấy thấy không hợp lý lắm)
 
Tăng độ kho của bài anh Hoang2013 chút, dùng 1 công thức tìm ngày giao dịch cuối cùng của từng tháng (Thứ tự các ngày giao dịch không được sắp xếp),
Lưu ý: liệt kê tất cả các kết quả liền nhau trong một cột
:D:D:D
Mã:
=MAX(IF(MONTH($A$2:$A$23)=ROW(A1);$A$2:$A$23))
Ctrl Shift Enter
t k tìm công thức nào tốt hơn đc :))
 
Anh xem file của em đi, file của anh anh gom 3 cột lại thành có một cột à!!!
Cái dữ liệu đó anh copy của anh Hoang2013 xuống, nó là dạng "text" suông sẽ khó lấy hơn.

Đại khái! cũng giống công thức của bài #40 có thể còn gọn hơn chút nữa.
F2=AGGREGATE(15,6,$A$2:$A$23/ISNUMBER(FIND("'*'",$C$2:$C$23)),ROW(A1))
 
Mã:
=MAX(IF(MONTH($A$2:$A$23)=ROW(A1);$A$2:$A$23))
Ctrl Shift Enter
t k tìm công thức nào tốt hơn đc :))
Công thức này cũng được đấy chị, nhưng chưa đúng yêu cầu:
1. Nếu khác năm thì sẽ bị sai.
2. Sẽ bị đứt quảng nếu tháng không liên tục ( em có yêu cầu liệt kê tất cả các kết quả liền nhau trong một cột)
 
Cái dữ liệu đó anh copy của anh Hoang2013 xuống, nó là dạng "text" suông sẽ khó lấy hơn.

Đại khái! cũng giống công thức của bài #40 có thể còn gọn hơn chút nữa.
F2=AGGREGATE(15,6,$A$2:$A$23/ISNUMBER(FIND("'*'",$C$2:$C$23)),ROW(A1))
e 1 máy dùng office 2013; 1 máy dùng 2010 và sever sử dụng office 2007 nên e ít áp dụng công thức AGGREGATE này được vì nó k sử dụng đc cho 2007 :( thấy anh sử dụng hay quá, lại có thêm động lực học rồi ạ :)
 
Cái dữ liệu đó anh copy của anh Hoang2013 xuống, nó là dạng "text" suông sẽ khó lấy hơn.

Đại khái! cũng giống công thức của bài #40 có thể còn gọn hơn chút nữa.
F2=AGGREGATE(15,6,$A$2:$A$23/ISNUMBER(FIND("'*'",$C$2:$C$23)),ROW(A1))
Bỏ đấu * đi anh, dấu * chỉ là để đánh dấu cho mình biết thôi, nếu có dấu * thì đâu còn gì để đố index(,small(if(=*)))!!!
 
Công thức này cũng được đấy chị, nhưng chưa đúng yêu cầu:
1. Nếu khác năm thì sẽ bị sai.
2. Sẽ bị đứt quảng nếu tháng không liên tục ( em có yêu cầu liệt kê tất cả các kết quả liền nhau trong một cột)
Đây gọi là gà mảng gặp cao thủ mảng :) sẽ thử nghiên cứu thêm công thức xem sao vậy :)
 

File đính kèm

  • Book1_3.xlsx
    9.7 KB · Đọc: 10
Nhờ các cao thủ giúp mình file này nhé.
Thường mình mua hàng thanh toán làm 2 đến 3 lần mới hết. Mình cần phải tính số ngày chịu lãi cho từng mã hàng:

Nguyên tắc tính:
- Tính từ từng lần chi tiền mua hàng đến mốc kết thúc (= ngày thu đủ tiền bán hàng cho khách)
Ví dụ với hàng A1 = (L1 đến K0) + (L2 đến K0) có tháng ngoài vùng = 0 có tháng trong vùng = …..
- Các tháng trước ngày mua lần 1 L1 và sau ngày kết thúc K0 không tính.
Các bạn xem file giúp mình nhé
 

File đính kèm

  • Ví dụ tính số ngày chịu lãi mua hàng 2016.xlsx
    9.7 KB · Đọc: 6
Lần chỉnh sửa cuối:
Vậy em đố lại, tìm ngày cuối cùng của các tháng thôi :confused::confused::confused:!!!
Lưu ý: liệt kê tất cả các kết quả liền nhau trong một cột
Thử:
Mã:
F2=AGGREGATE(14,6,$A$2:$A$23/(EOMONTH($A$2:$A$23*1,-1)+1=INDEX(EDATE(EOMONTH(MIN($A$2:$A$23),-1)+1,ROW(INDIRECT("1:"&DATEDIF(MIN($A$2:$A$23),MAX($A$2:$A$23),"m")+1))-1),ROW(A1))),1)
Enter fill xuống.

Chúc em ngày vui.
 

File đính kèm

  • Eke_rula.Dovui.xlsb
    10 KB · Đọc: 8
Tăng độ kho của bài anh Hoang2013 chút, dùng 1 công thức tìm ngày giao dịch cuối cùng của từng tháng (Thứ tự các ngày giao dịch không được sắp xếp),
Lưu ý: liệt kê tất cả các kết quả liền nhau trong một cột
:D:D:D
giải vụ đệ quy với len sao rồi bạn
 
Thử:
Mã:
F2=AGGREGATE(14,6,$A$2:$A$23/(EOMONTH($A$2:$A$23*1,-1)+1=INDEX(EDATE(EOMONTH(MIN($A$2:$A$23),-1)+1,ROW(INDIRECT("1:"&DATEDIF(MIN($A$2:$A$23),MAX($A$2:$A$23),"m")+1))-1),ROW(A1))),1)
Enter fill xuống.

Chúc em ngày vui.
Bác kiểm tra lại nhé, thay đổi năm là tèo
 

File đính kèm

  • Copy of Eke_rula.Dovui.xlsb
    10.1 KB · Đọc: 4
Bác kiểm tra lại nhé, thay đổi năm là tèo
Vậy phải sửa lại thành vầy:
Tạo 1 name:
Mang1=SMALL(EOMONTH(Sheet1!$A$2:$A$23*1,-1)+1,ROW(Sheet1!$1:$22))
Công thức mảng:
PHP:
F2=AGGREGATE(14,6,$A$2:$A$23/(EOMONTH($A$2:$A$23*1,-1)+1=INDEX(Mang1,AGGREGATE(15,6,MATCH(ROW($1:$22),INDEX(MATCH(Mang1,Mang1,),),0),ROW(A1)))),1)
Enter fill xuống.

Chúc anh em ngày thiệt vui.
 

File đính kèm

  • Eke_rula.Dovui.xlsb
    10.2 KB · Đọc: 4
Vậy phải sửa lại thành vầy:
Tạo 1 name:
Mang1=SMALL(EOMONTH(Sheet1!$A$2:$A$23*1,-1)+1,ROW(Sheet1!$1:$22))
Công thức mảng:
PHP:
F2=AGGREGATE(14,6,$A$2:$A$23/(EOMONTH($A$2:$A$23*1,-1)+1=INDEX(Mang1,AGGREGATE(15,6,MATCH(ROW($1:$22),INDEX(MATCH(Mang1,Mang1,),),0),ROW(A1)))),1)
Enter fill xuống.

Chúc anh em ngày thiệt vui.
Tưởng đâu anh không loại trùng chứ :):):), cách của em:
Mã:
F2=SMALL(IF(TEXT(SMALL($A$2:$A$23,ROW($1:$22)),"mmyy")<>IFERROR(TEXT(SMALL($A$2:$A$23,ROW($2:$23)),"mmyy"),),SMALL($A$2:$A$23,ROW($1:$22))),ROW(A1))
Ctrl+Shit+Enter rồi fill xuống!!!
 
Tưởng đâu anh không loại trùng chứ :):):), cách của em:
Mã:
F2=SMALL(IF(TEXT(SMALL($A$2:$A$23,ROW($1:$22)),"mmyy")<>IFERROR(TEXT(SMALL($A$2:$A$23,ROW($2:$23)),"mmyy"),),SMALL($A$2:$A$23,ROW($1:$22))),ROW(A1))
Ctrl+Shit+Enter rồi fill xuống!!!
Cái hay công thức này là lấy được mốc cuối của từng đoạn trong mảng, cái này có thể áp dụng trong nhiều bài khác nữa.

Vậy giờ nếu ngược lại, em tìm ngày bắt đầu từng tháng, tức ngày giao dịch nhỏ nhất của từng tháng thì công thức em bị biến đổi nhiều không?

Công thức của anh thay đổi đúng 1 ký tự: tức từ 14 thay thành 15 mà thôi.

Chúc em ngày thiệt vui.
 
Web KT
Back
Top Bottom