• 締切済み

エクセル削除行を別ファイルへ抽出

エクセル初心者のため、お教え下さい。 Aファイル(1000行)より、行削除してBファイル(800行)を別ファイルとして保存しました。 削除した200行のデータをCファイルとして保存したいのですが、どうすれば良いでしょうか? ちなみに、Aファイル、Bファイルとも有ります。 どうぞよろしくお願いいたします。

みんなの回答

  • Mr-WATSON
  • ベストアンサー率59% (117/196)
回答No.3

では具体的な方法を。 1:Aデータにつけ足すようにBデータをコピー&ペーストし、1800行のデータにします。 当たり前ですが、双方の列を一致させるようにします。 2:1800行のデータすべてを選択し(列方向も最終列まででOK) データ→並べ替えを選びます。前提で先頭列(一応A列とします)を基準にすることにしたので、最優先させるキーとしてA列を選びます。 前提でユニークデータであることがわかっているので、2番目以降の条件を選ぶ必要はありません。 A列をキーに選んだら、昇順で並べ替えます。 3:正しくソートされれば、Aにしかないデータは1行で、Bにもあるデータは2行続けて並んでいるはずです。 4:正しくソートされているかを確認し(大体でいいです。全てを確認することはありません、そんなヒマがあれば、手作業で抽出すればよいのです)先頭列の前に空白を3列挿入します。ここにIF関数の式を入れて抽出します。この空白列がA列、B列、C列になります。データの入っている先頭列はD列です。 5:まずA1のセルに入れる計算式です。 =IF(D1=D2,"*"," ") D1とD2が同じ値ならA1に「*」を入れ、違う値なら空白にしろという式です。つまりすぐ次の行と同じなら「*」が入ります。 この式を同じA列の最終行の1行手前までコピーします。 最終行には式を入れてはいけません。 6:同様にB2(B1ではありません、B1は空白にします)に計算式を入れます。 =IF(D2=D1,"#"," ") A列に入れた式と同様です。D列の値がすぐ上の行と同じ値ならB列に「#」が入ります。 この式をB列最終行までコピーします。 7:5と6の作業で、AもBも空白の行が1行しか存在しないデータの行です。これを抽出すればCデータになります。 A列、B列、C列オートフィルタをかけますが、1行目にデータがあるとこれがフィルタにかからないので、空白でいいから1行挿入しておきます。 A列とB列ともオートフィルタで空白セルを選びます。ここで表示された行がCデータに当ります。 8:このままだと抽出できないので、表示されているすべての行のC列に「*」を入力します。 表示されている一番上に「*」を入れて、オートフィルで最終行まで入れてしまって大丈夫です。 9:一旦A列とB列のオートフィルタを解除してから、今度はC列で空白セルを表示します。 表示されている行をすべて削除します。 10:C列のオートフィルタを解除するとCデータだけになっていますから、A~C列を削除します。 11:2でソートしてしまったので、もし元の順序に戻す必要があれば、前準備でつけた続き番号の昇順でソートしなおせばよいのです。 わかりましたか? 式を1つにすることも可能だと思うのですが、考え方としてわかりやすく、応用もでき、ここで説明しやすい方法ということで、ちょっと段階が多いのですが、このような説明にしました。わかりにくい点があれば、この欄でご質問ください。

hirari222
質問者

お礼

具体的な方法をお教えいただきましてありがとうございました。 また、ご連絡が遅くなったことをお詫びいたします。 さっそく手順通り、作業させていただいた結果、無事新ファイルを作成することができました。 IF文はかなり便利ですね。エクセル初心者としては、このあたりの計算式や応用を、勉強していくのが上達する方法かも知れませんね。 ご説明が非常にわかりやすく、大変感謝しております。 ありがとうございました。

  • Mr-WATSON
  • ベストアンサー率59% (117/196)
回答No.2

回答者No.1です。 補足にすぐ気付かず失礼しました。 文章でうまく説明できるかわかりませんが、やってみます。 一度下書きしてみたら超長くなったので、まず前段の説明だけ書きます。次の回答で具体的な方法を書きますね。 少し余計に手間をかけているところや、列の位置など必須条件でないものもありますが、説明をわかりやすくするためなので、コツがわかればその辺はわかってくるとと思います。 注釈もあまり詳しく書きませんでしたので、わからない点があったら質問してください。 また、いきなり本データでやらないで、10行くらいの項目も少ないデータを作ってみて、それで説明を見ながらやってみてください。理解が早いと思います。 念のため、元データのバックアップコピーは取っておいてくださいね。 まずAデータとBデータを合体させるのですが、前提条件の確認です。 名簿ということなので先頭列は名前と思われますが、これがユニークデータという前提で、各行のキーとします。 他の項目(電話番号など)がユニークデータの場合はコピーまたは移動させて先頭列(一応A列とします)にあるものとします。 また、最終的に抽出するCデータの並び順は元のAからBを取り除いたままの順~つまりAデータの時の順序になっている必要があるでしょうか? もしそうであれば、前準備として、先にAデータに続き番号を振っておく必要があります。Bデータに振る必要はありませんが、列数が食い違うと面倒なので、Aデータの最終行に振るなり、Bにもダミーを振ってもいいでしょう。自分なら(ちょっと自信がないので)万一抽出がうまくいかなかった時の原因解明のためにABの区別がつくように番号を振るでしょう。 説明のためにデータは1行目から入っているとします。「名前」「住所」など項目名が1行目ならデータは2行目からですが、説明が面倒なので、一旦1行目を削除してこの通りにやってみてください。 ここまでが準備です。次の回答で実際の式などを書きます。

  • Mr-WATSON
  • ベストアンサー率59% (117/196)
回答No.1

ExcelならここよりOffeceアプリの板へ行かれた方がいいかとは思いますが… データの内容というか、どのような種類のデータか、AファイルとBファイルの違い(何を条件に200行削除しているか)などにより、やり方は違ってくるので、詳しい方法まで書けませんが、大雑把な考え方を。 ただしAファイルもBファイルもそれぞれ1枚のワークシートで完結していること。 どこかの列(例えば先頭列)がそれぞれユニークデータであり、BファイルのそれはAファイルに一致するものが必ずあること。 (ユニークデータとは唯一無二のデータで、例えば名簿のようなものなら同姓同名は「鈴木太郎1」「鈴木太郎2」のように何らかの区別がつくこと) AファイルにBファイルの行を追加します。 つまり全体は1800行となり、Bファイルにあるデータはすべて2行ずつ存在することになります。 このなかから1行しかないデータを抽出して、Cファイルとして保存する。 こういうことでしょうか?それならIF関数で抽出可能です。 もう少し詳しく(例えば「名簿」で同一人物は居ない~など)がわかれば関数の式も作れそうですが…

hirari222
質問者

補足

お返事が遅くなってしまい申し訳ございません。 質問板を間違えたようですね、ご指摘ありがとうございます。 データのカテゴリーは名簿です。同一人物は居ません。個人情報として1行単位で構成されています。 作業工程は、データベースからExcelへインポートし、Aファイル(1000件)を作成しました。その中から不備項目の行を削除(200件)していき、Bファイル(800件)として別名保存しました。 とりあえず、ご指示通り、AファイルにBファイルの行を追加したいと思います。 その後の抽出方法をお教えいただければ幸いです。

関連するQ&A

  • EXCELで約6000行の中から同じ行を削除。

    EXCEL初心者です。 約6000行のデーターの中から同じ名前の行を削除する方法を 教えていただけないでしょうか?   A    B   c   d   e  1  ○ 2  ○ ← 削除  3  ○ ← 削除 4  △ 5  △ ← 削除 よろしくお願いいたします。

  • エクセルで別のファイルにあるものをそれぞれ抽出して、ひとつにまとめたいんです。

    エクセルに関する質問はたくさんあり、重複しているのか確認してみつつも漏れていたら申し訳ございません。 仕事上で困っております。ぜひ、ご教授ください。 エクセルのデータが2つあります。 ひとつは    A  B   C ・・・ 1 品番 商品名 納品日 2 N010  机   2008/1/9 3 N009 テープ  2007/12/29 もうひとつは似たような形なのですが    A  B   C ・・・ 1 商品名 納品日 品番 2 机   2008/1/9 N010 3 テープ  2007/12/29 N009 とそれぞれ業者から毎日送られてくるものがあります。 並び替えてくっつければ問題ないという意見もありますが、 それぞれを見つつ、全体も見るためにひとつにもまとめたいのです。 さらにそれぞれのファイルには余計なものも付いて来て (業者によって担当が入っていたり、期日があったり・・・)、 必要な部分行だけを抽出してひとつのファイルにしたいのです。 今回必要なのは それぞれのA・B・Cなのですが、順番が違うのでどうやって抽出し、ひとつのファイルにまとめることが出来るのでしょうか? また、毎日更新されてくるので自動的にひとつのまとめたデータのファイルにも更新されると嬉しいのですが・・・。 文章が下手で質問の意図がわかりにくいかと思いますが、 ぜひ、お教えくださいませ。

  • エクセルの行削除について

    次のような1000行ほどのエクセルの表があります。   A    B    C   D 1 始点   2 3 終点 消去 4 始点 5 終点 採用 6 始点 7  8 終点 消去   「始点」の行から次の「終点」の行までが1つのデータです。 データの最後に「消去」とあるデータを削除し、「採用」とあるデータだけ残したい。 サンプルでは、1行~3行、6行~8行を削除したい。 手作業以外で、簡単にできる方法をさがしています。 どなたかよろしくお願いします。

  • エクセルのファイル中の空白行を削除する方法

    エクセルのファイルでデータ入力されているものがあるのですが 空白の行があり,それを削除したいのですが たくさんあって手作業では大変です。 マクロなどでうまく自動的に削除できないものでしょうか? 因みにデータはA列にのみ入力されてます。 宜しくお願いします。

  • エクセル:別ファイルからの抽出

    エクセル:別ファイルからの抽出 エクセルにて、 あるファイルに A  B    C No 月    氏名    1 2010/11  佐藤 2 2010/10  山田 3 2011/12  田中 4 2010/10  田中 ・ ・ とあり、それを別ファイルで 2010/10とセルに入力してやると、B列の2010/10だけ抽出して 一覧にしてくれるようにしたいと考えております。 関数またはVBAにて処理する方法はありますでしょうか? A  B    C No 月    氏名    2 2010/10  山田 4 2010/10  田中 ・ ・ ※別ファイルにおいては順番は関係ないので、Noがなくても よいです。 恐縮ですが、お答え願えれば有難いです。

  • エクセル2000 別ファイルへの抽出について

    エクセル2000 別ファイルへの抽出について 「a」というファイルに一ヶ月分 縦に日付、曜日。横に20ほどの項目の来客数を入力しています。 「b」というファイルに平日を 「c」というファイルに土日を それぞれ表示したいのです。 当方初心者のため、「a」ファイルのb6から「b」ファイルへ移す時に +'[a.xls]9'!$b$6 という感じに「+」でひとつひとつ地道にやっています。 なぜか[$]でくくられてしまい ドラックでコピーも出来ずに困ってしまいました。 12ヶ月分作成しなければいけないので 地道な作業では追いつかなくなってしまいました。 どのようなやり方があるのかすら わからない状態ですが どのような計算式にしたらいいのか教えて下さい。 説明がわかりにくくてスミマセン。 フィルタすら知らない初心者なもので<(_ _)> 既存の表があり、表を変更することは出来ないのです。 参考になるかはわかりませんが画像を添付いたします。 大変お手数ですが、よろしくお願い致します。

  • テキストファイルから文字を読み込み最初の行を削除

    現在、リアルタイムでセンサーで値を取得してそれをファイルに書きだすと同時にgnuplotで描画するwindows(VC++)プログラムを作っております。 手順としては (1)ADCの装置から値が送信されるのでそれを取得 (2)fprintfでデータ書き出し (3)gnuplotでグラフを作る ということをやっています。 データの書き出し、リアルタイムでのグラフ表示はできるようになったものの、グラフを作る際、データがそれまで取った値全てのデータでグラフを作ってしまうので非常に膨大なデータをプロットしてしまいます。 そこで、「最新の1000個だけをプロットする」ようなことをしたいのですが、このとき、データを保存するファイルとは別に、一時ファイルを作り最新の1000個のデータをその一時ファイルに書き込みそれをplotすることを考えました。(1秒おきに、最新のデータが一番後ろの行について、1000個前のデータが削除される) しかしながら、「最初の行(1000個前のデータの行)を削除する」というところでどう実現すれば良いのか分からなくなってしまいました。 ご存じの方いらっしゃいましたら教えていただきたいです。 どうぞよろしくお願い致します。 ===== 一時ファイル ====== #a   b a0    b0    ←ここの行を削除したい! a1    b1    ・    ・    ・ a999 b999 a1000 b1000  ←ここが追加される

  • Excel 別ファイルからのデータ抽出

    OfficeXP-Excelにて質問させて頂きます。 以下のような異なるファイルが2つあります。 ------------------- [ファイルA]     A         B     C     D     E     F    G 1    No.           1            2           3 2    氏名         山田         田中        佐藤 3             送付日 受領日  送付日 受領日 送付日 受領日 4   2007年04月分   4/2  4/27   4/3  4/26   4/2  4/25 5   2007年05月分   5/1  5/30   5/1  5/31   5/2  5/30                   ・                                     ・                   ・ (1行目・2行目のB:C、D:E、F:Gは結合されています。) ------------------- [ファイルB-シート2007/5]     A     B     C     D 1   2007年05月分 2     ←空白行 3   No.    氏名  送付日  受領日 4   1    山田 5   2    田中 6   3    佐藤                   ・                                     ・                   ・ ------------------- [ファイルA]のA4以降の『2007年**月分』のデータ『送付日』と『受領日』を [ファイルB]のセル[A1(2007年**月分)]と『No.』が一致する『送付日(C4~)』『受領日(D4~)』に 関数などを用いて抽出したいのです。 1年分のデータを1つの表にまとめて格納している[ファイルA]に対し[ファイルB]は各月のデータをシート毎に分けてあります。 [ファイルB]で元になるシートを作成しておき、毎月その元シートをコピーし[A1]の日付だけを変更すれば自動的に必要なデータを引っ張ってくるように出来ますでしょうか? 説明が解り辛ければ補足致しますので、何卒ご教示宜しくお願いします。

  • エクセルにおいて、行ごとに別ファイルを作成

    エクセル AAA.xls の、シート aaa のデータが851行まであります。 (1行目は名前や列名などのデータです) このデータを複数のエクセルファイルに、 2~171行目までは 01.xls 172~341行目までは 02.xls 342~511行目までは 03.xls 512~681行目までは 04.xls 682~851行目までは 05.xls のように分けて保存したいです。 さらに、週毎に シートaaa のデータは更新されるため、 B~F.xls への保存も、前月分を残したまま追記していく必要があります。 (たとえば、01.xls を開くと、12月1週目のデータの後に、12月2週目のデータが 追記される・・・ という操作を組み込みたいです) こういった作業をするためのマクロは、実際にどのように書けばよいのか、 ご教示ください。 非常に複雑なマクロになってしまうかもしれませんが、 どうぞよろしくお願いいたします。

  • エクセルVBA 特定文字以外の行削除など他

    こんにちは。 エクセルのマクロについて質問です。 マクロ自体も初心者です。 画像のようなデータがあり、 マクロを使って実行後(赤枠で囲まれた)のようにマクロを組みたいです。 マクロを記録で手動でやってみたのですが、特定文字のある行以外を削除が できなく困っております。 手順としては、 (1)B列を削除 (2)1行目に行挿入 (3)B1とC1をセル結合 (4)D1とE1をセル結合 (5)1行目だけタイトルを入れます。 A1:送り状NO B1(C1):住所 D1(E1):お客様名 F1:到着日 G1:個口数 H1:案件 (6)添付画像のように「株式会社 ABC」の「ABC」を含んでいる行以外を削除 そして、可能であれば(7)として保存もしくは別名保存でxlsx形式で保存を行いたいです。 保存先は、実行前のデータが置いてある場所、もしくは、デスクトップでお願いしたいです。 補足:実行前のデータはxls形式のファイルです。 また可能であれば、マクロの実行をしている意味をコメントアウトで入れて頂けると 大変助かります。 周りに聞く人もおらず、困っております。 宜しくお願い致します。

専門家に質問してみよう