• 締切済み

Excel2013 シートの並べ替え

エクセル2013で年表を作りました。 シートに「801~900年)、「901~1000年」というように、千年ごとに名前を付けました。 現在は、アトランダムになってしまっているのですが、そのシートを年代順に並べ替えたいです。 方法を教えて下さい。

  • mmtl
  • お礼率57% (8/14)

みんなの回答

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.2

Alt+F11でVBEを開き 挿入→標準モジュールで以下のVBAコードを貼付 Alt+F11または右上の×でVBEを閉じる Alt+F8または表示→マクロで「シートのソート」を選び実行 ■VBAコード Sub シートのソート() Dim mySt As Worksheet Dim i As Integer Set mySt = Sheets.Add(after:=Sheets(Sheets.Count)) With mySt   .Columns("A").NumberFormatLocal = "@"   For i = 1 To Sheets.Count - 1     .Cells(i, 1) = Sheets(i).Name     If InStr(1, Sheets(i).Name, "~") > 0 Then       .Cells(i, 2) = Left(Sheets(i).Name, InStr(1, Sheets(i).Name, "~") - 1)     End If   Next i   .Sort.SortFields.Clear      '昇順に並べる場合はOrder:=1、降順に並べる場合はOrder:=2   .Sort.SortFields.Add _     Key:=Columns("B"), _     SortOn:=xlSortOnValues, _     Order:=1, _     DataOption:=xlSortNormal   With .Sort     .SetRange Range("A:B")     .Header = xlNo     .MatchCase = False     .Orientation = xlTopToBottom     .SortMethod = xlPinYin     .Apply   End With   For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row     Sheets(.Cells(i, 1).Value).Move after:=Sheets(Sheets.Count)   Next i   Application.DisplayAlerts = False   .Delete   Application.DisplayAlerts = True End With End Sub

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.1

フリーのアドインソフトを使うか、 VBAで処理 http://www.moug.net/tech/exvba/0040060.html たかだか20シートぐらいなら、手で並び替えても大した手間ではありません。 http://excel.noaruseikatu.jp/medium/m04.php

mmtl
質問者

お礼

早々に回答をありがとうございました。 手で並び替えても大したことことありませんでしたね。 でも、いろいろな方法を紹介していただき、勉強になりました。

関連するQ&A

  • エクセルシートの並べ替えについて

    ひとつのエクセルブックに複数のワークシートがあって、それぞれのシートの見出し(デフォルトでsheet1とか2とか入っているところです)に名前をつけています。(例)東京支店、名古屋支店、大阪支店...等 今、シートの順番が作成順なのですが、これをシートの見出しの文字から、一発で昇順や降順に並べ替える方法はありますか? 参考書によると手作業では1枚ずつシートの順番の並べ替えができるようですが、シート枚数が多いためお尋ねしています。 よろしくお願いしします。

  • EXCEL:何の関数を使えば良いか教えてください

    シート1にB2から順に1名ずつ名前が入力されています。 シート2のB2にシート1のB2にある名前を反映させ、 シート3のB2にシート1のB3にある名前を反映させ、 シート4のB2にシート1のB4にある名前を反映させ、 というのを順に続けていきたいのですが、何か良い方法はありますでしょうか? ちなみにあわよくばシート名も各シートのB2セルの名前にしてしまいたいです。 うまい方法が思いつかず、今のところ手打ちでおこなっているのですが、「手打ちならエクセルでなくてもよくない?」と悶々としております。

  • エクセルでシートの並び替えですが・・・

    エクセルのシートを何も考えず、ランダムに会社名で打っていったら50社を越え、整理が付かなくなりました・・・・ 50音順で整列させたいのですが、何かいい方法ございませんか?一個一個はめんどくさくって・・・ 2003年度エクセルです。こんなめんどくさがりに良いお知恵をお貸しください。

  • Excel2007並べ替えについて

    元々あった名簿は、50音順ではありませんでしたが、昇順の並べ替え機能で50音順に並べ替え、名簿を作り直しました。 今度は、50音順の名簿から元の名簿に順序を戻したいのですが、そのような方法はあるのでしょうか。 名前と点数の2つの列のみ並べ替えたいです。 例) 山田 佐藤 渡辺 鈴木 : : だったのを 佐藤  70 鈴木  80 山田  60 渡辺  90 という名簿に作り変えました。これを、 山田  60 佐藤  70 渡辺  90 鈴木  80 と元の順に、右隣の列の点数も一緒に並べ替えたいのです。 何か方法があれば教えてくださいませんか。

  • エクセルのシートを並べ替え。。。。

    エクセルのシートを並べ替えた時に、データーをリンクさせるにはどうすればよいですか。例えば・・シートA・B・Cの順で3つ並んでいる時 シートAのセルに1 シートBのセルに2 シートCのセルに3 と入力して シートの並び順をB・C・Aと変えたときに シートBのセルに1 シートCのセルに2 シートAのセルに3と表示させたいのですが。 よろしくお願いします。

  • エクセルの並べ替えについて

    いつもお世話になっています。 エクセルの並べ替えについて教えてください。現在、ある表を作っています。 例えば、A店山本 B店田中 C店佐藤などです。人数が、200人以上いて、名前順にも店舗順にもなっておらずかなり見づらいものです。そこでエクセルで並べ替えようとしたのですが、まず、店舗順の名前順にしようとしたのですが、店舗順はできるのですが、名前順にすると、全ての名前を音読みしてしまいます。加藤さんの後ろに丸山さんが来てしまいます。何とか入力した名前順にはできないものでしょうか。 やり方がありましたら、お助けください。

  • Excel;特定の文字を含むセルを書き出す方法

    お世話になります。 あるExcelシートの2列×300行ぐらいの範囲のセル内に 文字が入っています。 セル内(例A23idokensi)に特定の文字(例:A23)を含んでいたら、 もしくはセルを抜き出す方法はあるでしょうか? やりたいことは、アトランダムに入力されているところから、 特定の文字を含んだセルだけ取り出して内容とセルの個数を 数えることです。

  • エクセルで年表作成

    エクセル2003で年表を作りたいです。 年代順に並べ替える為の条件式を教えて下さい。

  • 【EXCEL】名前に数値を埋め込むことはできますか

    EXCELの初心者です。 現在、都道府県別に、あるお店の各支店を入力する必要があります。 全国各地のお店を、地域はアトランダムに入力していきます。 完成後、都道府県別に並べ替えたときに、 一番最初が最北の北海道から始まって最後が沖縄になるように 並べ替えるようにしたいのですが、 普通に都道府県名を入力したままだと、 単純に県名の五十音順(逆五十音順)に並んでしまいます。 そこで、たとえば北海道は「001北海道」として、 以下「002青森」~「047沖縄県」というように数字を県名の前に入れれば 、県名を並び替えたときに北から南(南から北)に並ぶと思うのですが、この数字が県名の前に表示されるのはうるさくも感じます。 そこで考えたのですが、「北海道」以下各県の名前に、「01」などの数字を表示されないように埋め込むことはできますでしょうか。 あるいは、こういうやりかたではなく、別のやりかたがあるのでしょうか?

  • Excel複数シートにあるデータを1枚にまとめる

    Excelブックにある50枚ほどのシートのデータを一枚のシートにまとめたいです。 現在シート1には機材Aを使用している人の名前、シート2には機材Bを使用している人の名前、シート3には機材Cを・・・ というような感じで50枚ほどあります。 これを一枚にまとめます。 列Aに名前、列Bからを機材名としたいんです。 たとえば山田さんが機材Aと機材Cを使用していたとしたら、「山田 ○  ○」という感じで、機材A、Cの列に○が付くようにしたいです。 各シートに記載されている名前は、重複しています。(佐藤さんはシート1にも2にも40にも名前があるというようなかんじです) 列の中に何回も同じ名前が出ることを避けたいです。 出来る限り短時間で終わらせたいのですが、なんせExcelの知識が乏しく困っています。 なるべく早くするよう言われていますので、初心者でも出来るような方法をご存じでしたら教えてください。 ちなみにしようするのはExcel2010です。 大雑把な質問で申し訳ございません、よろしくお願いいたします。

専門家に質問してみよう