• ベストアンサー

エクセル 行の並び替え

エクセルでの 行の並び替えの方法で質問があります 多数行のデータの 任意の行同士の並び替え(例えば150行目と450行目を入れ替える)に ついてですが、今私は、そのような場合、それぞれ 150行目と450行目のデータをそれぞれ コピーし 挿入したあと 古いデータを削除するという方法で行っています。 これで 入れ替えはできるのですが、入れ替えるデータがたくさんあるときは 時間がかかって困っています。 ほかに もう少し簡単に行の入れ替えを行う方法はあるのでしょうか?あれば 是非教えてください。 初心者なので ごく基本的なご質問で恐縮ですが 宜しくお願い致します 

  • noa-t
  • お礼率70% (130/185)

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.4

#1です。 7)は、「並べ替え」ボタンのことです。リボン(メニュー)から選んでも可。

noa-t
質問者

お礼

私の基本的な質問に再度ご回答くださりありがとうございます なるほど A→Z……並べ替えですよね よく考えればわかることでした 番号を入れ替えて 並べ替えをおこなったら 簡単に できました。コピーするより全然簡単です 感謝いたします ただ MackyNo1様の 並べ替えの方法もドラッグで 簡単にできたので、NO1様とどちら様をベストアンサーに させていただくか ちょっと迷っています ごめんなさい 質問に 再度答えてくださって大変感謝しています ありがとう ございました

その他の回答 (5)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

No.5です! たびたびごめんなさい。 前回のコードで不具合がありました。 ↓のコードに訂正してください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'この行から Dim i As Long, j As Long, k As Long, c As Range, wS As Worksheet Set wS = Worksheets("Sheet2") If Target.Column = 1 Then '←A列限定 Cancel = True i = Cells(Rows.Count, 1).End(xlUp).Row Set c = Cells(1, 1).Resize(i, 1).Find(what:="", LookIn:=xlValues, lookat:=xlWhole) If c Is Nothing Then Target.EntireRow.Cut wS.Cells(1, 1) Else j = c.Row k = Target.Row Target.EntireRow.Copy c wS.Rows(1).Cut Target MsgBox j & "行目と" & k & "行目を入れ替えました" End If End If End Sub 'この行まで ダブルクリックはA列に限定するのを忘れていました。 どうも失礼しました。m(_ _)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! VBAでの一例です。 >例えば150行目と450行目を入れ替える というコトですので、 A列をダブルクリックすると最初にダブルクリックした行と2番目にダブルクリックした行を入れ替えるようにしてみました。 尚、作業用としてSheet2を使用していますので、Sheet2は使っていないSheetにしてください。 そして、A列は1行目からデータの最終行まで空白セルがないという前提です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてA列をダブルクリックしてみてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'この行から Dim i As Long, j As Long, k As Long, c As Range, wS As Worksheet Set wS = Worksheets("Sheet2") Cancel = True i = Cells(Rows.Count, 1).End(xlUp).Row Set c = Cells(1, 1).Resize(i, 1).Find(what:="", LookIn:=xlValues, lookat:=xlWhole) If c Is Nothing Then Target.EntireRow.Cut wS.Cells(1, 1) Else j = c.Row k = Target.Row Target.EntireRow.Copy c wS.Rows(1).Cut Target MsgBox j & "行目と" & k & "行目を入れ替えました" End If End Sub 'この行まで ※ 最初A列セルをダブルクリックするとその行は空白になりますが、Sheet2の1行目にそのまま貼り付けています。 ※ 2番目にダブルクリックする行がかなり離れていて、画面スクロールが大変の場合は 名前ボックス(画面左上のセル番地が表示されているところ)に直接 A400 のように入力してEnterを押下! これでそのセルが選択されますので、そこでダブルクリックしてみてください。m(_ _)m

noa-t
質問者

お礼

ご回答くださりありがとうございます 初心者のせいか、ちょっと うまくできませんでした でも教えていただいて 感謝いたします また 何かわからないことがあったら ご質問させていただくことも あるかとおもいますが その際はよろしくお願いいたします

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

行や列の並べ替えは以下のようなマウスおよびキー操作をするのが基本です。 すなわち、移動したい範囲を選択し、周囲にカーソルを置いて、Shiftキーを押しながら移動先にドラッグし、(挿入位置に灰色のマーカーが出るのを参考にして)移動先にドロップします。 ちなみに、Shiftキーを押さないでドラッグした場合は、単純に上書き「移動」になり(数式などは元のセルと全く同じ数式になります)、Ctrlキーを押してドラッグすれば「コピー」です(相対参照の数式は移動先で変更されます)。

noa-t
質問者

お礼

分かり易いご回答ありがとうございます 並べ替えはNO1様のご回答で できたのですが MackyNo1様の ドラッグでできる方法が便利なので とても参考になりました また 上書きやコピーなどのアドバイスもとても参考に なりました ただ NO1様が 私の質問に何度もご回答をくださったので ベストアンサーを どちら様にするか ちょっと迷っています 申し訳ありません アドバイス本当に参考になりました ありがとうございました

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

#1の応用ですが、不要な行の列Aの値を消去してソートすれば、削除対象行が一塊になります。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

ソート(並べ替え)用の列をひとつ設けるのはいかが? 仮に列Aを用いるとして。列Bが、必要な行を網羅する値があるとします。 1)セルA1に値[1]を入力。 2)選択しているセルを囲む太線(ここではセルA1を囲む太枠)の右下隅が■になってるので   マウスカーソル乗せると黒い+になるので、ダブルクリック。 3)上記操作で、必要行まで連番が埋まるはず。※Ctrl+↓で確認すること。 4)セルA150(値[150]のはず)を450に書き換える 5)セルA450(値[450]のはず)を150に書き換える 6)セルA1の左上何もないところをクリックして、シート内を全選択 7)A→Zキー押下。 8)不要なら列A削除

noa-t
質問者

お礼

さっそくのご回答ありがとうございます 教えていただいた手順に沿って1)から6)まで 進めていったのですが 7)でつまずきました 7)A→Zキー押下。の意味が分かりませんでした すみません。どのようにすればよいのでしょうか?

関連するQ&A

  • エクセルにて並び替えの際行セルデータごと並び替える方法

    エクセルにて並び替えの際 行セルデータごと並び替える方法だが、行セルに別ブックの参照コピーのデータが存在すると、並び替えの際にそのデータが ついてこないので、何か別の方法を、伝授ください。     A      B       C    1  データ1  データ2  別ブックの参照コピーA 2  データ2  データ3  別ブックの参照コピーB 3  データ2  データ1  別ブックの参照コピーC 上記の状態にてB列で並び替えをかけると「別ブックの参照コピーC」のデータがC1セルに移動しない。

  • エクセルの並び替えで、タイトル行があるときとセル結合があるときにうまくいかない。

    エクセルのデータ並び替えで2点質問がありますので、よろしくお願いいたします。 エクセル2007とエクセル2003で実行してみましたが、結果は同じでした。 1.並び替えをする際に、先頭行をタイトルとして認識させると思うのですが、タイトル行が2行とか3行ある場合にはどうすればいいでしょうか? 先頭行以外がデータとして認識されてしまい、一緒に並び替えされてしまいます。 2.並び替えをしたくてもデータ中にセルの結合をしていると並び替えしてくれないようです。実際の現場ではセルの結合をしている表は結構あると思うのですが、セルの結合があるとやはり並び替えはできないのでしょうか?

  • エクセルで列と行の並び替えは出来るのでしょうか?

    エクセルで 例えば、1行10列のデータを10行1列に 並び替えが出来ないものでしょうか? 宜しく御願い致します.

  • エクセルVBAでの並び替えについて

    エクセルでデータの並び替えの方法が分からなくて質問します。たとえばBの列の100~999、A100~A999、B100~B999のようなデータが縦に入っているものとします。この中には150-1、150-2のようなデータも混ざってます。これをそのままエクセルで並び替えをしても100~999までは上手にできるのですがその後に150-1とかきてA100~が始まります。例えばこのデータを100~始まり149、150-1,150-2、152,153、154のように上桁から基準に並び替えを行いたいのですがいい方法はありませんか?現在はマクロを使ってVBAでSORTの引数を触ったりしたのですが上手にいきません。基本的にVBAで行っているのでVBAでお願いします。初心者なのでよろしくお願いします。

  • エクセル 行の固定

    Excelで任意の行を作業時、印刷時ともに固定したいのですが、これは可能でしょうか。 というのは、用紙やプリンタ、余白の設定の関係で最下部に来る行が決まっています(50行目が最終行、というように)。 そこで最終行で、そのページの合計を出しているのですが、 その前の行でデータの入れ替えをするときに「削除」する場合が出てきます。 すると最終行が一行繰り上がり、その都度、行を「挿入」して調整しなければいけません。 項目名などは「行のタイトル」で固定できたのですが、 任意の行の固定、または、ページ最終行の固定がどうも見つかりません。 検索してみても、いまいちこれというものがなく質問させていただきました。 分かりにくい説明ではありますが、お分かりになる方いましたらよろしくお願いします。随時補足していきます。

  • EXcel(エクセル)での並び替え

    EXcel(エクセル)でのデータの並び替えについて教えてください。 1・年号の並び替え 1つのセルにはいったデータを    明治8年    明治20年    大正10年    昭和5年    昭和10年 のように時代の順に並べたいのですが、 ふつうに並べると元号はあいうえお順となり、 年は、20年と8年では20年が先に来てしまいます。 これを一度に並び替える方法はありますか? MID関数を使い、元号と年を別々の列に分けてソートすればできるとは思うのですが、「並び替え」機能をうまく活用して並び替えする方法はあるのでしょうか。 2・並び替えのユーザー設定リスト (ツールーオプションーユーザー設定リスト)の 自分で登録した項目を一度に全削除する方法はありますか?一度に1項目ずつ削除するのはできるのですが、間違って登録してしまい、量が半端じゃないので。。 3・漢字交じりの日本語を単純に並び替えした場合、 全く同じ語句でもばらばらな場所にあることがありますが、これを直す方法はありますか? わかりにくい質問で恐縮ですが、1つでもわかるものがあればお願いします。

  • EXCELで切り取った行を別シートに挿入

    EXCELである行を選択して切り取り、同一シート内の任意の場所に挿入すると 元の行は自動的に削除されます。 しかし、別シートに挿入した時は、元の行は削除されず、わざわざ その行を削除する、という操作が必要となります。 そこで質問なのですが、別シートへの挿入を一つの操作で行う方法はないでしょうか? また、その方法がない場合、それはEXCELの何らかの仕様を反映しているのだと 思いますが、それはどのようなものでしょうか? よろしくお願いします。

  • エクセルで並び替えが一部(下の方の行)のみできない

    エクセル2010を使っております。 表の中で、五十音順に並び替えをしたい範囲を選択して、「データ」→「並び替え」と選択しても、 表の下の方のみ並び替えができません。(340行のうち、320行ぐらいまでは並び替えが できているのですが、なぜか下の20行ほどが並び替えできていません) これはどういう現象なんでしょうか?? どうすれば並び替えの対象に加えられるのか、お教えください。 よろしくお願いします。

  • エクセルのシートを同時に行削除、行挿入させて自動連動させたい

    エクセルで、横(列)256列以上のデータを入力したいため、シートを分けざるをえません。その場合、次のようなことがしたいとき、どのようにすればよろしいでしょうか?(やりたいことの結論下記(3)になります。) エクセルのシートが2つ以上あるとします。 (1)「sheet1」には、基本データ(名簿録のようなもの・氏名ふりがなアイウエオ順配列) (2)ふたつめ以降のシートには、毎月変更するデータを入力し、「sheet1」の名簿の個々のIDに対応したそれぞれ同じ行番号に入力することになります。 (3)「sheet1」で行削除(名簿対象者解約)や行挿入(新規契約者)を任意の場所で行いたい。それに連動して、2つ目以降のシートでも同じ列で行削除・行挿入を自動でしたい。 ★この簡易システムを作成するのはマクロ初心者の私であり、日々の入力作業するのはエクセルそのものが初心者である他者となります。 ★行挿入、行削除のときだけシートの同時選択を手作業でしてもらうことは想定していません。そのあたりをも含めた自動化の智恵がでてこないのです。 以上、よろしくお願いします。

  • エクセルでデータの並び替え

    エクセルでデータの並び替えを使い、 A列に入っている数字を最優先して 並び替えをしたいのですが、後半部分 うまく並び替えができません。 行が、2134行目までは、うまくいったのですが、 それ以降が並び替わらないのです。 もしかして、行があまりに多いとできないのでしょうか。。。限界があるのでしょうか? それか、ほかに原因があるとしたらわかりません。 わかる方、教えてください。

専門家に質問してみよう