• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル(マクロ含む)で、列の並べ替えはできますか?)

エクセル(マクロ含む)で列の並べ替えは可能か?

okwaveninokunの回答

回答No.7

コメント読ませていただきました。 マクロの記録はご存じなかったのですね。 そしたら今回の私の回答は少し段階が違います。 私の回答は、マクロの記録をとりそれを多少なりともご自分で訂正して使える程度の方への回答です。 このような質問サイトに回答し始めたのは5/7からですので、その辺の質問者さんの状況を理解できなかったのかもしれません。(長く回答したからといって質問文だけで理解できるものでもありませんが) >頂いた回答に対するレスポンスはもう少しお待ち頂けますでしょうか。 上にも書きましたが、マクロの記録をご存知でない段階ですと今回の私の回答を完全に理解するのは時間が掛かります。目的を果たすだけでいいなら説明を読めば簡単に出来ますが、その時間を他の事に当てて時間を有意義に使ってください。 >ちなみに、2chさんは「マクロでまず、やってみて、そこから生まれたコードをあれこれいじって、最終的な成果物を得るのが一般的な作法だ」というようなことを話されていましたが、 これは参考書などにも書いてありまして、ある程度オススメな方法であるようです。 そうですね。有効な手段であることは確かです。しかし、それを"一般的"という方は他人の質問に回答するには少し早い気がします。今回は偶然にもaw-dlayさんがマクロの記録をご存知でない段階でしたので結果オーライでしたが、それ自体を回答として投稿する気には私にはなりません。他の回答者の方のように最低でも「記録+α」が必要です。 また、参考書でオススメしているのは、aw-dlayさんのようにマクロの記録を初めて知ったという段階の方へのアドバイスだと思います。また、2chさんのようにマクロの記録優先の方もいますので、"突っ込まれないようにとりあえず書いておこう"と言う意識が優先していると思います。もしマクロの記録を本当に率先して薦めるなら、"何故あなたは参考書を書こうと思ったの?"という話になります。記録では出来ないことがいくらでもあるということをその参考書自体が証明しているのです。 簡単な例を一つ書くと、 シート上の「田中」という文字の右のセルに「出勤」という文字を書きなさい。(ただし「田中」のセルの場所は毎日変わります) 以上をマクロの記録で行ってみてください。 「田中」がずっと固定されていれば一度記録をとれば済みますが、日々場所が変化する場合は毎日記録をとる必要があります。「毎日マクロの記録をする」→「毎日、"田中"の右のセルに"出勤"と書く」→「今記録しているマクロはいつ使うの?」→「記録しても明日はそのマクロは使えないんだよ。意味ないんじゃない?」ということになるのです。 しかし、自分で書けるようになれば、 Cells.Find("田中").Offset(0,1).Value="出勤" これを一度書いておけば、「田中」の場所がどこに行こうとも一生マクロを作る必要がないのです。 このようにマクロの記録では出来ないことがいくらでもあります。しかし、マクロの記録任せになってしまうと"どのようなことが記録で出来てどのようなことが出来ないのか"ということすら自分で判断できず、結果的に無駄な時間を大量に費やすことににもなりかねないのです。(あくまでも可能性があるということ) マクロを自分で書ける方でマクロの記録を薦めるのは、説明するのが面倒か、聞かれた事に対する知識を実は持っていない(記録任せで自分で書けない)方なのかなと私は思います。他人にアドバイスするわけですから"せめて自分で出来ることを回答するのが普通"というのが私の考えです。 まあ、これは考え方の違いですね。 ※マクロの記録=学校の教科書(いろんな情報(マクロの記録の場合は全ての情報)が書かれているが、どこが大事な部分なのかが特に初心者は見分けが付かない。なのであえて言えば、基本は身に付けている(中の下)ぐらいの方向き。しかし使いこなせれば役に立つ) ※参考書=教科書(マクロの記録)の不要な部分を出来るだけ排除したもの(しかし、読者に突っ込まれることを避けるため安全策をとり、完全に不要な部分を排除することが出来ていない(自分で参考書を書いておきながら"マクロの記録を使用しなさい"的なコメントを書くという矛盾が出てくる)) ※今回の私の回答=学校の先生が自分の経験をまとめて書いたプリント的なもの。(よく試験前に配られる要点を書いたプリント的なもの。完全に教科書とは一致しないが、不要な情報を極限まで削除し、要点だけを集約している) 以上のような感じでしょうか。 今回の回答は今すぐ役に立つものではない?かもしれませんが、別の部分では回答した甲斐があったののかなとも思っています。

aw-dlay
質問者

お礼

詳細なコメントを、こんな私のためにどうもありがとうございます。 「マクロの記録」に対する考え方について、1つ勉強させて頂きました。 今回頂いた回答は、右も左も分からない私には大変有意義、かつ、 ジワジワと私の中に効いてきそうな、そんな回答でした。 今回もありがとうございます。

関連するQ&A

  • エクセルの列の並べ替え

    エクセルシートに複数列のデータ(列ごとに個数は異なる)があり すべての列のデータ(B~CV列)を列ごとに降順で並べ替えたいのですが データ範囲を選択して降順に並べ替えると B列は降順になるのですが C列以降はB列を基準にして行で並べ替えられてしまいます B列、C列・・・・CV列をすべて列ごとに降順で並べ替えるにはどうしたらいいでしょう? よろしくおねがいします。

  • 並べ替え方法

    A列 B列 C列 D列 E列 品目 単価 個数 (イメージ) りんご 100 50 りんご 100 60 りんご 110 りんご 90 80 りんご 80 みかん 50 30 30 みかん 50 20 みかん みかん 40 40 みかん 60 バナナ 150 30 バナナ 150 40 バナナ 70 バナナ 140 50 バナナ 90 A列 B列 C列のデータがランダムにあるとしてそれを 品目ごと単価ごとに集約して D列 E列に集計するにはどうしたら良いですか? お詳しい方がいらしたら、どうかご教授ください。

  • エクセルの関数やマクロだけで、ランダムな並べ替えをするには?

    エクセルの機能である[データ]-[並べ替え]操作を使わずに、 ランダムなデータの並べ替えをするには、どうしたらいいでしょうか? 例: E列の乱数結果より、D列の内容をB列に並べ替え表示    A  B  C  D  E  F 1  順位 名称 C  場所 乱数   2   1       青森  5   3   2       埼玉  1   4   3       長野  3   5   4       福井  2   6   5       大分  4   7                   ↓    A  B  C  D  E  F 1  順位 名称 C  場所 乱数   2   1 埼玉    青森  5   3   2 福井    埼玉  1   4   3 長野    長野  3   5   4 大分    福井  2   6   5 青森    大分  4   7                   B列への関数入力または簡単なマクロを教えていただけると助かります。 よろしくお願いします。

  • Excelの並べ替えをマクロで実行したら・・・

    Excelの並べ替えをマクロに登録しました。その日の作業ではうまく動くのですが、後日、元のデータを変えて実行したらおかしくなります。具体的には、B列を降順で並べ替えをしたら、その他の列が並び替えられないのです。その日に電源を入れなおして実行しても、うまく並び替えできるのですが、後日実行したらおかしくなります。ちなみにTODAYとかは入っていません。WinXPでExcel2000です。宜しくお願いします。

  • エクセルでの並べ替え

    一番上の1・2行をタイトル行として並べ替えをしたいのですが。 一部分だけセルを結合してあるところがあります(下記参照) そのため、タイトル行としてみなされず、並べ替えができません。 毎回一行削除して並べ替えをしているのですが、 何か良い方法をご存知ないでしょうか?       |  A列   |  B列  |  C列  | D列 | 1行目  |  住所  |  氏名  |    性別        | 2行目 |     |     |   男  |  女   | 3    | 東京都 | 山田 |    |   女   |    4    | 北海道 | 佐藤 | 男   |      | ・ ・ ・ 表がかけないのでわかりにくくてすみません。   | はセルの境目のつもりです。 住所・氏名の欄は1・2行結合 性別は1行目だけでC・D列結合 その下の2行目にC列2行目は男、D列2行目は女  (このせいで並べ替えができません。) この場合、例えば、性別の欄を削除してタイトルを1行にすれば・・・というのはなしでお願いします。

  • よろしくお願いいたします。Excelで並べ替えなの

    よろしくお願いいたします。Excelで並べ替えなのですが、行が多く手動では、時間がかかってしまいます。写真ではA列がメーカーB列がスタイル番号C列が車名、D列が値段が記載されてます。 (1)最初にA列をメーカーごとで並べ替え、(並び順不問) (2)その後に各メーカー枠の中でスタイル番号ごとに並べ替え(昇順) (3)その後に各メーカー枠の中で値段ごとに並べ替えます(降順) です。 行が、多くて手動でやるのは大変なので、マクロでなんとか出来ないでしょうか?よろしくお願いいたします。

  • エクセル関数で、2列の情報を1列に順番に並べたい

    以下の元データのようにA~D列にある情報を、 下方のE列、F列にあるように情報を合わせて表示したい場合、 E列、F列にはどのような関数を入れたらよいでしょうか。 COUNTIFやVLOOKUP関数を試してみましたが、 うまく順番に並べることができず途方に暮れています。。。 どなたかお知恵がある方、マクロではなく関数で 教えていただけたらありがたいです。 ※A列はB列の情報番号、C列はD列の情報番号です。 ↓元データ↓ A  B    C   D 1 みかん  1 あ 1 みかん  2 い 1 みかん  3 う 2 りんご   4 え 2 りんご   5 お 3 すいか  6 か 3 すいか  7 き 3 すいか  8 く 3 すいか  9 け ↓このようにしたいです。↓ A  B    C  D   E  F 1 みかん  1  あ    1  みかん 1 みかん  2  い    1  あ 1 みかん  3  う    2  い 2 りんご   4  え    3  う 2 りんご   5  お    2  りんご 3 すいか  6  か    4  え 3 すいか  7  き    5  お 3 すいか  8  く     3  すいか 3 すいか  9  け    6  か                 7  き                 8  く                  9  け 何とぞよろしくお願いします。

  • エクセルで、並び替えた列をさらに並べ替える方法

    今エクセルで、乱数による並べ替えをした後のデータを、 さらに無作為に抽出する方法を考えています。 分かりにくいので、例を挙げますと、 A列:果物(リンゴ、みかん、バナナ…) B列:花(桜、菊、ひまわり…) C列:色(赤、青、緑…) D列:国(米国、中国、日本、英国…) E列:県(大阪、愛知、北海道、愛媛…) と並んでたとしますと、 1.各列の中で、乱数を使って並べ替えを行う 2.さらに、列ごとに並べ替えを行う をやりたいと思っています。 1は、乱数に対応させて並べ替えを行うことはできました。 (rand関数に対応して、昇順などで各セルを並び替える) 問題は、1の並び替えの後、A1、B1、C1、D1、E1の5つのセルを 並び替えたいと思っているのですが、その方法が分かりません。。 もちろん、1をした後でしたら、5つのセルをどこかにコピーして また、乱数に対応させて並べ替えを行えばできるのですが、 一度に、2つの並べ替えを行いたいと思っています。 それも、1の後に、2の並べ替えを行う、という順番付きで。。 (2は1の後でないと、できないので) 或いは、逆に、2の列の並び替えを行って、それから各列の並び替えでもいいんですが、 とにかく、 青、北海道、ひまわり、英国、りんご 米国、桜、緑、バナナ、愛媛 … というような、並びをたくさん、作りたいということです。 すみません、例えが悪いので、これを使って何するの??と思うかも知れませんが、 この並び替えのニーズがあります。 どなたか、やり方がお分かりになる方、どうぞ、ご教授下さい。 (意味が分からない方、どうぞご質問下さい)

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

    お世話になっております。売掛管理をしております。名前をあいうえお順に、B5あ-1 C5相田 B6あ-2 C6秋元 B7い-1 C7飯田 というように入力しています。 いまの所、300人位ですが、あ-8をB200に入れたとして、あ-1、あ-2・・・あ-7の次にあ-8がくるように並べ替えをしたいのですが、1つのセルで降順とかにするとあ- の後の数字が降順になりません。セルを分けてB5・あ- B6・1 のように入力するしかないでしょうか??? またまた分かりずらくてスミマセンが、宜しくお願い致します。

  • エクセル並べ替えについて。。。困っています

    いま大量のデータの処理をしているのですが、並べ替えの方法がわからず困っています。 現在例えば B列 A A B A C C B B D のように並んでいるものを B列 A A A B B B C C D のような形に並べ替えたいのです。他の列にもたくさんデータが入っています。上手く説明できず申し訳ないのですが、どなたかわかる方、知恵を貸してください!お願いします!!