| すぐマク YNxv9592 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| 変更されたデータのみ抽出するには? |
|
|
|||||
|
表の変更前と変更後のデータを、変更したデータのみテキストで抽出したいのですが、どうすればいいのでしょうか。 ちなみに私は変更前に一端表を別シートに値のみコピーし、変更後のデータと比較させようかと思っているのですが、比較の仕方もイマイチ分かりません。 教えてください。よろしくお願いいたします。 |
|
||||||
| あなたのイメージを図にしてみました。 | ||||||
|
||||||
|
「前」シートと「後」シートの値を比較して、変更されたデータだけを「差分」シートに表示するためには、どんな方法があるでしょうか。いろいろな方法があるかも知れませんが、あなたのイメージに合うのは MATCH関数 と思います。 MATCH関数とは この関数はワークシート関数で、数式としてセルに直接入力して利用できますし、マクロからでも使用可能です。この関数の機能を正確に解説すると、非常にわかりにくくなってしまいます。それは色々な検索機能を持っているからです。きちんと知りたい方は、マイクロソフト社のリファレンスを見てください。 ここでは、指定した値が指定したセル範囲内に存在しなければ、エラー値を返してくれる機能 を利用します。 MATCH関数の書式 ・・・ MATCH(検査値, 検査範囲, 照合の型) ここからは体験学習しましょう。操作方法は次のとおりです。 1. Excelを起動して新規ブックを表示する 2. 上図のとおりに「前」シートと、「後」シートを作成する (セルの色と書式設定は不要) 3. 「差分」シートにするための新しいシートを用意する 4. 「差分」シートの B2セルに 下記のとおり MATCH関数を入力する。 =MATCH(前!B2, 後!B2, 0) 前!B2 が検査値で 「前」シートの B2セルの値を意味します。後!B2 は検査範囲で「後」シートの B2セル。0 は照合の型で 一致する値のみを検索します。 B2セルに結果が表示されましたか? エラー値の #N/A が表示されれば、ひとまず正解です。指定した値が存在しないとエラー値が返るのでしたね。ここでは 「そのセルは変更されている」 という意味合いになります。 これで半分できました。 続いて、変更されたデータだけを取り出す方法を、2ステップに分けて考えてみましょう。 【ステップ1】 MATCH関数の結果がエラー値かどうかを ISERROR関数で調べる ISERROR関数の書式 ・・ ISERROR(テストの対象) この関数は、テストの対象がエラー値の場合に TRUE を返します。 テストの対象 とは、上記の MATCH(前!B2,後!B2,0) のことですから、それを代入すると次のようになります。 ISERROR(MATCH(前!B2,後!B2,0)) 【ステップ2】 IF関数を使って、MATCH関数の結果がエラー値ならば「後」シートの値をセット、そうでなければ Nullをセットする IF関数の書式 ・・ IF(論理式, 真の場合, 偽の場合) =IF(ISERROR(MATCH(前!B2,後!B2,0)),後!B2,"") B2セルに先ほど入力した数式を、上記のとおり修正してください。その結果、「×」と表示されたら正しいです。 さあ、あと一息です。 「差分」シートの B2セルに正しい数式が入っていますね。それを、セル範囲 A1:B5にコピー貼り付けします。 上図の「差分」シートと同じように表示されたましたか。 質問文にある「変更したデータのみテキストで抽出したい」とは、この「差分」シートでよいのでしょうか。もしも、テキストファイルにしたかったのでしたら、「差分」シートを新規のブックにコピーしてから、テキストファイルとして保存すれば可能と思います。 なお、マクロで組みたい場合は、以上の内容を自動記録したものを母体にして、部分修正する方法が良いかと思います。工夫してみてください。 |
| http://www.happy500z.com/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |