• ベストアンサー

エクセルでオートフィルターで表示した複数データに新しいデータを上書きして貼り付けたい

エクセル2003を使用しています。 エクセルでオートフィルターで表示した複数データに新しいデータを上書きして貼り付けたい。 たとえば 男女混合名簿 番 氏名 性 観点 1 田中 2 A B B A 2 吉川 1 A B B B 3 大山 2 B B B B 4 藤本 1 B B C C 5 鈴木 2 A B A A をオートフィルターで2で表示させると 1 田中 2 A B B A 3 大山 2 B B B B 5 鈴木 2 A B A A となります。 これに 1 田中 2  3 大山 2 5 鈴木 2 の部分に 別のシートで作成したデータ A A A A B A A B A A A A を貼り付け上書きできないでしょうか。 オートフィルターで抽出したデータを別のシートに貼り付ける方法はわかるのですが、その逆がわかりません。 よろしくお願いします。

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

  • ベストアンサー
  • goomania
  • ベストアンサー率56% (84/149)
回答No.4

2つの方法を思いつきました。 1.関数を使う方法 ご質問のようなケースではVLOOKUP関数を利用して 3つの表を結合する手法が一般的なのではないでしょうか。 男子のみの表を表1、女子のみの表を表2、男女混合の表を表3とすると 「表3に表1および表2の情報を取込み、表3を一覧することで表1、表2 の内容も分かるようにしたい」 というのがご質問者のニーズであると理解しました。 そこで表3に表1、表2の情報を取込むためには、表1、表2、表3に 共通に存在する項目(たとえば氏名とか個人番号とか)があることが 前提となります。 たとえば「表2の10列目に登場する個人データが表3に登場する 3列目の個人データと同一人物のものである」と判断するためのキーが必要だ ということです。 さて、各表に共通に存在する項目(キー項目)があるなら VLOOKUP関数を使用して、各表の情報を結合することができます。 表3は以下のようだとご質問者が示しておられます。 A   B  C   D    E    F    G 番 氏名 性 観点1 観点2 観点3 観点4 1 田中  2   A    B    B    A 2 吉川  1   A    B    B    B 3 大山  2   B    B    B    B 4 藤本  1   B    B    C    C 5 鈴木  2   A    B    A    A ご質問者がお示しになられた表がG列までデータが入力された 状態だとして、H列以降のI列、J列、K列に男子のみの表、 女子のみの表からデータを取得するために まず、男子のみの表と女子のみの表を結合します。 前提として表の見出しである 番、氏名、性、観点などの並び順と 個数は男子、女子とも一致しているものとします。 結合するといっても、女子の表の最終行の続きに男子の表 をくっつけるだけです。(逆に男子の表の最終行の続きに女子 の表をくっつけてもOKです。) これを表4とします。以下のような表です。  A   B    C    D    E 氏名 観点5 観点6 観点7 観点8 田中   A    A    A    A 大山   B    A    A    B 鈴木   A    A    A    A 吉川   B    A    A    B 藤本   A    B    A    A ここでは氏名がキー項目だという前提で述べますが、 表3のH2に以下のような関数を記述します。 =VLOOKUP($B2,表4.xls!$A$2:$E$6,COLUMN()-6,FALSE) <上式の$A$2:$E$6は表4のデータの範囲を示します。> これを例示されているケースで言えばH2:K6の範囲へ コピーします。 これで、 A  B   C    D    E    F    G    H    I    J    K 番 氏名  性  観点1 観点2 観点3 観点4 観点5 観点6 観点7 観点8 1 田中  2    A    B    B    A    A    A    A    A 2 吉川  1    A    B    B    B    B    A    A    B ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・以下略・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ といった表が得られると思います。 2.関数を使用しない方法 >オートフィルターで抽出したデータを別のシートに貼り付ける方法はわかるのですが、 >その逆がわかりません。 ということなので 「オートフィルターで抽出したデータを別のシートに貼り付ける方法」を使って まず男子のみ抽出して別のシートに貼り付けます。 このときA列の番号も必ず別シートに貼り付けてください。 ここに 別のシートで作成したデータ A A A A B A A B A A A A を貼り付け上書きします。 ただし、A列の番号部分には上書きせず残してください。 次に女子のみ抽出して別のシートに貼り付けます。 ここに 別のシートで作成したデータ B A A B A B A A を貼り付け上書きします。 ただし、A列の番号部分には上書きせず残してください。 これで、男子、女子のシートが別々に出来上がりましたので 男子の表の最終行の次に女子の表をコピーして1つの表にしてください。 これをA列を基準に並べ替えすれば、ご希望の表が完成すると思います。

naruharukaho
質問者

お礼

関数を使う方法はうまくいきました。 一応目的は達することができました。 ありがとうございました。 =VLOOKUP関数はこれまで使用したことはありましたが、名前で一致させることをおもいつきませんでした。また列番号を求めて相対参照セル利用するCOLUMN()-6の利用など思いつきませんでした。これまで使用したことがなかったので有益なものとなりました。今後もこの数式は使えそうです。 関数を使わない方法はうまくいきませんでした。 ふりがながきちんと整理されていないので並び替えがアイウエオ順になってくれません。 かたかたで始まる名字たとえば「スマート ○○さん」などうまくならんでくれません。 しかし、理想とするのはオートフィルターで表示された部分に形式を範囲と形式を合わせた形でデータの貼り付けができればそれにこしたことはありませんが、もともとこのような機能はないのでしょうか。ここが一番知りたいことなのですが。

naruharukaho
質問者

補足

2週間がたちました。 自分なりに試行錯誤下のですが、次の方法により解決できました。 エクセルの対象シートをアクセスにインポートし、フィルターにかけ変更したいレコードを表示させたのち、変更になったエクセルのデータ貼り付けることで解決しました。 アクセスではこのようなことができたのでした。 みなさんのアドバイスありがとうございました。

その他の回答 (3)

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

貼り付けると張り付いたが。 1 田中 2  3 大山 2 5 鈴木 2 の部分に、は2列ですね。 別のシートで作成したデータ A A A A B A A B A A A A は1列データですか? 貼り付けられるようですが、何のことを言っているのか、どういう必要性から出ているのか、伝わらない。

naruharukaho
質問者

補足

文字データA B C Bをそれぞれ1列ごとに貼り付けます。 そのまま貼り付けると表示されていないレコード(行セル)にもデータが貼り付いてしまい、表示された部分だけ(すなわち、抽出された男子あるいは女子)のところに貼り付かないので困っています。女子のデータを抽出し女子のデータを貼り付けたら表示されない男子のデータにまで上書きされてしまいます。

回答No.2

意味が無い事はしない方が良いのでは? 別シートのデータを貼り付けるのであれば、直接入力するか 一件々貼っても良いのでは? 件数が多いと言うのであれば、書式を明示すれば良い方法を 教えて下さい方がいらっしゃると思います 例題だけでは、何をどうしたいのか良く分かりませんよ

naruharukaho
質問者

補足

>意味が無い事はしない方が良いのでは? 意味があるのでしようとしています。 >別シートのデータを貼り付けるのであれば、直接入力するか 一件々貼っても良いのでは? 件数が多いです。 >件数が多いと言うのであれば、書式を明示すれば良い方法を 教えて下さい方がいらっしゃると思います 文字データA B C Bをそれぞれ1列ごとに貼り付けます。 補足します。 全体的な話になりますが、 男女混合名簿があります。レコード数は160件くらいです。 オートフィルターで男子だけを抽出します。 そのデータに別の人が作った男子だけのファイルからデータを貼り付け、データを更新したいのです。同様に女子だけを抽出します。そのデータに別の人が作ったファイルからデータを貼り付けたいのです。 要するに、男子だけのファイル、女子だけのファイルを合成して、男女混合名簿にある形式のデータファイルを作成したいのです。 しかし、男女混合名簿の"番"(アイウエオ順)は男子名簿の"番"(アイウエオ順)と女子名簿の"番"と異なっています。(なぜなら男女混合にすればアイウエオ順は違ってくるからです。) ここでそのまま貼り付けると表示されていないレコード(行セル)にもデータが貼り付いてしまい、表示された部分だけ(すなわち、抽出された男子あるいは女子)のところに貼り付かないので困っています。女子のデータを抽出し女子のデータを貼り付けたら表示されない男子のデータにまで上書きされてしまいます。

noname#204879
noname#204879
回答No.1

私も妙手を思い付きません。 [オートフィルタ]とは全く関係ないけど… 次のような機能があることをご存知ですか? 下に示すように、範囲1、範囲2のデータがあったとき、範囲2を[コピー]した後、範囲1を選択して[形式を選択して貼り付け]画面で“空白セルを無視する”にチェックを入れて[OK]すると、範囲1aの結果が得られます。 範囲1    範囲1a A B B A → A A A A A B B B   A B B B B B B B → B A A B B B C C   B B C C A B A A → A A A A 範囲2 A A A A B A A B A A A A

naruharukaho
質問者

補足

空白セルを無視する機能は知っております。 オートフィルターで抽出しているデータは空白行はないので使えません。