Bạn cứ làm 1 file ví dụ đưa lên!Ví dụ mình làm hàng T1-T2-T3....T12 của năm 2016
Vậy làm sao điền ngày cuối từ tháng vào các dòng tương ứng bên dưới
=EOMONTH(DATE(2016,--SUBSTITUTE(A4,"T",""),1),)
bạn nhập công thức sau:Đây bạn giúp nhé
Bạn điền công thức vào dòng màu vàng để tự động trả về ngày cuối của tháng tương ứng năm 2016
Đây bạn giúp nhé
Bạn điền công thức vào dòng màu vàng để tự động trả về ngày cuối của tháng tương ứng năm 2016
Đây bạn giúp nhé
Bạn điền công thức vào dòng màu vàng để tự động trả về ngày cuối của tháng tương ứng năm 2016
=DATE(--RIGHT($A$2;4);--IF(LEN(A4)=2;RIGHT(A4;1)+1;RIGHT(A4;2)+1);0)
Ngắn hơn tý:bạn nhập công thức sau:PHP:=EOMONTH(DATE(2016,--TRIM(SUBSTITUTE(A4,"T","")),1),)
A6=EDATE(DATE(2016,1,),MID(A4,2,2))
ấy chết có khoảng trống đâu mà trim haizz đầu với ócNgắn hơn tý:
Mã:A6=EDATE(DATE(2016,1,),MID(A4,2,2))
!!!
ngắn hơn nữa:Ngắn hơn tý:
Mã:A6=EDATE(DATE(2016,1,),MID(A4,2,2))
!!!
=DATE(2016,SUBSTITUTE(A4,"T","")+1,)
các cao thủ núp lùm khà khàHoặc thử:
=DATE(2016,1+MID(A4,2,2),0)
Lại ngắn hơn nữangắn hơn nữa:
PHP:=DATE(2016,SUBSTITUTE(A4,"T","")+1,)
quỳ luônLại ngắn hơn nữa!!!
=EDATE(42369,MID(A4,2,2))
Ngắn thêm 2 ký tự:Lại ngắn hơn nữa!!!
=EDATE(42369,MID(A4,2,2))
ôi các bácNgắn thêm 2 ký tự:
=DATE(2106,COLUMN()+1,)
![]()
Hay anh nhỉ từ dài dòng nghĩ đủ kiểu nó lại ngắn cả khúcNgắn thêm 2 ký tự:
=DATE(2106,COLUMN()+1,)
![]()
À sao cái File 2007Excel_Function_and_Formulas em mở nó trắng xóa luôn vậy anh.Ngắn thêm 2 ký tự:
=DATE(2106,COLUMN()+1,)
![]()
Nó đang nén, đuôi .rar mà.À sao cái File 2007Excel_Function_and_Formulas em mở nó trắng xóa luôn vậy anh.
Quá ngắn luôn Anh.Ngắn thêm 2 ký tự:
=DATE(2106,COLUMN()+1,)
![]()
à hihi em biết mà, tại em chưa unblockNó đang nén, đuôi .rar mà.
Ngắn thêm 1 ký tự, thành 3:Hoặc thử:
=DATE(2016,1+MID(A4,2,2),0)
để ngắn hơn nữa bạn đặt tên ví dụ:Đúng là các bác cao cao thủ thật.
Ngắn thêm 1 ký tự, thành 3:
=DATE(116,COLUMN()+1,)
Cho mình hỏi chút: 116 là gì vậy?
Nếu mình cỉ cần lấy số ngày thôi (T1 là 31 T2 là 29 tức ngày cuối) thì dùng Right hoặc Eomonth công thức của bạn còn có thể ngắn hơn đc không
bạn nên nhấn reply để biết bạn muốn hỏi ai -- tương đương hàm value()để ngắn hơn nữa bạn đặt tên ví dụ:
gpe=công thức
ra ô đó gõ =gpe
- Tức là tạo ra công thức riêng trong exxcel hả bạn?
=DATE(--RIGHT($A$2;4);--IF(LEN(A4)=2;RIGHT(A4;1)+1;RIGHT(A4;2)+1);0)
- Trong đây "--" là gì vậy bạn. Khi nào dùng bạn?
để ngắn hơn nữa bạn đặt tên ví dụ:bạn nên nhấn reply để biết bạn muốn hỏi ai -- tương đương hàm value()
không nha bạn chỉ là đặt tên trong khung name của excel thôi.để ngắn hơn nữa bạn đặt tên ví dụ:
gpe=công thức
ra ô đó gõ =gpe
- Tức là tạo ra công thức riêng trong exxcel hả bạn?
Ngày M Mở cửa Đóng cửa
01/06/2006 567,17 574,13
01/09/2006 561,45 567,17
01/12/2006 557,47 561,45 '*'
02/16/2006 570,37 557,47
02/17/2006 576,07 570,37
02/20/2006 583,28 576,07
02/21/2006 553,47 569,73
02/22/2006 552,05 553,47
02/23/2006 549,66 552,05 '*'
03/04/2006 544,45 549,66
03/07/2006 545,63 544,45
03/16/2006 537,57 545,63
03/23/2006 537,88 539,44
03/24/2006 537,54 537,88
03/27/2006 523,09 537,54
03/28/2006 528,45 523,09
03/29/2006 602,59 602,12
03/30/2006 597,85 602,59
03/31/2006 597,01 597,85 '*'
04/04/2006 598,39 597,01
04/12/2006 603,15 598,39 '*'
05/09/2006 600,84 603,15 '*'
Cháu không biết cháu có hiểu nhầm ý hoặc công thức này có đúng không ạXin đố các nhà siêu công thức tìm ngày cuối của các tháng có giao dịch
PHP:Ngày M Mở cửa Đóng cửa 01/06/2006 567,17 574,13 01/09/2006 561,45 567,17 01/12/2006 557,47 561,45 '*' 02/16/2006 570,37 557,47 02/17/2006 576,07 570,37 02/20/2006 583,28 576,07 02/21/2006 553,47 569,73 02/22/2006 552,05 553,47 02/23/2006 549,66 552,05 '*' 03/04/2006 544,45 549,66 03/07/2006 545,63 544,45 03/16/2006 537,57 545,63 03/23/2006 537,88 539,44 03/24/2006 537,54 537,88 03/27/2006 523,09 537,54 03/28/2006 528,45 523,09 03/29/2006 602,59 602,12 03/30/2006 597,85 602,59 03/31/2006 597,01 597,85 '*' 04/04/2006 598,39 597,01 04/12/2006 603,15 598,39 '*' 05/09/2006 600,84 603,15 '*'
=DATE(YEAR(A2);MONTH(A2)+1;0)
Dạ anh!Xin đố các nhà siêu công thức tìm ngày cuối của các tháng có giao dịch
PHP:Ngày M Mở cửa Đóng cửa 01/06/2006 567,17 574,13 01/09/2006 561,45 567,17 01/12/2006 557,47 561,45 '*' 02/16/2006 570,37 557,47 02/17/2006 576,07 570,37 02/20/2006 583,28 576,07 02/21/2006 553,47 569,73 02/22/2006 552,05 553,47 02/23/2006 549,66 552,05 '*' 03/04/2006 544,45 549,66 03/07/2006 545,63 544,45 03/16/2006 537,57 545,63 03/23/2006 537,88 539,44 03/24/2006 537,54 537,88 03/27/2006 523,09 537,54 03/28/2006 528,45 523,09 03/29/2006 602,59 602,12 03/30/2006 597,85 602,59 03/31/2006 597,01 597,85 '*' 04/04/2006 598,39 597,01 04/12/2006 603,15 598,39 '*' 05/09/2006 600,84 603,15 '*'
khà khà lắm đề phếtXin đố các nhà siêu công thức tìm ngày cuối của các tháng có giao dịch
PHP:Ngày M Mở cửa Đóng cửa 01/06/2006 567,17 574,13 01/09/2006 561,45 567,17 01/12/2006 557,47 561,45 '*' 02/16/2006 570,37 557,47 02/17/2006 576,07 570,37 02/20/2006 583,28 576,07 02/21/2006 553,47 569,73 02/22/2006 552,05 553,47 02/23/2006 549,66 552,05 '*' 03/04/2006 544,45 549,66 03/07/2006 545,63 544,45 03/16/2006 537,57 545,63 03/23/2006 537,88 539,44 03/24/2006 537,54 537,88 03/27/2006 523,09 537,54 03/28/2006 528,45 523,09 03/29/2006 602,59 602,12 03/30/2006 597,85 602,59 03/31/2006 597,01 597,85 '*' 04/04/2006 598,39 597,01 04/12/2006 603,15 598,39 '*' 05/09/2006 600,84 603,15 '*'
có phải thế này không chú?Ngày có giao dịch cuối cùng trong tháng đã được đánh dấu bên lề phải mà!
Ví dụ tháng 1 có 31 ngày, nhưng ngày giao dịch cuối cùng của tháng nàytrong năm 2006 đó là 12 tháng 01.
À, lí ra phải viết là ngày giao dịch cuối cùng của từng tháng.
Rất xin lỗi các bạn!
=LOOKUP(2;1/(MONTH($A$2:$A$23)=MONTH(A2));$A$2:$A$23)
Nếu dữ liệu đã sắp xếp như vậy anh có thể dùng CT này (ví dụ data là A1:C23), CT tại F2:Xin đố các nhà siêu công thức tìm ngày cuối của các tháng có giao dịch
PHP:Ngày M Mở cửa Đóng cửa 01/06/2006 567,17 574,13 01/09/2006 561,45 567,17 01/12/2006 557,47 561,45 '*' 02/16/2006 570,37 557,47 02/17/2006 576,07 570,37 02/20/2006 583,28 576,07 02/21/2006 553,47 569,73 02/22/2006 552,05 553,47 02/23/2006 549,66 552,05 '*' 03/04/2006 544,45 549,66 03/07/2006 545,63 544,45 03/16/2006 537,57 545,63 03/23/2006 537,88 539,44 03/24/2006 537,54 537,88 03/27/2006 523,09 537,54 03/28/2006 528,45 523,09 03/29/2006 602,59 602,12 03/30/2006 597,85 602,59 03/31/2006 597,01 597,85 '*' 04/04/2006 598,39 597,01 04/12/2006 603,15 598,39 '*' 05/09/2006 600,84 603,15 '*'
F2=IFERROR(TEXT(INDEX($A$2:$A$23,SMALL(IF(TEXT($A$2:$A$23,"mm/yy")<>TEXT($A$3:$A$24,"mm/yy"),ROW($1:$22)),ROW(A1))),"dd/mm/yy"),"")
À! không có chi anh, "đố" thì phải "vui" chứ.Ngày có giao dịch cuối cùng trong tháng đã được đánh dấu bên lề phải mà!
Ví dụ tháng 1 có 31 ngày, nhưng ngày giao dịch cuối cùng của tháng nàytrong năm 2006 đó là 12 tháng 01.
À, lí ra phải viết là ngày giao dịch cuối cùng của từng tháng.
Rất xin lỗi các bạn!
=AGGREGATE(15,6,DATE(MID($A$2:$A$23,7,4),LEFT($A$2:$A$23,2),MID($A$2:$A$23,4,2))/ISNUMBER(FIND("'*'",$A$2:$A$23)),ROW())
Cháu thêm tí xì dầu chú ạ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!
=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);"")
Hình như anh giải ở bài #40 rồi thì phả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!!!
![]()
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)Hình như anh giải ở bài #40 rồi thì phả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 (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
![]()
=MAX(IF(MONTH($A$2:$A$23)=ROW(A1);$A$2:$A$23))
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.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ông thức này cũng được đấy chị, nhưng chưa đúng yêu cầu:Ctrl Shift EnterMã:=MAX(IF(MONTH($A$2:$A$23)=ROW(A1);$A$2:$A$23))
t k tìm công thức nào tốt hơn đc)
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 2007Cá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á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))
Đây gọi là gà mảng gặp cao thủ mảngCô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)
Thì phải căn cứ trên dữ liệu của người ra đề chứ, trong file em cũng vây mà.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(=*)))!!!
Vậy em đố lại, tìm ngày cuối cùng của các tháng thôiThì phải căn cứ trên dữ liệu của người ra đề chứ, trong file em cũng vây mà.
![]()
Thử:Vậy em đố lại, tìm ngày cuối cùng của các tháng thôi!!!
Lưu ý: liệt kê tất cả các kết quả liền nhau trong một cột
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)
giải vụ đệ quy với len sao rồi bạnTă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
![]()
Bác kiểm tra lại nhé, thay đổi năm là tèoThử:
Enter fill xuống.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)
Chúc em ngày vui.
Vậy phải sửa lại thành vầy:Bác kiểm tra lại nhé, thay đổi năm là tèo
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)
Tưởng đâu anh không loại trùng chứ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:
Enter fill xuố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)
Chúc anh em ngày thiệt vui.
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))
Bài đó dùng LEN thì chịu rồi, khó quá nên bỏ qua rồi!!!giải vụ đệ quy với len sao rồi bạn
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.Tưởng đâu anh không loại trùng chứ, cách của em:
Ctrl+Shit+Enter rồi fill xuống!!!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))
toàn cao thủ kỳ tài , mọi người đánh đố nhau không à, ở ngoài nhiều bài đang chờ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.
Đổi Small thành Large là được anh ạ: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.
F2=SMALL(IF(TEXT(LARGE($A$2:$A$23,ROW($1:$22)),"mmyy")<>IFERROR(TEXT(LARGE($A$2:$A$23,ROW($2:$23)),"mmyy"),),LARGE($A$2:$A$23,ROW($1:$22))),ROW(A1))