• ベストアンサー

エクセルでリンクや並べ替えを多用するのですが

 エクセルでデータ整理をするのに、シート1で入力したデータをシート2に反映させて、さらに並べ替えも済ませたいんです。  説明しにくいですが、シート1で奇数番号の人、偶数番号の人にわけて入力をします。  シート2では奇数偶数をまとめ、番号順になっている状態のデータにしたいんです。シート1に入力したらシート2に自動的に入力されるようリンクもしたいです。  vlookup などの関数もいろいろ使っているので、参照値などが変わったりしないか心配です。  実際作ってみているのですが、何か簡単な方法(マクロは使いたいのですが、やり方がわかりません)があれば教えてください。

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

  • ベストアンサー
  • HAL007
  • ベストアンサー率29% (1751/5869)
回答No.1

簡単なマクロならマクロの記録を使いましょう。 これならVBを知らなくても勝手にマクロを作れます。 まず、手順の整理です。 sheet1には奇数と偶数の2ブロックからなるデータがある前提です。 1.奇数ブロックのコピーをしてsheet2に貼り付けをします。 2.偶数ブロックも同様にコピーをしてsheet2に貼り付けますが 奇数ブロックの貼り付けた次ぎの行で実行します。 3.両方がそろったたらデータ範囲を指定して並び換えを実行する。 これでやりたい事が完了すると思いますが如何ですか? 次にマクロの記録方法です。(データ入力が終わっている前提) 1.ツール-マクロ-新しいマクロの記録を選択します。   →マクロ名はmodule1がデフォルトです。そのままでも構いませんし    分かりやすい名前に変えて良いです。OKを押し次ぎ。 2.上で説明した手順を実行して並び替えまで実行して下さい。 3.ツール-マクロ-記録の停止で完了です。 マクロの使い方は、ツール-マクロ-マクロでモジュールの 一覧表示されますから該当のマクロをダブルクリックすれば実行されます。 これなら、簡単にマクロが作れて何度でもつかえます。 ポイントはデータ件数が変動する場合、コピー行を多く指定することと、 偶数を貼り付ける時に奇数で増やした行に対応するセルを指定します。 (例:1000行なら1001行目) 並び換えの範囲指定も上記例でいえば2000行まで指定して下さい。

yacky
質問者

お礼

お礼が遅くなり、すみませんでした。 教えていただいた通りに実行してからお礼をしたかったのですが、なかなか時間がなくて・・・。  この回答をプリントアウトさせていただいて、試してみたいと思います。  ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

vlookup関数を使ってできます。 説明を簡単にするためにシート1の奇数番号の人のデータ部分を番号を含めた範囲を「奇数」と名前をつけます。偶数番号も同様に「偶数」とつけます。これは「挿入」「名前」「定義」でつけます。 シート2に番号を順番にいれ、そのとなりの列に奇数の場合と偶数の場合にわけvlookup関数を使います。 偶数奇数の判定はIF関数とMOD関数(余りを計算する関数)を使います。 具体的には IF(MOD(検索値,2)=1,vlookup(検索値,奇数,列数,FALSE),vlookup(検索値,偶数,列数,FALSE))となります。 上記式の検索値はシート2に順番に入れた番号です。 列数はシート1で定義した範囲の中の何列目にあるかです。 シート1に欠番があったりした場合はシート2にはその番号に対応する行には#N/Aが表示されますが、シート2でオートフィルタを設定してオプションで#N/Aと等しくないとすれば表示されません。 設定のしかた 「データ」「フィルタ」「オートフィルタ」

yacky
質問者

お礼

 お礼が遅くなってしまって、すみません。  NO.1の回答をいただいた方と同様、一度教えていただいたことを実践してからお礼をしようと思ってましたが、なかなかできなくて、、、。  回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

    エクセルの並べ替えについて教えてください。 シート1に顧客データが入っています。 シート2では「='Sheet1'!$A$1」みたいな計算式を入れて、シート1のデータを参照した表などが入っています。 シート1の顧客データの氏名を五十音順に並べ替えたいのです。 でも、普通に「並べ替え」をしてしまうと、シート2のデータがおかしくなってしまいます。 なにかいい方法はないでしょうか? よろしくお願いします。

  • エクセルですが

    sheet1でセルA1から下に1,2,3,~,と数字を入力していきます。 その際に奇数については、sheet2のセルA1,A2,A3~,に対しsheet1に入力した奇数1,3,5~が反映されるようにし、偶数ならばsheet3に同様に反映されるようにしたいのです。 マクロを使用しなければ駄目でしょうか? ヒントだけでも結構ですので教えて下さい。

  • excel シート1の奇数(偶数)行(列)のみをシート2にリンクさせる方法

    excel2007を使っていて、関数の使い方がまったく分かりません。 シート1にデータを入力しているのですが、そのデータの奇数(もしくは偶数)行(もしくは列)だけをシート2にリンク(リンクという言い方があっているのか分かりませんが、シート1のデータを変更すれば、自動的にシート2のデータもそれに応じて変更してくれるという意味合いで使っています)ための関数はどうのよう入力すればいいのでしょうか? ちなみにその関数はシート2のA1に入力すればいいのですよね?(関数といったものも使ったことがなく分かりません) どなたか、ご回答お願いします!!

  • エクセル2010 関数について

    関数について質問です。 シート1に入力した数字によって、シート2に反映される数字を 変えたい関数をいれたいのですがわかりません。 ※写真参照 (例:シート1に99と入力すれば、シート2に0と表示され、    シート100~109の数字を入力すれば12と表示される) おそらくVLOOKUPを使うのだとは思うのですが・・・・

  • エクセルの並べ替えをマクロを使わず関数で

    並べ替えをして、ベスト10を作りたいと思っています。 マクロを使わず関数だけで行いたいのですが、上手くできません。 LARGE関数を使って数値のみは大きい順にする事はできましたが、 日付も一緒に並べ替えたいのです。 でも、どうしても良い方法が思いつきません。 VLOOKUP関数を使って日付の並べ替えも考えましたが、同じ数値があると 上手く一緒に並べ替える方法が見つかりません。 たとえば下記のような感じです。実際には365日1年分あります。 もし良い関数があれば知りたいのです。 分かる方いらっしゃいましたらよろしくお願いします。 EXCEL2003です。 並べ替え前(参考) ┌─┬──┬──┐ │日│4月│5月│ ├─┼──┼──┤ │ 1│1400│3500│ ├─┼──┼──┤ │ 2│1300│1400│ ├─┼──┼──┤ │ 3│2100│2200│ ├─┼──┼──┤ │ 4│1100│1900│ ├─┼──┼──┤ │ 5│2100│1300│ ├─┼──┼──┤ │ 6│2500│2900│ └─┴──┴──┘ ベスト10(参考) ┌──┬──┬──┐ │順位│数値│月日│ ├──┼──┼──┤ │ 1│3500│ 5/1│ ├──┼──┼──┤ │ 2│2900│ 5/6│ ├──┼──┼──┤ │ 3│2500│ 4/6│ ├──┼──┼──┤ │ 4│2200│ 5/3│ ├──┼──┼──┤ │ 5│2100│ 4/3│※1 ├──┼──┼──┤ │ 6│2100│ 4/5│※1 ├──┼──┼──┤ │ 7│1900│ 5/4│ ├──┼──┼──┤ │ 8│1400│ 4/1│※2 ├──┼──┼──┤ │ 9│1400│ 5/2│※2 ├──┼──┼──┤ │ 10│1300│ 4/2│ └──┴──┴──┘ ※1 同じ月で数値が同じ ※2 違う月で数値が同じ

  • Excelの行方向での並べ替え

     行方向に順序がバラバラで入力されている日付データがあります(表1参照)。これを日付の若い順に1列ずつ行方向に並べ変えたいと思っています(表2参照)。  「データ」→「並べ替え」→「オプション」→「列単位」にすることで1行ずつ行方向の並べ替えができることは知っていますが、行数が多いため一括して並べ替えができないか考えております。  どなたかご教示いただければ幸いです。なお、Excel2007を使っています。      A          B        C 1  1996/11/07 1997/02/19 1996/11/21 2  1997/02/19 1997/02/19 3  1996/11/21 4  1997/02/19 1996/11/21 5  1997/02/19 1997/11/06 1997/02/19      ・      ・       (表1:並べ替え前)        ↓ (並べ替え)      A         B         C 1  1996/11/07 1996/11/21 1997/02/19 2  1997/02/19 1997/02/19 3  1996/11/21 4  1996/11/21 1997/02/19 5  1997/02/19 1997/02/19 1997/11/06      ・      ・      (表2:並べ替え後)

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

    エクセルで並べ替えをしたいんですが、思うようにいきません。教えてください。 A列:日にち B列:ナンバー C列:名前   が入っています。 C列には、関数が入っています。 B列にナンバーを入力すると、名前が自然に入るようになっています。 関数は、 =IF(B2="","",VLOOKUP(B2,' 名 簿 '!$A:$B,2,FALSE)) です。 A~C列を選択して、 C列(名前順)に並び替えをすると、(データ→並び替え) 空欄のセルが上の方に来て、日にち、NOが入力されているセルは、下の方で並び替えされている状態です。 入力されているセルを上にするには、どのようにすればいいのか、教えてください

  • EXCELの並べ替え

    一人で入力する時にはならないのですが、複数人で入力した後、1つのシートにデータをコピペしてから、並べ替えを行うと、並べ替えが分かれてしまいます。 例えば・・・ 1 1 1 2 2 2 3 3 3 と並んでほしいのに 1 1 2 2 3 3 1 2 3 といった感じになってしまいます。 よろしくお願い致します。

  • 並べ替えを元に戻したい

    エクセルで列、行それぞれかなりのデータがあります。 C列あたりに品番がバラバラで入力されていて、 そのC列(品番)を他のシートからマッチング(VLOOKUP)をとるために、 シート全体で並べ替え(タイトル→品番で)をしました。 その後、VLOOKUPでマッチングをとったのですが、そのマッチングのデータを残したまま、一番最初の品番がバラバラ状態に戻したいのですが可能でしょうか?並べ替えをしてはいけないという指示がありまして・・・。 何か良い方法があれば教えてください。

  • エクセル2010で印刷マクロを組むには

    印刷シートに,Vlookup関数でいろいろあるタグから引用したデーターを,名簿にある個人個人のファイルとして印刷をしたいと思っています。マクロを組まないとなると,個人のデータを反映させた後,ファイル→印刷,新たに整理番号入力→ファイル→印刷と・・・いちいち,整理番号を入力後,マウスを動かし,人数分の数だけ同じ作業をしないといけないのですが,それをマクロを組んで,印刷フォームのあるタグの上部等の印刷指定していない場所に,印刷ボタンを作ってそのボタンをクリックするだけで,印刷できる方法を教えてほしいと思っています。 できれば,その個人には,通し番号があるので。番号を進ませるボタンや逆に番号を戻すボタンもあれば,なおいいし,たとえば○○番から△△番まで指定して印刷ボタンをクリック,プリンターからはその指定した分の個人情報が入力した紙ベースの資料が出てくる・・・・・となったら最高です。 よろしくお願いします。