• ベストアンサー

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

エクセル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/17068)
回答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
質問者

補足

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

関連するQ&A

  • オートフィルタ抽出データのみ

    エクセルで オートフィルタで 抽出するさいに その列に打ち込まれている内容が選択できますが その打ち込まれているものだけ 別シートにほしいのですが 方法はありますか? 下記のエクセルシートで フィルタした場合 Aの抽出データの「青 赤 黄」を別シートに  A  B  C  D 1 青 10 済 A社 2 赤 50 未 B社 3 黄 10 済 A社 4 赤 10 未 B社 5 青 11 済 F社 6 ↓  A  B  C  D 1 青 2 赤 3 黄 4 5 上記のようにしたい場合どうしたらいいかお願いします。

  • シート毎にオートフィルタを実行した後の一覧印刷の方法について教えてください

    いつもお世話になっています。 御教授よろしくお願いします。 今同じ項目を持つ一覧表をシート分けして作成しています。 シート分けされたそれぞれの表毎にオートフィルタを設定しています。 それぞれのシートでオートフィルタを実行し、その実行後のソートされたデータを別シートで全シート分一覧表示して印刷したいのですが、その様なことは出来ますでしょうか? OFFICEは2003EXCELを使用しています。 SHEET1 ○○   A   B   C   D    1 名前 年齢  住所  血液型 2 山田 25  東京  A 3 田中 26  。。。 。。。 4 ・・  ・・  ・・・ ... SHEET2 ××   A   B   C   D    1 名前 年齢  住所  血液型 2 鈴木 29  東京  A 3 松本 24  。。。 。。。 4 ・・  ・・  ・・・ ... SHEET1・SHEET2でそれぞれオートフィルして並びかえを行った表をSHEET3に表示して印刷をおこないたい。 SHEET3   A   B   C   D    1 ○○ 2 3 名前 年齢  住所  血液型 4 山田 25  東京  A 5 田中 26  。。。 。。。 6 ・・  ・・  ・・・ ... 7 8 ×× 9 10 名前 年齢  住所  血液型 11 鈴木 29  東京  A 12 松本 24  。。。 。。。 13 ・・  ・・  ・・・ ...

  • エクセル2000のオートフィルター

    エクセル2000のオートフィルターについてです。 そんなに詳しくないですが。。。 表を作成して、顧客リストをつくりました。 シート1には全リストを打ち込んでいます。 オートフィルターと言う機能を知って、担当者別にシートを分けたいのです。(シート2担当:山田)(シート3:鈴木) それで、CSVで保存したいのですが。。。 挑戦しても、CSVに保存した瞬間、担当者別にしていたのに、リストが全て表示されてしまいます。 不可能なんですか?

  • EXCELのオートフィルタについて教えてください。

    下記のようにデータが入力されています。   A   B   C 1 あ 2 い 3 う 4 え 5 お C列のC1に「=A1」C2に「=A2」と入力してオートフィルタを使って、「C3」以下に入力するとオートフィルタが使用できます。 しかし、以下のようにデータが入力されている場合はオートフィルタが使用できないのですが・・・   A   B   C 1 あ 2  3 い 4  5 う 6 7 え 8 9 お C列のC1に「=A1」C2に「=A3」と入力してオートフィルタを使って、「C3」以下に入力するとオートフィルタが使用できません。 簡単なことなのかもしれませんが、今一理解に苦しんでいます。 宜しくお願いいたします。

  • エクセルのオートフィルタについて

    エクセルのオートフィルタについて教えてください。 エクセル2003です。 データ-並べ替え で複数の列に対してレベルごとに昇順で並べ替えをしますが、これをオートフィルタではできないのでしょうか? 例えば、A列にクラスデータがあり、それをオートフィルタで昇順にしておいて、それをレベル1として、B列に点数があり、それをオートフィルタで降順にして、それをレベル2とするような使い方です。

  • エクセルのオートフィルタ

    エクセルで住所録を作り、そのうちの東京都のデータだけオートフィルタで抽出し、それを別のシートにコピーして表を作りたいのですが、抽出はできても表にすることができません。オートフィルタで抽出したデータだけを一覧表にすることはできないのでしょうか?

  • エクセル97で、オートフィルタ…

    エクセル97でオートフィルタをつかいたいのですが、    A   B   C   D   E 1          ○   ▽   ▲ 2  ×   ●   ・   ・   ・ 3          ・   ・   ・ 4          ・   ・   ・ 5  ●   ×   ・   ・   ・ 6          ・   ・   ・ AとBの列でオートフィルタをかけたいのですが、 行の123と345をひとまめてにして検索できるようにしたいんです… そのようなことは可能でしょうか?? またその他によい方法があればよろしくおねがいします。

  • オートフィルタで抽出した表の集計

    はじめまして。さっそくですが質問させていただきます。 現在、以下のような表があるとします。 行列   A     B     C     1  日付    名前   金額 2 2006年10月  田中   \1000 3 2006年11月  佐藤   \200 4 2006年11月  田中   \500 5 2006年12月  鈴木   \820 6 2007年 1月  鈴木   \323 7 2007年 1月  田中   \750 ここで、A列にオートフィルタをかけて、表示されるセルのみの総合計はSUBTOTALで取れるのですが、さらにB列の人名ごとの合計を取る方法がわかりません。 例えば2006年11月のみを表示した場合、 行列  C    D 9  総合計= ¥700  ←これはSUBTOTAL(9,C1:C6)で解決 10   田中= ¥500 11   佐藤= ¥200 12   鈴木= ¥0 と、出るようにしたいのです。 オートフィルタをかけるのはA列の日付だけではなくD以降にもデータが入力されていてオートフィルタをかける場合があるとしますが人名は3つ(田中・佐藤・鈴木)のみです。 また、実際のデータはとても行数が多いので手作業で可視セルの人名ごとのトータルを毎回打つのは大変ですし、そのデータは多くの人が使うのでオートフィルタをかけるだけで、現在可視状態のセルの総合計・可視状態の田中の合計・可視状態の佐藤の合計・可視状態の鈴木の合計が一度に出るようにしたいのです。 自分としては自作関数を作成し、一応は求める結果が出るようにしたのですが、自作関数を使うとファイルを開く時に「マクロを有効にしますか?」と聞かれてしまうのが難点です。もっと簡単な方法があれば教えていただきたいです。何卒よろしくお願いします

  • エクセル2007でのオートフィルタ

    エクセル2003にてオートフィルタを活用しています。 先日、エクセル2007が入っている新しいパソコンで このファイルを開き、オートフィルタの機能を使用したところ 思うように動かなかったので質問させて下さい。 2003では A列をオートフィルタで昇順、降順をすると B列のデータも連動して動きました。 しかし、2007では A列のみがソートされ、B列は元のまま。。。 これは仕様なのでしょうか? それとも何か設定が必要なのでしょうか?

  • エクセル オートフィルター

    オートフィルターについて教えて下さい。 同じシート内で、独立した複数のオートフィルターを用いることは出来ますか。下に示すような場合にAとB列に独立してオートフィルターを設定して、果物を抽出して、CとD列には野菜だけを抽出する。みたいなイメージです。オートフィルターやマクロを用いないやり方で他のやり方でもできる場合は教えて下さい。    A    B      C    D 1  りんご 果物   りんご  果物 2 キャベツ 野菜  キャベツ  野菜 3  イチゴ 果物   イチゴ  果物

専門家に質問してみよう