選択した行の順序を逆にする方法は?


33

選択した行の順序にする簡単な方法はありますか?(または、それが簡単な場合は、すべての行についてはどうでしょう。)

具体的には、この場合、正しい順序で並べ替えるために並べ替えに使用できる列はありません。したがって、任意の順序で行の束が与えられた場合、その順序を逆にすることは可能ですか?

例として...

ここに画像の説明を入力してください

...これらの5行を反転させた後、「Waitrose 756」が最初に、「Moot」が最後に来るはずです。


「並べ替えに使用できる列はありません」昇順の値(1、2、3、...)で列を追加し、その列で降順で並べ替えてから削除しないのはなぜですか?
パトリック

これは非常に一般的なリクエストです。多くの人が各エントリの行でスプレッドシートを開始し、下部に新しい行を追加してから、100行後に上部に行を追加するためにそれを反転したいことに気付くからです。新しいデータを追加するたびに一番下の空白でない行を見つけるのに時間がかかりすぎます。残念ながら、あなたがそれを行う方法はありません。反転後も数式と書式を同じままにしたいのではありません。
フィルゲッツ

回答:


24

特定の列で並べ替えるのではなく、選択した範囲の順序を逆にするには、次のスクリプトを使用できます。

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

このonOpenスクリプトを追加すると、Reverseという項目を含むExtraというメニュー項目が作成されます。

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

3
ありがとう。メニュー項目が表示されるようにこれらを追加する方法を見つけるのに少し時間がかかりました(ツール->スクリプトマネージャー...)が、それが完了したら、動作します!
ジョニック

@AdamL、スクリプトなしでこれを行うにはどうすればよいですか?
Pacerier

1
@AdamL:テキストの移動には最適ですが、セルの背景色などの移動に失敗します。これを実行するためにスクリプトをどのように拡張できますか?
グルーバー

1
@Pacerier:非常に遅い応答をおologiesびしますが、1つの解決策は、昇順の番号を持つヘルパー列を使用し、その列を降順で並べ替えます(そして、ヘルパー値を削除できます)。
AdamL

@Gruber:最初のオプションは、スクリプトが一度に1つのセルをコピー/貼り付けすることです。2番目のオプションは、範囲に必要なすべての形式を取得し、それらを逆にして、設定することです。最初のオプションは、小さな範囲では問題ないかもしれませんが、大きな範囲ではひどいかもしれません。2番目のオプションは、すべてのユースケースをカバーするための最善策です。
AdamL

21

スクリプトを使用せずにこれを行う方法の例を次に示します-このメソッドはデータが単なるデータであると想定していることに注意してください-同じ範囲内の他のセルを参照する数式がある場合、奇妙なことをするかもしれません:

  1. 新しい列を挿入します(例のために、列Aと呼びます)。
  2. A1に値[1]を入力します。(範囲のみをソートする場合は、A10またはA50から開始できます)
  3. A2に、式[= A1 + 1]を入力します。(ステップ2でA1から開始しなかった場合に調整します)
  4. A2の式を、元に戻すデータの最後まで拡張します。

    これで、すべてが1からソートする範囲の行数までの番号が付けられます。

  5. 設定した範囲内のすべての行を選択します。
  6. [データ]メニューをクリックし、[列A、Z-> Aで範囲を並べ替え]を選択します。

これで、データの順序が逆になります。番号付け式の設定方法により、番号はリセットされ、先頭の1から始まりますが、他の列の実際のデータはすべて逆になるはずです。


2
これはとてもわいせつなほど簡単なので、私はそれを考えないために額を叩かなければなりませんでした。素晴らしい答え。+1。
-GroggyOtter

2
手順2〜4では、式さえ必要ありません。A1に1を入力し、A2に2を入力するだけで、両方を選択し、必要に応じて下にドラッグします。
パトリック

4

Mirの例に従って、SORT関数をセルD3に配置して、列Cのデータの順序を逆にすることができます。

=sort(C3:C,A3:A,False)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.