Seçilen satırların sırasını nasıl tersine çevirebilirim?


33

Seçilen satırların sırasını tersine çevirmenin kolay bir yolu var mı ? (Ya daha kolaysa tüm satırlara ne dersiniz ?)

Spesifik olarak, bu durumda, onları doğru sıraya koymak için sıralamada kullanılabilecek bir sütun yoktur. Öyleyse, keyfi bir sıraya göre bir demet satır verildiğinde, bu sırayı tersine çevirmek mümkün müdür?

Örnek olarak...

görüntü tanımını buraya girin

... bu 5 sıranın tersine çevrilmesinden sonra, "Waitrose 756" önce gelmeli ve "Moot" en son gelmelidir.


"sıralama için kullanılabilecek bir sütun yok" Neden yalnızca yükselen değerlere sahip bir sütun eklemiyorsunuz (1, 2, 3, ...), o sütunun üzerine inen sıralamayı yapıp sonra kaldırın?
Patrick,

Bu çok yaygın bir istektir, çünkü pek çok kişi her giriş için satırlı bir elektronik tablo başlatır, altta yeni satırlar ekler ve 100 satır sonra üste satır eklemek için ters çevirmek istediklerini anlarlar çünkü WAY her yeni bir veri parçası eklemek istediğinizde en alttaki en boş olmayan satırı bulmak için çok fazla zaman var. Ne yazık ki AFAIK, formüllerinizin ve biçimlendirmenizin inversiyondan sonra aynı kalmasını istemiyorsanız, bunu yapmanın bir yolu yoktur.
Phil Goetz

Yanıtlar:


24

Seçilen aralığın sırasını tersine çevirmek için (belirli bir sütuna göre sıralamanın aksine), aşağıdaki komut dosyasını kullanabilirsiniz:

function reverseOrder()
{
  var range = SpreadsheetApp.getActiveRange();
  var values = range.getValues();
  range.setValues(values.reverse());
}

Bu onOpen senaryoyu ekleme adında bir menü öğesi oluşturulur Ekstra denilen bir öğe içeren, Ters :

function onOpen ()
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menu = [{name: "Reverse", functionName: "reverseOrder"}];
  ss.addMenu("Extra", menu);
}

3
Teşekkürler. Menü öğesinin görünmesi için bunları nasıl ekleyeceğimi bulmam biraz zaman aldı (Araçlar -> Komut Dosyası yöneticisi ...), ancak bir kez hallettim, işe yarıyor!
Jonik

@AdamL, Kod yazmadan bunu nasıl yapabiliriz?
Pacerier

1
@AdamL: Metni taşımak için harikadır, ancak hücre arka plan rengini vb. Taşıyamaz. Komut dosyası bunu gerçekleştirmek için nasıl genişletilebilir?
Gruber

1
@Pacerier: Olağanüstü geç cevap için özür diler, ancak çözümlerden biri artan sırada sayıları olan bir yardımcı sütunla olur ve aralığı bu azalan sütuna göre sıralar (ve sonra yardımcı değerleri kaldırabilirsiniz).
AdamL

@ Gruber: İlk seçenek, komut dosyasının bir kerede bir hücreyi kopyalaması / yapıştırmasıdır; ikinci seçenek, aralık için gerekli tüm biçimleri elde etmek, onları da tersine çevirmek ve ayarlamaktır. İlk seçeneğin küçük aralıklar için uygun olabileceğini, ancak büyük aralıklar için korkunç olduğunu söyleyebilirim; İkinci seçenek tüm kullanım durumlarını kapsayan en iyi bahis olacaktır.
AdamL

21

İşte komut dosyalarını kullanmadan nasıl yapılacağına bir örnek - lütfen bu yöntemin verilerinizin sadece veri olduğunu varsaydığını unutmayın - aynı aralıktaki diğer hücrelere başvuran formülleriniz varsa garip şeyler yapabilir:

  1. Yeni bir sütun ekleyin (örnek olarak, biz buna sütun A diyoruz).
  2. A1'de [1] değerini girin. (Yalnızca bir sıralama düzenlemek istiyorsanız, A10 veya A50 ile başlayabilirsiniz)
  3. A2'ye, [= A1 + 1] formülünü yerleştirin. (2. adımda A1'de başlamadıysanız ayarlayın)
  4. A2'deki formülü tersine çevirmek istediğiniz verinin altına uzatın.

    Her şey şimdi sıraladığınız aralıktaki 1'den satır sayısına kadar numaralandırılmalıdır.

  5. Ayarladığınız aralıktaki tüm satırları seçin.
  6. Veri menüsünü tıklayın ve "Aralığı A, Z -> A sütununa göre sırala" seçeneğini seçin.

Verileriniz şimdi sırayla tersine çevrilmelidir. Numaralandırma formülünü ayarlama şeklimiz nedeniyle, numara sıfırlanacak ve hala en baştaki 1'den başlayacak ... ancak diğer sütunlardaki gerçek verilerin tümü tersine çevrilmelidir.


2
Bu o kadar basittir ki, düşünemediğim için alnımı ezmek zorunda kaldım. Harika cevap +1.
GroggyOtter

2
2-4. Adımlar için bir formüle bile ihtiyacınız yoktur. Sadece A1'e 1, A2'ye 2 girin, her ikisini de seçin ve gerektiği kadar aşağı sürükleyin.
Patrick

4

Mir'in örneğini takip ederek, SORT işlevini, C sütununda veri sıralamasını tersine çevirmek için D3 hücresine yerleştirebilirsiniz:

=sort(C3:C,A3:A,False)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.