thuhiennguyen1888
Thành viên chính thức
- Tham gia
- 16/10/14
- Bài viết
- 78
- Được thích
- 0
Không hiểu gì luôn!!!Chào ACE trong Diễn đàn,
Em nhờ ACE giúp cho công thức để ở dòng 20 sắp xếp lại dữ liệu từ C8:BC17, có tham chiếu từ C18R18.
Dữ liệu sắp xếp lại liệt kê cả những cell trùng nhau.
Rất mong nhận được sự giúp đỡ của ACE.
Cám ơn ACE nhiều ạ.
Không hiểu gì luôn!!!
Tôi có xem file của bạn, rất tiếc là không hiểu!!Em có file đính kèm. Em xin lỗi, đúng là phải xem file thì mới hiểu ạ.
Thử hàm tự tạo này xem có đúng ý khôngChào ACE trong Diễn đàn,
Em nhờ ACE giúp cho công thức để ở dòng 20 sắp xếp lại dữ liệu từ C8:BC17, có tham chiếu từ C18R18.
Dữ liệu sắp xếp lại liệt kê cả những cell trùng nhau.
Rất mong nhận được sự giúp đỡ của ACE.
Cám ơn ACE nhiều ạ.
Public Function Xep(DL As Range, DK As Range, STT)
Dim Tam, kq(1 To 1000), r As Long, c As Long
For r = 1 To DK.Rows.Count
For c = 1 To DK.Columns.Count
If DK(r, c) <> "" Then Tam = Tam & " " & DK(r, c)
Next c
Next r
For r = 1 To DL.Rows.Count
For c = 1 To DL.Columns.Count
If DL(r, c) <> "" Then
If InStr(Tam, DL(r, c)) Then
kq(InStr(Tam, DL(r, c))) = kq(InStr(Tam, DL(r, c))) & " " & DL(r, c)
End If
End If
Next c
Next r
Xep = Split(Application.Trim(Join(kq, " ")), " ")(STT - 1)
End Function
Thử hàm tự tạo này xem có đúng ý không
Mã:Public Function Xep(DL As Range, DK As Range, STT) Dim Tam, kq(1 To 1000), r As Long, c As Long For r = 1 To DK.Rows.Count For c = 1 To DK.Columns.Count If DK(r, c) <> "" Then Tam = Tam & " " & DK(r, c) Next c Next r For r = 1 To DL.Rows.Count For c = 1 To DL.Columns.Count If DL(r, c) <> "" Then If InStr(Tam, DL(r, c)) Then kq(InStr(Tam, DL(r, c))) = kq(InStr(Tam, DL(r, c))) & " " & DL(r, c) End If End If Next c Next r Xep = Split(Application.Trim(Join(kq, " ")), " ")(STT - 1) End Function
Cú pháp=Xep( Vùng số liệu, Vùng điều kiện, thứ tự của phần tử cần tìm )
Cám ơn Anh, đúng ý em rồi ạ.
Em không giỏi về excel nên có thể chưa diễn đạt rõ ràng.
Anh đã giúp em đúng kết quả rồi, vậy Anh có cách nào nói để mọi người dễ hiểu được không ạ.
Với lại, nếu làm được công thức thì tốt hơn nhiều với em ạ, vì như em đã nói em không được giỏi về excel ạ.
Cám ơn Anh.
P/S:
Nhờ Công thức của Anh mà em phát hiện em gõ thiếu U8 ở dòng thứ 20.
Cám ơn Anh, đúng ý em rồi ạ.
Em không giỏi về excel nên có thể chưa diễn đạt rõ ràng.
Anh đã giúp em đúng kết quả rồi, vậy Anh có cách nào nói để mọi người dễ hiểu được không ạ.
Với lại, nếu làm được công thức thì tốt hơn nhiều với em ạ, vì như em đã nói em không được giỏi về excel ạ.
Cám ơn Anh.
P/S:
Nhờ Công thức của Anh mà em phát hiện em gõ thiếu U8 ở dòng thứ 20.
C19=SUMPRODUCT(COUNTIF(C18,$C$8:$DR$17))
C20=INDEX($C$18:$DR$18,MATCH(TRUE,INDEX($C$19:$DR$19>0,),0))
B20=INDEX($C$18:$DR$18,IF(COUNTIF($C$20:C20,C20)<HLOOKUP(C20,$C$18:$DR$19,2,0),MATCH(C20,$C$18:$DR$18,0),MATCH(TRUE,INDEX(OFFSET($C$19,,MATCH(C20,$C$18:$DR$18,0),,122-MATCH(C20,$C$18:$DR$18,0))>0,),0)+MATCH(C20,$C$18:$DR$18,0)))
haiz...................tôi phải đọc code của bạn hungQuoc49 mấy tiếng đồ hồ mới hiểu là làm cái gì
================
trước tiên ở dòng C18R18, cái cell nào rổng (mà hình như nó cũng chả có rổng, dùng special cell bank nó ko cho chọn)==>bạn hãy cho một kí tự đặt biệt gì vào đó vd "@"
=======================
mượn một dòng phụ số 19
kéo qua tới DR19Mã:C19=SUMPRODUCT(COUNTIF(C18,$C$8:$DR$17))
kéo B20 qua phảiMã:C20=INDEX($C$18:$DR$18,MATCH(TRUE,INDEX($C$19:$DR$19>0,),0)) B20=INDEX($C$18:$DR$18,IF(COUNTIF($C$20:C20,C20)<HLOOKUP(C20,$C$18:$DR$19,2,0),MATCH(C20,$C$18:$DR$18,0),MATCH(TRUE,INDEX(OFFSET($C$19,,MATCH(C20,$C$18:$DR$18,0),,122-MATCH(C20,$C$18:$DR$18,0))>0,),0)+MATCH(C20,$C$18:$DR$18,0)))
=========
hehehehe, làm cho vui, xài code cho nó khỏe
Cám ơn Anh,
Em áp dụng Công thức của Anh nhưng chưa ra được kết quả.
Em gửi file lên, Anh & mọi người xem giúp xem em nhầm chỗ nào với ạ.
Cám ơn Anh & ACE trong Diễn đàn.
heheheh...................lộn tí
phải đặt ở D20 chứ không phải B20...............hihihihi......sorry
======
p/s tôi chuyển các cụm hàm match lặp đi lặp lại vào name cho nó gọn, nhấn Ctrl F3 xem nha
Cám ơn Anh,
Công thức đã cho kết quả đúng như em mong muốn.
Có một việc phát sinh đó là những ô mà tham chiếu không có dữ liệu cụ thể thì sẽ hiển thị là #N/A. Em đã dùng hàm countif như trong file đính kèm, nhưng Em muốn hỏi Anh và ACE trong diễn đàn xem có cách nào khác nữa không.
Rất mong tiếp tục nhận được sự chỉ bảo của Anh và ACE.
Em cám ơn nhiều ạ.
D20=IF(SUM($C$19:$DR$19)>COUNTA($C$20:C20),INDEX($C$18:$DR$18,IF(COUNTIF($C$20:C20,C20)<HLOOKUP(C20,$C$18:$DR$19,2,0),pos,MATCH(TRUE,INDEX(rng>0,),0)+pos)),"")