Excelのマクロについて

このQ&Aのポイント
  • VBA初心者で緊急案件が出てきました。Excelデータの整理を効率化したい
  • Excelデータを特定の順番で並び替え、担当者を抽出して整理したい
  • 手作業で行の並び替えとカット&ペーストをしているが非効率
回答を見る
  • ベストアンサー

Excelのマクロについて

VBA初心者です。これから勉強して行こうと思っていますが、緊急で対応しなければならない案件が出てきまして、よろしければご教授願えればと思い、投稿いたしました。 あるExcelデータを別の資料に使うために下記のような整理をしたいのです。 <元データ>  分類 名称 担当  1  あ  C  1  い  E  2  か  C  1  つ  A  2  お  B  1  お  B  3  た  F  1  め  D  1  う  B <整理後>  A~Dの担当者を抽出し、以下の順番で並べ替えられた結果にしたい。  (1)担当者:指定の順番(今回の場合、A→C→D→B)  (2)名称:昇順  (3)分類:昇順  分類 名称 担当  1  つ  A  2  か  C  1  め  D  1  う  B  1  お  B  2  お  B 現状では、データ(D)→並べ替え(S)を実行し、手作業で担当者のかたまりの順番を行単位でカット&ペーストして整理し、最後に不要な担当者分の行を削除するという流れで対応していますが、データ量が多く、間違いなども発生しがちで、非常に捗らない作業なのです。 是非、皆様のお力で何とか解決にお導きいただけたらと存じます。 よろしくお願いいたします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 マクロの場合は、教本には出てこない内容です。 ただ、Excelになれた人なら、たぶん、記録マクロを使ってしまいます。 記録の順序としては、  (1)担当者:指定の順番(今回の場合、A→C→D→B) これを、セルのどこかに A C D B と書いて、ツール-オプション-ユーザー設定リスト インポートでリストを読み込みます。 後は、 データ-並べ替え  (1)担当者:指定の順番   ↑   並べ替え-オプション-並べ替え順序の指定 で選択します。  (2)名称:昇順  (3)分類:昇順 とします。なお、あぶれたデータは、下のほうに追いやられます。 マクロの場合は、そのインポートされたリストを削除する、というおまけをつけておきます。

nob2001
質問者

お礼

有難うございました。 先ずはアドバイスの方法で進めてみます。

その他の回答 (2)

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

VBAでといっても、VBAをこれから勉強する方なら、丸投げの質問への回答になってしまう。 ーー 操作だけでもできるものを、不慣れなうちから、「仕事などに!」VBAを持ち込むのは危険です。 ーー 操作でできるとおもう。 エクセルの ツールーオプションー「ユーザー設定」のタブをクリック 「リストの項目」に(別例だが)「社長、副社長、専務、常務、 執行役員、部長、課長」などのように、入力(登録)順序を重視して打ち込み、登録する(「追加」)。この順序に並べたいという登録である。 ーー ソートの操作において 「並べ替え」のダイアロウグの左下の「オプション」 並べ替え順序の指定」の▼をクリックして、上記の設定を探し 選択する。 それでソートすれば、普通は文字コードでソートされるところが、 社会的な意味的な順序で並べられる。

nob2001
質問者

お礼

ご指摘、ごもっともです。 まずは、VBAのスキルを引上げておいて仕事に…と思いながら、なかなかリスクを背負わないと血肉になり難い体質奈ものですから、今回の案件を活用しようと思ったわけです。 アドバイス、有難うございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

マクロでなくとも作業列を使用したら簡単にできると思いますよ A 1 B 4 C 2 D 3 のような表をどこかに準備しておいて、シートD列を作業列にします。 D2セルに =VLOOKUP(A2,表範囲,2,0) とすれば、並び替えの順位が取得できますから、あとはD列、B列、A列を並び替えのキーとすればよいでしょう。 ただし表範囲は Sheet2!$A$1:$B$4 のように絶対参照にしておいてください 急ぎならマクロを覚えて使うより作業列を使う方が早いと思いますが。

nob2001
質問者

お礼

回答有難うございました。 この方法も試してみたいと思います。

関連するQ&A

  • エクセルVBAについてアドバイスお願いします。

    見出し列A1からG1かけてあり A1→大分類 B1→小分類 C1~G1→A×Bの情報 となっています。 A B C D E F G ア 1 ア 2 ア 2 ヒ 1 ・ ・ ・ ヒ 2 ヤ 1 ヤ 1 ヤ 3 ちなみに A列昇順→B列昇順に並んでおり、行数は毎回不定です。 ここから、A×Bの組合せが同じ行ごとにまとめて、新規のブックを作成し、そこに張り付けて、A見出し+B見出しの名前で、csvファイル形式で保存したいです。 今は、オートフィルターをかけて、A列選択→B列選択をしてコピー、を全ての組み合わせごと行っています。 大分類も小分類も、数は不定で、名称も毎回様々です。 この作業をVBAで組み立てるとしたら、どのようになるでしょうか? 詳しい方、お力をお貸し下さい。 よろしくお願いします。

  • Excelのマクロの組み方を教えてください

    3行と2列のデーターの塊があり、これを 1行のデータに並べ替えるにはどうしたらいいでしょうか? ただし 行方向(縦に) 30件、列方向(横に) 20件ほど入っていて、複雑です。 空白の行や列はないものと考えていただいて結構です。 詳細説明 A1からCB1はタイトルなどが入っていて、無視して、 データーの配列が以下の場合 A2 B2 C2 D2 E2 F2 →CB2まで A3 B3 C3 D3 E3 F3 →CB3まで A4 B4 C4 D4 E4 F4 →CB4まで A5 B5 C5 D5 E5 F5→CB5まで A6 B6 C6 D6 E6 F6→CB6まで A7 B7 C7 D7 E7 F7→CB7まで ↓ ↓ ↓ ↓↓ ↓ A120まで CB120まで を A2 A3 A4 B2 B3 B4 C2 C3 C4 D2 D3 D4 ↓ CA2 CA3 CA4 CB2 CB3 CB4 次に A5 A6 A7 B5 B6 B7 C5 C6 C7 D5 D6 D7 ↓ A118 A119 A120 B118 A119 A120 などと並べかえはどのようにマクロを組めばよいですか?

  • Excelでのランクの並び替えについて

    「S→A→B→C→D」の順番でデータを並び替えしたいのですが、 昇順で並び替えをすると「A→B→C→D→S」の順番になってしまいます。 これは手動で並び替えするしか方法はないのでしょうか? Excelについてあまり知識がありませんので、 簡単にできる事があればお教え下さい!

  • エクセルのマクロを知りたい

    エクセルで,たくさんのデータが入力された【シートa】があります。 新しく【シートb】を作成して,そこに空白の表(1)~(10)までを作成します。 (ちなみに表(1)は1行から始まり100行まで,表(2)は101行から始まり200行まで・・・・といった感じです) 【シートb】の表(1)には,【シートa】でA列に「1」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。同様に,表(2)には,【シートa】でA列に「2」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。・・・というのを表(10)まで続けます。 上記のような命令をボタン一つで操作できるようなマクロを教えて欲しいのです。 お願いします。

  • エクセルのマクロ

    A列とB列に以下のような感じでデータが入ってます。 A列 A1  1 A2  あ A3  い A4  う A5  え A6  2 A7  お A8  か A9  3 A10  さ A11  し A11  す B列 B1   1 B2   a B2  2 B3  b B4  c B5  3 B6  d B7  e 両列に共通しているのは数字の1から始まり、1の後に何らかのデータが続いた後に2がきて、また何らかのデータが続いた後に3がきます。 そんな感じで数値が増えて両列とも500(行ではなく数値が)まであります。 この二つの列のデータを合わせたものをC列に表したいのですが。 その規則ですが。まず1がきて、その後にB列の1から下のデータ(2の前まで)がきて、次にA列の1から下のデータ(2の前まで)がきます。2以下も同様になります。 C1  1 C2  a C3  あ C4  い C5  う C6  え C7  2 C8  b C9  c C10  お C11  か C12  3 C13  d C14  e C15  さ C16  し C17  す C列のデータを求めるマクロを教えてもらいたいのですが。 よろしくお願いします。

  • エクセルのマクロ(VBA)について質問です。

    前回もお世話になりました。今回もまた、VBAの質問です。 ある表があります。 A「No.」B「氏名」C「フリガナ」(D「順番」)という項目があります。 項目名はそれぞれ2行目にあります。 データ入力は3行目からで(セルA3)、入力範囲は32行分です。 毎回32名分すべてにデータが入っていればやりやすいのですが、 31名以下の場合に問題があります。 フリガナ順に並べ替える時に、「データ」→「並べ替え」で「フリガナ」項目を 昇順で並べ替えていますが、この時、セルA3からセルC34までを 範囲指定して上記方法で並べ替えると、入力されていない空白の行までも 並べ替えられてしまい、その空白行が先頭から並べ替えられてしまいます。 そういったわけで、現状ではセルA3から入力されている一番下の データのC列(25名分登録ならセルC27)までを手動で範囲指定し 上記並べ替えを行なっています。 空白行を除いて、入力したデータ分だけ並べ替えたいのですが、 まったくわかりません。 これを何とかVBAで解決したく、質問をさせて頂きます。 お知恵を頂きたく思いますので宜しくお願い致します。 情報が不足でしたら、補足要求をお待ちします。

  • エクセル並べ替え教えてください

    エクセルに詳しい方教えてください、お願いします。 シート1のA1セルに名前B1に住所C1に・・2行目以降も同じようにデータを入力し 各列の最後に移し変えたい行データに○を入力したものを、丸印の行データのみを、シート2の1行目から順番に移し変えが出来るようにしたいのですが    A    B    C    D    E 1 名前  住所 電話  データ   ○ 2 3                      ○ 4 1行目と3行目の○をつけた行データを別のシートの1行目、2行目と順番に移し変える方法を教えてください。 よろしくお願いします。

  • エクセルの再質問

    セルA1~D1に1ケタの異なる数値が昇順で入っています。この異なる値の並びが20行まで続いていす。 そこでA25に1、B25に3、C25に5、D25に7と入力したとき、1~20行の中で、この値と同じ並び方をしている行(たとえばA10=1,B10=3,C10=5,D10=7)があれば、セルA10,B10、C10,D10に色をつけたいのですが出来るでしょうか? また、条件が2個になれば同じようにできますか? よろしくお願いします。

  • エクセルのマクロで範囲を選択するマクロ

    教えてください。 下記の通り、例えばA列の2~5にデータが入っている場合に、B2~D5の範囲を選択するマクロを教えてください。 A列のデータが入っている行は可変です。   A B C D E 1  2 6 3 7 4 9 5 10 6 7

  • エクセルの並べ替え

    エクセル2002使用です。 行を基準にデータの並べ替えをしたいのです。      A B C D E 1行目  1 2 3 4 5 2行目  1 2 3 4 5 1行目、2行目にA列から小さい順番に数字が並んでいます。 これを並べ替えによって行を基準に大きい順番に変えることはできるでしょうか? 1行目  5 4 3 2 1   2行目  5 4 2 2 1 よろしくお願いします。

専門家に質問してみよう