• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル 並べ替えについて)

エクセルでの並べ替え方法とは?

このQ&Aのポイント
  • エクセルでの並べ替え方法について解説します。具体的な例として、売上データの表を作り、特定の取引先を除外する方法を説明します。
  • エクセルでのデータの並べ替えは、VBAを使って自動化することができます。この場合、特定の取引先を除外するために、別のシートにデータを移動させる必要があります。
  • エクセルのVBAを使用することで、特定の条件に基づいてデータを並べ替えることができます。この場合、特定の取引先を除外するために、IF文やループ処理を使うことが必要となります。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

Sheet1のマクロに Sub test() j = 1 For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1 If Range("A" & i).Value = "C商事" Then Range("A" & i & ":" & "C" & i).Copy Worksheets("Sheet2").Range("A" & j).PasteSpecial j = j + 1 Application.CutCopyMode = False Rows(i).Delete End If Next End Sub としてください。

aidorumary
質問者

補足

本当に初心者ですいません。 シート1にコピーしたのですが、うまくいきません。 そのまま、コピーしてもエラーが出ました。

その他の回答 (2)

  • mar00
  • ベストアンサー率36% (158/430)
回答No.2

1行目に列見出し、データが2行目から入力'されているとして Sub Macro1() TORIHIKI = "C商事" COUNTER = 1 Application.ScreenUpdating = False Sheets("Sheet1").Select For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row Sheets("Sheet1").Select If Range("A" & i) = TORIHIKI Then COUNTER = COUNTER + 1 Range(Cells(i, 1), Cells(i, 3)).Cut Sheets("Sheet2").Select Range("A" & COUNTER).Select ActiveSheet.Paste Application.CutCopyMode = False End If Next i Application.ScreenUpdating = True Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub でどうでしょうか。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

色んなやり方があると思うが (1)最終行の捉え方 ForNextで繰り返しを行うため (2)最終行までの判別繰り返し (3)3つのシートの扱い方 (4)セルの値を他シートのセルに代入する方法 (5)次々に代入行をずらしてゆく方法 これらを学ぶ必要が在る。 ーーー これらはVBAの基礎の基礎で、学習はどうなったのかな。 表題が>エクセル 並べ替えについて に鳴っているが、並べ替えとはソート(データの並べ替えのこと)を言うことが多い。 一見して誤解を招く。ここでプログラムやエクセルに慣れてないことが判る。 「A社のデータを別シートに分離したい」などが適当かと思う。 ーーー (1) Sub test01() d = Range("A65536").End(xlUp).Row: MsgBox d End Sub (2) Sub test01() d = Range("A65536").End(xlUp).Row: MsgBox d For i = 2 To d If Cells(i, "A") = "C商事" Then 'C商事の処理 Else 'C商事以外の処理 End If Next i End Sub (3)3つのシートを明示してセルを指定する。 Worksheets("Sheet1").・・ Worksheets("Sheet2").・・ Worksheets("Sheet3").・・ これらをセル指定Cells()の前に添える。 (5)は下記のk、lの値の動きに注目 かつ全体的にコードは Sub test01() d = Worksheets("Sheet1").Range("A65536").End(xlUp).Row: MsgBox d k = 2: l = 2 'Sheet2、Sheet3のスタート行は第2行目からと仮定 For i = 2 To d 'データは第2行目からと仮定 If Worksheets("Sheet1").Cells(i, "A") = "C商事" Then 'C商事の処理 Worksheets("Sheet3").Cells(k, "A") = Worksheets("Sheet1").Cells(i, "A") k = k + 1 Else 'C商事以外の処理 Worksheets("Sheet2").Cells(l, "A") = Worksheets("Sheet1").Cells(i, "A") l = l + 1 End If Next i End Sub B,C列などについては類推で判りますね。

aidorumary
質問者

お礼

よくわかりました。 ありがとうございました。 頑張ります。