数値列を一度に並べ替える方法

数値列を一度に並べ替える方法

入出力

列は 350 個あります。以下は全データのサブセットです。

Excel スプレッドシートのサンプル データは、年と月の行に分割され、地区ごとに列化されています。

「最小から最大に並べ替え」ツールを使用しました。1 つの列の結果のみが返されます。そうでない場合は、最初の列を並べ替えることができ、他の列は最初の列に応じて変更されます。ただし、すべての列を A ~ Z に個別に並べ替えたいです。

データを地区ごとに並べ替えたいです。

答え1

1.並べ替えたい列を選択します。次に、「最小から最大に並べ替え」をクリックします。

データ > 並べ替えとフィルター > 最小から最大に並べ替え

2.「現在の選択を続行」を選択します。

現在の選択を続行

ご覧のとおり、1 つの列のみがソートされました。
1列のみソート

残りの 349 列についてもこれを繰り返します :)


すべてを一度に実行するには:

  1. 並べ替えたいシートを開きます。

  2. Alt+を使用してVBAエディタを開きますF11

  3. 挿入 > モジュール

  4. 次のコードを貼り付けます:

サブ sort_columns_separately_AZ()
  Dim rngStart 範囲として
  Dim rngHeaders を範囲として
  範囲として暗黙の c
  rngStart = ActiveSheet.Range("A2") を設定します。
  rngHeaders = ActiveSheet.Range(rngStart, rngStart.End(xlToRight)) を設定します。

  rngHeaders 内の各 c について
    ActiveSheet.Sort.SortFields.Clear
    ActiveSheet.Sort.SortFields.Add キー:=c, _
      SortOn:=xlSortOnValues、Order:=xlAscending、DataOption:=xlSortNormal
    ActiveSheet.Sort を使用する場合
      .SetRange ActiveSheet.Range(c, c.End(xlDown))
      .ヘッダー = xlはい
      .MatchCase = False
      .Orientation = xlTopToBottom
      .SortMethod = xlPinYin
      。適用する
    終了
終了サブ
  1. コードでは、ActiveSheet.Range("A2")データ テーブルが始まるセル アドレスに変更します (例: ) ActiveSheet.Range("B5")
  2. 打つF5

結果:
仕分け前と仕分け後

注意: データ内に空のセルが含まれている場合、空のセルが含まれている列で正しく動作するようにこのコードを調整する必要があります。

関連情報