Nhờ giúp Công thức sắp xếp lại dữ liệu

Liên hệ QC

thuhiennguyen1888

Thành viên chính thức
Tham gia
16/10/14
Bài viết
78
Được thích
0
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ừ C18:DR18.
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 ạ.
 

File đính kèm

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ừ C18:DR18.
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!!!
 
Đúng là xem file cũng ko hiểu gì luôn thật. bạn có thể giải thích rõ hơn ko?
 
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ừ C18:DR18.
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 ạ.
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 )
 

File đính kèm

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.

Dùng công thức thì có lẽ bạn chờ thành viên khác của diễn đàn hỗ trợ vậy
Đầu bài thì hiểu được thế này :
1. Lấy dữ liệu từ C8:BC17
2. Sắp xếp theo thứ tự của vùng C18:DR18.
3. Điền kết quả vào dòng 20
 
Hiểu đề rồi!
Đề này khá khó nhằn. Nếu KHÔNG cần liệt kê các cell trùng nhau mà chỉ cần liệt kê theo thứ tự và cho biết cell trùng xuất hiện mấy lần, thì mình có thể giúp bạn bằng công thức.
 
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.

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 C18:DR18, 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
Mã:
C19=SUMPRODUCT(COUNTIF(C18,$C$8:$DR$17))
kéo qua tới DR19
Mã:
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)))
kéo B20 qua phải

=========
hehehehe, làm cho vui, xài code cho nó khỏe
 
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 C18:DR18, 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
Mã:
C19=SUMPRODUCT(COUNTIF(C18,$C$8:$DR$17))
kéo qua tới DR19
Mã:
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)))
kéo B20 qua phải

=========
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.
 

File đính kèm

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
 

File đính kèm

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 ạ.
 

File đính kèm

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 ạ.

Mã:
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)),"")
 
Web KT

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

Back
Top Bottom