• ベストアンサー

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

 エクセルでデータ整理をするのに、シート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