Cách sắp xếp Truy vấn Google Sheets theo thứ tự tùy chỉnh


7

Tôi có một bảng gồm các thành viên hợp xướng với một cột tên tên Cameron và một cột loại giọng nói của Tiếng Anh. Làm cách nào tôi có thể viết một truy vấn yêu cầu họ bằng cách giảm mức độ của loại giọng nói (tức là soprano> contralto> tenor> bass )?

ngôn ngữ truy vấn Google nào giống với FIELD () trong MySQL không?

Tôi cũng đã thử chức năng SORT , nhưng dường như nó cũng không có tùy chọn để đặt hàng tùy chỉnh.


Tôi ước có một cách để thiết lập một loại sắp xếp như vậy để khi tôi nhấp vào một cột và đi đến Dữ liệu -> Sắp xếp Trang tính theo Cột ... nó sẽ sắp xếp theo thứ tự tùy chỉnh của tôi!
Michael

Câu trả lời:


3

Bạn có thể thêm MATCH vào SORT của mình cho danh sách đơn hàng tùy chỉnh.

    Danh sách sắp xếp tùy chỉnh với trận đấu

Công thức trong D5 là,

=ArrayFormula(sort(A$2:A$99,match(left($B$2:$B$99,3),{"sop";"con";"ten";"bas"},0),1))

Sao chép vào E5. Nếu không kiểm tra tốc độ, các chu trình tính toán sẽ gây tranh cãi liệu việc sử dụng hàm Trái để bóc tách ba ký tự đầu tiên có gây bất lợi nghiêm trọng hay không, nhưng chắc chắn việc tạo mảng không đổi để tìm kiếm và duy trì phạm vi Kết hợp dễ dàng hơn. Hãy cẩn thận rằng bạn không nhân đôi ba ký tự đầu tiên nếu bạn mở rộng danh sách.


Tôi gặp khó khăn khi hiểu phần này trong công thức của bạn: =match(left($B$2:$B$99,3),{"sop";"con";"ten";"bas"},0).. tôi đã tự chạy phần này và tôi có danh sách này: {1,4,2,3,4,2,3,1} .. nhưng theo cách sắp xếp docs the sort_columnis: Chỉ mục của cột trong phạm vi hoặc phạm vi nằm ngoài phạm vi chứa các giá trị cần sắp xếp .. Tôi chỉ không thể điều hòa hai ..
abbood

6

Tạo một bảng mới bên trong bảng tính hiện tại của bạn. Đặt hai cột trong đó:

VoiceType   Sort order
SOPRANO     1
CONTRALTO   2
TENOR       3
BASS        4

Trong bảng tính chính của bạn (bảng có danh sách người), trong một cột mới, hãy đặt một công thức như thế này:

=vlookup(upper(B2),Sheet2!A$2:B$5,2,0)

Lưu ý rằng tôi đã sử dụng hàm UPPER () trong trường hợp một số loại giọng nói được nhập là "tenor" hoặc "Tenor.

Có một ví dụ hoạt động cho thấy điều này ở đây: https://docs.google.com.vn/sản ra /


2

Trên thực tế, bạn không cần Arrayformula () vì hàm sort () trả về các hàng và cột.

Trong hình ảnh trên đó, trong D5, (không phải E5, hình chữ nhật màu xanh phải ở D5 trong hình ảnh), bạn chỉ cần gõ:

=sort(A2:B99,match(B2:B99,{"SOPRANO","CONTRALTO","TENOR","BASS"},0),1)

Đó là nó.

Đặc biệt cảm ơn xe jeep. Tôi đã tìm thấy điều này trong khi tôi đang chơi với câu trả lời của bạn, sử dụng hàm match () trong sort () mà trước đây tôi không biết.

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.