Excel - Sắp xếp theo công thức khi có các giá trị trùng lặp


0

Dữ liệu của tôi sẽ thay đổi, do đó tôi đang sử dụng danh sách động. Sắp xếp cần phải năng động là tốt. Tôi không muốn nhấp vào chức năng sắp xếp sẵn.

Tôi đang sắp xếp dữ liệu động theo công thức, nhưng không thành công khi dữ liệu sắp xếp giống nhau. Ví dụ:

A B Marham 240 Sigonella 400 Toulon 400 Ghedi 150 Lajes 2000 Nordholz 400

Sắp xếp theo cột B và trả về giá trị cột A, kết quả sẽ là:

Lajes 2000 Sigonella 400 Toulon 400 Nordholz 400 Marham 240 Ghedi 150

Lưu ý: Tôi không quan tâm đến thứ tự của các giá trị trùng lặp giữa chúng ("400" s).

Với công thức này:
{=INDEX($A$1:$A$6, MATCH(SMALL(COUNTIF($B$1:$B$6, "<"&$B$1:$B$6), ROW(1:1)), COUNTIF($B$1:$B$6, "<"&$B$1:$B$6), 0))}

Kết quả là:

Lajes 2000 Sigonella 400 Sigonella 400 Sigonella 400 Marham 240 Ghedi 150

Các MATCHbị vấp ngã tôi lên. Làm thế nào để tôi có được xung quanh này?

Câu trả lời:


0

Đây là những gì tôi nghĩ ra ... Đó không chính xác là những gì tôi đang tìm kiếm ... nhưng nó đã hoạt động.

Sử dụng cùng một dữ liệu ở trên, tôi đã thay đổi INDEXđể trả về điểm số thay vì căn cứ:

{=INDEX($B$1:$B$6, MATCH(SMALL(COUNTIF($B$1:$B$6, "<"&$B$1:$B$6), ROW(1:1)), COUNTIF($B$1:$B$6, "<"&$B$1:$B$6), 0))}

Sau đó, để trả về các cơ sở, tôi đã sử dụng công thức này trả về nhiều giá trị khớp:

{=index(A$1:A$6,small(if(b$1:b$6=b1,row(b$1:b$6)),countif(b$1:b$6,b1)))}

Tôi vẫn muốn để công thức ban đầu tự làm việc, nếu có ai có gợi ý.


0

Bạn có thể nhận được các bản sao bằng cách thêm một cột C ẩn, trong đó bạn thêm vào các giá trị của mình một số rất nhỏ, đủ nhỏ để không có thể lấy được bằng các phương tiện khác và không can thiệp vào các giá trị ban đầu, cho phép bạn phân biệt giữa các bản sao, ví dụ

  A          B          C
Marham      240      240,0001
Sigonella   400      400,0002
Toulon      400      400,0003
Ghedi       150      150,0004
Lajes      2000     2000,0005
Nordholz    400      400,0006

Sau đó, bạn chỉ cần sắp xếp theo các giá trị trong cột C

Ngoài ra, nếu bạn không muốn bất kỳ cột ẩn nào, bạn có thể đặt các giá trị như thế này:

  A            B
Marham      240,0001
Sigonella   400,0002
Toulon      400,0003
Ghedi       150,0004
Lajes      2000,0005
Nordholz    400,0006

nhưng định dạng các trường để hiển thị các giá trị số với độ chính xác 0 chữ số, vì vậy excel giữ các giá trị chi tiết của bạn nhưng hiển thị chúng dưới dạng:

  A          B
Marham      240
Sigonella   400
Toulon      400
Ghedi       150
Lajes      2000
Nordholz    400

-1

Tôi biết điều này là mãi mãi trước đây, nhưng các công thức trong các câu trả lời khác không hiệu quả với tôi. Tuy nhiên, tôi đã làm cho nó hoạt động với một vài sửa đổi nhỏ:

{=INDEX($A$1:$A$7,SMALL(IF(B$1:B$6=B1,ROW(B$1:B$6)),COUNTIF(B1:B$6,B1)))}

Bạn có thể thêm một số chi tiết để giải thích điều này cũng làm. Sửa định dạng của mã quá.
Pimp Juice IT

-3

Làm thế nào về =sort(a2:b7,2,true)trong tế bào C2?


Trong khi điều này có thể trả lời câu hỏi, nó sẽ là một câu trả lời tốt hơn nếu bạn có thể cung cấp một số lời giải thích tại sao nó làm như vậy.
DavidPostill

Tôi không thể tìm thấy sortchức năng trong danh sách eXcel ...
Hastur
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.