Można skorzystać z sort()
funkcji za to, ale trzeba mieć swoje dane w jednym miejscu, a automatycznie sortowane kopię tych danych w innym miejscu.
Powiedzmy, że mam Arkusz1 z moimi danymi:
| A | B | C
=====================
1 | This | this | 2
2 | Is | is | 1
3 | Test | test | 3
Następnie w arkuszu 2, komórka A1, umieściłbym tę funkcję:
= sort (Arkusz1! A: C, 3, PRAWDA)
To pokazałoby moje dane, ale posortowane według kolumny C (trzecia kolumna), rosnąco.
| A | B | C
=====================
1 | Is | is | 1
2 | This | this | 2
3 | Test | test | 3
;
np.= sort(Sheet1!A:C; 3; TRUE)
Możliwe jest także użycie Skryptów Google Apps w celu automatycznego sortowania danych w miejscu.
Może to być trudniejsze do osiągnięcia i bardziej podatne na błędy (nadal wybrałbym rozwiązanie Williama Jacksona, +1 BTW), ale myślałem, że to wystarczająco interesujące do pokazania.
Mam arkusz, który wygląda następująco:
Dodałem nowy skrypt, wykonując następujące kroki:
w wyświetlonym pustym oknie kodu wklej następujący kod, który będzie uruchamiany automatycznie przy każdej edycji komórki:
wróć do arkusza i zacznij bawić się wartościami, aby za każdym razem automatycznie sortować tabelę
Uwaga:
W powyższym skrypcie
4
reprezentuje indeks kolumny D (Value
kolumna - ta, która będzie sortowana)"B3:E9"
reprezentuje zakres tabeli (wyłączając wiersz nagłówka)Twoja tabela najprawdopodobniej będzie różnić się od mojej, więc te wartości należy odpowiednio dostosować.
źródło
null
dlaevent
parametru, który jest inaczej właściwie zaludnionej przez infrastrukturę arkusza kalkulacyjnego Google, gdy prawdziwy zdarzenia.range.sort
linię:range.sort( { column : columnToSortBy, ascending: false } );
. Więcej opcji sortowania można znaleźć na stronie developers.google.com/apps-script/class_range#sortOto ogólny skrypt, który będzie automatycznie sortował na podstawie pierwszej kolumny i zakłada wiersz nagłówka.
Aby utworzyć skrypt:
W pustym oknie kodu wklej następujący kod, który będzie uruchamiany automatycznie przy każdej edycji komórki:
źródło
var sheet = SpreadsheetApp.getActiveSpreadsheet();
zamiast tego, co tu jest.Inną opcją bez skryptu jest:
Zakres jest ograniczony (A1: C3), ponieważ w miejscu rosnącym zamówienia najpierw pojawią się puste wpisy.
źródło
SELECT * WHERE C <> '' ORDER BY C
aby zignorować puste wpisy, a następnie użyć wystarczająco dużego zakresu, aby uwzględnić wszystkie bieżące i przyszłe wiersze.Korzystając z rozwiązania skryptowego, posortuj według więcej niż jednej kolumny
Chciałem posortować według kolumny menu rozwijanego, a następnie według daty.
Aby to zrobić, zmodyfikuj wiersz „range.sort” fragmentów kodu Cristian lub geekspotz w następujący sposób:
Różnica polega na dodaniu prostych nawiasów wokół całej instrukcji (tablicy) i oddzieleniu sortowania przecinkami.
Modyfikacja kodu sortowania wyciągnięta z odpowiedzi przepełnienia stosu Serge'a tutaj : Automatyczne sortowanie na arkuszach
źródło
Arkusze Google mają filtry z tego właśnie powodu i nie wymagają tworzenia nowego arkusza w dokumencie.
Dokumentacja: https://support.google.com/docs/answer/3540681
źródło