Hàm tự động sắp xếp dữ liệu (1 người xem)

Người dùng đang xem chủ đề này

phamdung01

Thành viên chính thức
Tham gia
3/9/10
Bài viết
74
Được thích
5
Chào anh chị trong diễn đàn, em có vấn đề rất mong nhận được sự giúp đỡ của anh chị,

Ví dụ tại cột C là tổng của hai cột A và B, em phải dùng công thức nào để dữ liệu tại cột C tự động sắp xếp từ lớn xuống nhỏ ạ (Tạm thời em đang dùng tính năng sort largest to smallest mất khá nhiều thời gian, ), ví dụ anh chị có thể tham khảo tại file đính kèm giúp em ạ.

Rất mong nhận được sự giúp đỡ của anh chị, em cảm ơn
 

File đính kèm

Rất cảm ơn anh đã hồi đáp, có lẽ em làm theo cách cũ vậy, cách anh giới thiệu có vẻ tương đối phức tạp với em để tìm ra công thức và cách làm,
Một lần nữa cảm ơn anh
 
Mã:
c1=small($d$1:$d$24,row())

cho em hỏi là nếu giờ tại ô G1 là 1 dạng như trong file đính kèm thì có thể dùng công thức nào thay thế công thức trên để có thể tại cột H sẽ sắp xếp được những dữ liệu từ lớn đến nhỏ ạ

Em cảm ơn ạ
 

File đính kèm

cho em hỏi là nếu giờ tại ô G1 là 1 dạng như trong file đính kèm thì có thể dùng công thức nào thay thế công thức trên để có thể tại cột H sẽ sắp xếp được những dữ liệu từ lớn đến nhỏ ạ

Em cảm ơn ạ
Bạn dùng CT này tại H1:
Mã:
=SMALL(IFERROR(--MID(SUBSTITUTE(TRIM($G$1:$G$6)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$100))-1)*100+1,100),""),ROW(A1))
Bấm Ctrl+Shift+Enter, rồi fill xuống đến khi nào bị lỗi thì dừng!!!
 
Bạn dùng CT này tại H1:
Mã:
=SMALL(IFERROR(--MID(SUBSTITUTE(TRIM($G$1:$G$6)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$100))-1)*100+1,100),""),ROW(A1))
Bấm Ctrl+Shift+Enter, rồi fill xuống đến khi nào bị lỗi thì dừng!!!

Em làm thấy nó chưa tự động sắp xếp theo thứ tự từ lớn đến nhỏ ạ hoặc có thể em không hiểu cách fill xuống như thế nào,
Dùng công thức để có thể sắp xếp như File em đính kèm ạ, anh giúp em thêm được không anh
 

File đính kèm

Lần chỉnh sửa cuối:
Em làm thấy nó chưa tự động sắp xếp theo thứ tự từ lớn đến nhỏ ạ hoặc có thể em không hiểu cách fill xuống như thế nào, anh giúp em thêm được không anh
Bạn phải bấm Ctrl+Shift+Enter mới được, đây là hàm mảng!!
 

File đính kèm

Bạn phải bấm Ctrl+Shift+Enter mới được, đây là hàm mảng!!

Vâng, em cảm ơn anh, có lẽ em diễn đạt ko rõ làm anh hiểu sai ý của em, giờ em phải dùng công thức nào để có thể sắp xếp đc dạng như file em đính kèm ạ, mong anh giúp đỡ ạ
 

File đính kèm

Vâng, em cảm ơn anh, có lẽ em diễn đạt ko rõ làm anh hiểu sai ý của em, giờ em phải dùng công thức nào để có thể sắp xếp đc dạng như file em đính kèm ạ, mong anh giúp đỡ ạ
Bạn dùng CT này tại H1:
Mã:
=LOOKUP(2,1/(LARGE(MMULT(--MID(SUBSTITUTE(TRIM($G$1:$G$6)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$6))-1)*100+1,100)*TRANSPOSE((10^10)^(6-ROW($1:$6))),--(ROW($1:$6)<>0)),ROW(A1))=MMULT(--MID(SUBSTITUTE(TRIM($G$1:$G$6)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$6))-1)*100+1,100)*TRANSPOSE((10^10)^(6-ROW($1:$6))),--(ROW($1:$6)<>0))),$G$1:$G$6)
Nhớ bấm Ctrl+Shift+Enter rồi fill xuống!!!
P/s: Mỗi dòng chỉ có 6 số, nếu thay đổi thì bạn phải CT lại ví dụ 8 số thì sửa chỗ có số 6 thì sửa lại thành 8 hết!!!
Thật sự không thể nghĩ ra CT nào ngắn dơn được+-+-+-++-+-+-++-+-+-++-+-+-++-+-+-+
 
Lần chỉnh sửa cuối:
Có cách khác đơn giản hơn, bạn dùng CT này cột H1=SUBSTITUTE(G1," ",""), rồi fill xuống, sau đó dán giá trị tất cả các cột!!
Sau đó sort cột H từ lớn đến nhỏ (Z->A) (hoặc tại H1 bấm Alt->A->S->D) là ok, khỏi sài CT trên chi cho phức tạp!!!
 
Lần chỉnh sửa cuối:
Bạn dùng CT này tại H1:
Mã:
=LOOKUP(2,1/(LARGE(MMULT(--MID(SUBSTITUTE(TRIM($G$1:$G$6)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$6))-1)*100+1,100)*TRANSPOSE((10^10)^(6-ROW($1:$6))),--(ROW($1:$6)<>0)),ROW(A1))=MMULT(--MID(SUBSTITUTE(TRIM($G$1:$G$6)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$6))-1)*100+1,100)*TRANSPOSE((10^10)^(6-ROW($1:$6))),--(ROW($1:$6)<>0))),$G$1:$G$6)
Nhớ bấm Ctrl+Shift+Enter rồi fill xuống!!!
P/s: Mỗi dòng chỉ có 6 số, nếu thay đổi thì bạn phải CT lại ví dụ 8 số thì sửa chỗ có số 6 thì sửa lại thành 8 hết!!!
Thật sự không thể nghĩ ra CT nào ngắn dơn được+-+-+-++-+-+-++-+-+-++-+-+-++-+-+-+

Quá tuyệt vời rồi anh ơi, đúng dạng em đang cần tìm, không biết phải cảm ơn anh như nào nữa,

chắc em không hiểu bản chất công thức nên em muốn hỏi anh là nếu vùng dữ liệu của em là $G$1:$G$500 thì công thức bên dưới phải đổi như nào ạ, em đổi vùng dữ liệu xong ấn Ctrl+Shift+Enter rồi fill xuống thì bị #N/A

=LOOKUP(2,1/(LARGE(MMULT(--MID(SUBSTITUTE(TRIM($G$1:$G$500)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$500))-1)*100+1,100)*TRANSPOSE((10^10)^(6-ROW($1:$500))),--(ROW($1:$500)<>0)),ROW(A1))=MMULT(--MID(SUBSTITUTE(TRIM($G$1:$G$500)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$500))-1)*100+1,100)*TRANSPOSE((10^10)^(6-ROW($1:$500))),--(ROW($1:$500)<>0))),$G$1:$G$500)

Em cảm ơn anh ạ
 
Lần chỉnh sửa cuối:
Quá tuyệt vời rồi anh ơi, đúng dạng em đang cần tìm, không biết phải cảm ơn anh như nào nữa,

chắc em không hiểu bản chất công thức nên em muốn hỏi anh là nếu vùng dữ liệu của em là $G$1:$G$500 thì công thức bên dưới phải đổi như nào ạ, em đổi vùng dữ liệu xong ấn Ctrl+Shift+Enter rồi fill xuống thì bị #N/A

=LOOKUP(2,1/(LARGE(MMULT(--MID(SUBSTITUTE(TRIM($G$1:$G$500)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$500))-1)*100+1,100)*TRANSPOSE((10^10)^(6-ROW($1:$500))),--(ROW($1:$500)<>0)),ROW(A1))=MMULT(--MID(SUBSTITUTE(TRIM($G$1:$G$500)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$500))-1)*100+1,100)*TRANSPOSE((10^10)^(6-ROW($1:$500))),--(ROW($1:$500)<>0))),$G$1:$G$500)

Em cảm ơn anh ạ
Một dòng bạn vẫn 6 số chứ, nếu vẫn 6 số thì ROW($1:$6) vẫn giữ nguyên dù vùng dữ liệu bạn có nhiêu dòng nữa cũng vậy, bạn sữa CT lại như vầy xem:
Mã:
=LOOKUP(2,1/(LARGE(MMULT(--MID(SUBSTITUTE(TRIM($G$1:$G$500)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$6))-1)*100+1,100)*TRANSPOSE((10^10)^(6-ROW($1:$6))),--(ROW($1:$6)<>0)),ROW(A1))=MMULT(--MID(SUBSTITUTE(TRIM($G$1:$G$500)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$6))-1)*100+1,100)*TRANSPOSE((10^10)^(6-ROW($1:$6))),--(ROW($1:$6)<>0))),$G$1:$G$500)
Nếu không được thì bạn đưa file lên!!!
 
giờ mới vào được diễn đàn để gửi lời cảm ơn tới anh,

=LOOKUP(2,1/(LARGE(MMULT(--MID(SUBSTITUTE(TRIM($G$1:$G$500)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$6))-1)*100+1,100)*TRANSPOSE((10^10)^(6-ROW($1:$6))),--(ROW($1:$6)<>0)),ROW(A1))=MMULT(--MID(SUBSTITUTE(TRIM($G$1:$G$500)," ",REPT(" ",100)),(TRANSPOSE(ROW($1:$6))-1)*100+1,100)*TRANSPOSE((10^10)^(6-ROW($1:$6))),--(ROW($1:$6)<>0))),$G$1:$G$500)

Công thức trên anh hỗ trợ em rất đúng ạ, nhưng chắc tại cơ sở dữ liệu của em quá lớn lên dùng công thức trên lại phát sinh ra lỗi calculating mặc dù em đã dùng tới công cụ Tools -> Options -> Calculation ->Menual nhưng không hiệu quả, chắc em phải chấp nhận với việc này thôi ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Một lần nữa cảm ơn anh rất nhiều ạ
 

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

Back
Top Bottom