hml89
Thành viên tiêu biểu
- Tham gia
- 14/9/12
- Bài viết
- 526
- Được thích
- 392
- Giới tính
- Nam
Dùng cột phụ:Xin chào anh, chị ,em trong diễn đàn.
Tôi đang gặp khó khăn về công thức lặp lại có điều kiện, tôi đã thử làm nhưng kết quả bị sai. Mong mọi người giúp tôi.
Chi tiết tôi xin gửi file đính kèm.
Cám ơn mọi người.
D2=MIN(C2*2,5)
F3=IF(ROW(A1)<=SUM($D$2:$D$20),OFFSET($A$1,MATCH(ROW(A1),INDEX(SUMIF(OFFSET($D$1,,,ROW($1:$20)),"<>")+1,)),),"")
Dùng cột phụ:
Enter fill xuống.Mã:D2=MIN(C2*2,5) F3=IF(ROW(A1)<=SUM($D$2:$D$20),OFFSET($A$1,MATCH(ROW(A1),INDEX(SUMIF(OFFSET($D$1,,,ROW($1:$20)),"<>")+1,)),),"")
Xem file kèm.
hihi ^o^
Cái này chủ thớt "chởm" anh em mình nè anh Ba!Đúng kết quả nhưng sai yêu cầu:
Nếu cột C = 1, Lặp lại tên ở cột A 2 lần
Nếu cột C =2, lặp lại tên ở cột B 4 lần
Cho tôi xin lỗi vì câu cú lộn xộn. Xin cám ơn bạn đã giúp đỡ.Cái này chủ thớt "chởm" anh em mình nè anh Ba!
Cho "ví dụ kết quả mong muốn" thì ghi 1 đằng, yêu cầu lại ghi 1 nẻo, tréo ngoe cẳng ngỗng.
Khà khà khà!
Anh em tụi tui biết mà! nên giỡn và "chọt lét" với nhau thôi, bạn không nên để tâm!Cho tôi xin lỗi vì câu cú lộn xộn. Xin cám ơn bạn đã giúp đỡ.
Tôi nói thật là U gần 50 rồi, với lại là cũng chưa nói chuyện nhiều với các bạn, nên tôi nói đùa sợ mất lòng.Anh em tụi tui biết mà! nên giỡn và "chọt lét" với nhau thôi, bạn không nên để tâm!
Bạn có thể đùa: "Úi! ông B cố tình qua lộn nhà bà A rồi mấy anh ơi!". Đó mới hòa hợp đúng phong thái của anh em tụi tui.
Khà khà khà!
Chúc bạn học tập vui với anh em GPE.
Tôi "mém" U60, tặng bạn 1 code để xài với dữ liệu có kết quả 100.000 dòngTôi nói thật là U gần 50 rồi, với lại là cũng chưa nói chuyện nhiều với các bạn, nên tôi nói đùa sợ mất lòng.
Tôi có thể hỏi bạn 1 chút được không? tôi thấy công thức của bạn hay quá nên muốn học, nhờ bạn chỉ dùm cho tôi với! tại sao khi tôi insert thêm dòng trên thì nó lại bị N/a nhỉ?
View attachment 195633
Vậy mà ở gần thì tôi mời bạn sang làm bữa rượu chuối hột với cá nướng. Già rồi đi mần mấy cái này, đau hết cả mắt.Tôi "mém" U60, tặng bạn 1 code để xài với dữ liệu có kết quả 100.000 dòng
Hình như Kết quả và yêu cầu vẫn "bị" giống như đã nói ở bài #4.Xin chào bạn @Mộng Thường 2001
Tôi mong bạn giúp tôi vấn đề này nữa, tôi xin được gửi file. Tôi cũng định là sẽ lập 1 chủ đề khác , nhưng tôi không biết công thức này thì hỏi như thế nào.
Mong nhận được sự giúp đỡ của bạn.
Không sao đâu bạn! vậy năm tuổi của bạn lớn hơn tui và anh Ba Tê nhiều à nha! và anh Ba có năm tuổi nhỏ nhất trong 3 người mình! khà khà khà.Tôi nói thật là U gần 50 rồi, với lại là cũng chưa nói chuyện nhiều với các bạn, nên tôi nói đùa sợ mất lòng.
Tôi có thể hỏi bạn 1 chút được không? tôi thấy công thức của bạn hay quá nên muốn học, nhờ bạn chỉ dùm cho tôi với!
Hình như Kết quả và yêu cầu vẫn "bị" giống như đã nói ở bài #4.[/QUOTE
Ôi giời đất ơi, cho tôi xin lỗi. Vì tôi lười đi cắt kĩnh lão nên cứ bị dòng nọ lộn xộn dòng kia. Thông cảm cho tôi nhé!
Tôi sẽ chờ bạn, nhưng file tôi gửi bạn lần 2 nó lại bị lộn dòng nhé.Không sao đâu bạn! vậy năm tuổi của bạn lớn hơn tui và anh Ba Tê nhiều à nha! và anh Ba có năm tuổi nhỏ nhất trong 3 người mình! khà khà khà.
Thông cảm tôi đang sử dụng phone nên chưa ghi giải thích cho bạn được, bạn chịu khó chờ tôi về nhà sẽ ghi cho bạn sau nha!
Chúc bạn ngày vui.
Cũng cột phụ nhưng công thức không cao siêuXin chào anh, chị ,em trong diễn đàn.
Tôi đang gặp khó khăn về công thức lặp lại có điều kiện, tôi đã thử làm nhưng kết quả bị sai. Mong mọi người giúp tôi.
Chi tiết tôi xin gửi file đính kèm.
Cám ơn mọi người.
=IF(D1="",1,IF(C1<=2,D1+2*C1,D1+5))
=IF(ROW(A1)>=MAX(D$2:D$1000),"",INDEX(A$2:A$1000,MATCH(ROW(A1),D$2:D$1000)))
Tôi có thể hỏi bạn 1 chút được không? tôi thấy công thức của bạn hay quá nên muốn học, nhờ bạn chỉ dùm cho tôi với! tại sao khi tôi insert thêm dòng trên thì nó lại bị N/a nhỉ?
F3=IF((E3<=SUM($D$2:$D$20))*(E3<>""),OFFSET($A$1,MATCH(E3,INDEX(SUMIF(OFFSET($D$1,,,ROW(INDIRECT("1:20"))),"<>")+1,)),),"")
Xin chào bạn @Mộng Thường 2001 ,Chúc bạn học tập vui với anh em GPE
- D2=MIN(C2*2,5) --> Trả về kết quả số lần lặp lại như yêu cầu của bạn.
- F3=IF( ROW(A1)<=SUM($D$2:$D$20), OFFSET($A$1, MATCH(ROW(A1),INDEX(SUMIF(OFFSET($D$1,,,ROW($1:$20)),"<>")+1,)) ,) ,"")
- Điều kiện: ROW(A1)<=SUM($D$2:$D$20) --> cái này đơn giản chắc bạn hiểu được nên không giải thích.
- Nếu điều kiện thỏa (TRUE) thì thực hiện lệnh Offset(), nếu không thỏa (FALSE) thì trả kết quả rỗng "".
- OFFSET($A$1, MATCH(ROW(A1),INDEX(SUMIF(OFFSET($D$1,,,ROW($1:$20)),"<>")+1,)) ,) lấy mốc tại A1, "nhảy" thêm theo kết quả số dòng trả về bởi hàm Match().
- Hàm SUMIF(OFFSET($D$1,,,ROW($1:$20)),"<>")+1: tạo ra 1 Mảng cộng dồn số lần lặp lại, như bài thì D1: D7 có giá trị sau {"D";2;2;4;4;5;5} thì Sumif()+1 sẽ cộng dồn và tạo ra 1 Mảng mới {0;2;4;8;12;17;22}+1 hay {1;3;5;9;13;18;23}. Do đây là công thức Mảng nên để khai báo tôi dùng thêm hàm Index(....,) bao bên ngoài Sumif()+1 này.
- Lúc này hàm MATCH(ROW(A1),INDEX(SUMIF(OFFSET($D$1,,,ROW($1:$20)),"<>")+1,)) sẽ trở thành MATCH( ROW(A1),{1;3;5;9;13;18;23}), tức trả về mức của số lần lặp lại theo số dòng hiện tại, Ví dụ:
- ROW(A1)= 1 Match() trả về 1
- ROW(A2)= 2 Match() trả về 1
- ROW(A3)= 3 Match() trả về 2
- ..........................................................
- ROW(A10)= 10 Match() trả về 4
- Các mức trả về: 1,2,3,4... cũng chính là số dòng sẽ báo cho hàm Offset(A1,...) biết sẽ nhảy bao nhiêu dòng tính từ A1.
- Việc hiểu cách hoạt động của hàm này rất hữu ích cho cách áp dụng hàm tương tự khác như hàm COUNIF(Offset(),'Ô so') mà tôi có sử dụng để xử lý yêu cầu mới của bạn.
- Tôi có điều chỉnh lại công thức thêm hàm Indirect() và lấy theo stt, để bạn khi chèn dòng sẽ không bị báo lỗi N/A nữa. Công thức điều chỉnh như sau:
Enter fill xuống.Mã:F3=IF((E3<=SUM($D$2:$D$20))*(E3<>""),OFFSET($A$1,MATCH(E3,INDEX(SUMIF(OFFSET($D$1,,,ROW(INDIRECT("1:20"))),"<>")+1,)),),"")
- Cũng đã thực hiện cho bạn yêu cầu mới, bạn xem file kèm.
Cám ơn bạn đã giải thích giúp tôi, tôi sẽ đọc và ngẫm thật kĩ. Có gì không hiểu tôi xin được hỏi lại bạn, mong bạn chỉ dẫn giúp tôi.Chúc bạn học tập vui với anh em GPE
- D2=MIN(C2*2,5) --> Trả về kết quả số lần lặp lại như yêu cầu của bạn.
- F3=IF( ROW(A1)<=SUM($D$2:$D$20), OFFSET($A$1, MATCH(ROW(A1),INDEX(SUMIF(OFFSET($D$1,,,ROW($1:$20)),"<>")+1,)) ,) ,"")
- Điều kiện: ROW(A1)<=SUM($D$2:$D$20) --> cái này đơn giản chắc bạn hiểu được nên không giải thích.
- Nếu điều kiện thỏa (TRUE) thì thực hiện lệnh Offset(), nếu không thỏa (FALSE) thì trả kết quả rỗng "".
- OFFSET($A$1, MATCH(ROW(A1),INDEX(SUMIF(OFFSET($D$1,,,ROW($1:$20)),"<>")+1,)) ,) lấy mốc tại A1, "nhảy" thêm theo kết quả số dòng trả về bởi hàm Match().
- Hàm SUMIF(OFFSET($D$1,,,ROW($1:$20)),"<>")+1: tạo ra 1 Mảng cộng dồn số lần lặp lại, như bài thì D1: D7 có giá trị sau {"D";2;2;4;4;5;5} thì Sumif()+1 sẽ cộng dồn và tạo ra 1 Mảng mới {0;2;4;8;12;17;22}+1 hay {1;3;5;9;13;18;23}. Do đây là công thức Mảng nên để khai báo tôi dùng thêm hàm Index(....,) bao bên ngoài Sumif()+1 này.
- Lúc này hàm MATCH(ROW(A1),INDEX(SUMIF(OFFSET($D$1,,,ROW($1:$20)),"<>")+1,)) sẽ trở thành MATCH( ROW(A1),{1;3;5;9;13;18;23}), tức trả về mức của số lần lặp lại theo số dòng hiện tại, Ví dụ:
- ROW(A1)= 1 Match() trả về 1
- ROW(A2)= 2 Match() trả về 1
- ROW(A3)= 3 Match() trả về 2
- ..........................................................
- ROW(A10)= 10 Match() trả về 4
- Các mức trả về: 1,2,3,4... cũng chính là số dòng sẽ báo cho hàm Offset(A1,...) biết sẽ nhảy bao nhiêu dòng tính từ A1.
- Việc hiểu cách hoạt động của hàm này rất hữu ích cho cách áp dụng hàm tương tự khác như hàm COUNIF(Offset(),'Ô so') mà tôi có sử dụng để xử lý yêu cầu mới của bạn.
- Tôi có điều chỉnh lại công thức thêm hàm Indirect() và lấy theo stt, để bạn khi chèn dòng sẽ không bị báo lỗi N/A nữa. Công thức điều chỉnh như sau:
Enter fill xuống.Mã:F3=IF((E3<=SUM($D$2:$D$20))*(E3<>""),OFFSET($A$1,MATCH(E3,INDEX(SUMIF(OFFSET($D$1,,,ROW(INDIRECT("1:20"))),"<>")+1,)),),"")
- Cũng đã thực hiện cho bạn yêu cầu mới, bạn xem file kèm.
Không có chi đâu bạn! giúp ích được gì cho các bạn là niềm vui của anh em thành viên GPE mà, đừng bận tâm về chuyện nhỏ!Xin chào bạn @Mộng Thường 2001 ,
Với dữ liệu Phụ Lục là hơn 100 dòng, và dữ liệu Danh Mục cũng vậy, tôi có kéo công thức nhưng nó bị sai. Tôi nghĩ là do tôi chưa hiểu hoạt động của các hàm này, nên mong bạn chỉ giúp thêm.
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2