dポイントプレゼントキャンペーン実施中!

エクセル2000です。
たびたびの質問ですみません。
非常に大きな表なので、手作業では大変そうなのでよろしければアドバイスお願いします。
シート間のデータを照合して相違箇所を知りたいと思います。
初心者なのでマクロは使ったことがありません。
初心者でも出来るやり方はありますでしょうか?
すみませんがよろしくお願いします。

A 回答 (7件)

たびたびどうも(笑)



>シート1、2で同一だったデータも表に書き入れる

というのは
「相違が無ければ、元データをそのまま表示する」
ということですか?
シート1のA1に 50という数字
シート2のA1に 50という数字があるとして
シート3のA1にも 50と表示させたい
ということでしょうか?

その場合でしたら
チョッと式を変更して

=IF(Sheet1!A1=Sheet2!A1,Sheet1!A1,"違います")

という具合でどうでしょう?
シート1と2のA1を比較して、同じなら
シート1のA1を表示する
違っていれば 違います と表示する
という意味の式になります。

こういうことで宜しいのでしょうか??
    • good
    • 0
この回答へのお礼

おはようございます!
昨日はどうもありがとうございました。
今朝一番に作業をしました。とても見やすい表になりました。
エクセルってすごいですね。感動です。
tizzyさん、またきっとお力を借りるときがくると思いますが、その時はよろしくお願いします!!!(^-^)
(慣れ慣れしくてごめんなさい)

お礼日時:2003/12/04 09:14

> データが700行のEZ列まであるのでどうしようかと。

。。
→まさか。
コピーとペーストは分かりますか?「編集」というところにありますよ。

・1行目に式を入れた後、2行目に移って、また1行目に戻ってから、式をコピー(ctrlを押しながらcキーを押す)します。
・再度2行目に移って、shiftを押しながら、↓キーか、PageDownキーを押して、2行目から700行目まで選んで、ペースト(ctlキーを押しながらvキーを押す)してください。

もしくは、

・700行目になにかデータを入れます。なんでもいいです。
・1行目に式を入れた後、2行目に移って、また1行目に戻ってから、式をコピー(ctrlを押しながらcキーを押す)します。
・再度2行目に移って、shiftとctlを押しながら↓キーを押すと、2行目から700行目まで一気に選ばれますから、ペースト(ctrlキーを押しながらvキーを押す)してください。
    • good
    • 0

No.2です。


「シート1と2のデータのある範囲と同じ範囲のセルにコピー」

というのは、シート1.2のデータが
例えば、A1からH20までの中に記入されているとすると
シート3のA1からH20のセルすべてに
先程の式を入れるということです。

ひとつずつ入れると大変ですので
はじめのひとつのみを入力してあとは
コピー、貼り付けをします。
先程提示した式の中のA1という部分は
貼り付けられるセルの位置によって
自動で変わりますのでご安心を。

1. A1に =IF(Sheet1!A1=Sheet2!A1,"",1)
と入力してEnter。

2. A1のセルをコピーします

3. A1からH20までのすべてのセルを選択します

4. 選択したものの上で右クリック>>貼り付け

という手順です。

ひとつ忘れていましたが
表示される文字を「1」などの数字以外のものを
指定したい場合には

=IF(Sheet1!A1=Sheet2!A1,"","違います")

というように " " で囲むようにしてください。
上の式ですと違いが見つかったセルに
「違います」と表示されます。

説明がわかりにくかったようで申し訳ないです。
また分からなければ再度お尋ねください。
    • good
    • 0
この回答へのお礼

tizzyさん
丁重なお返事ありがとうございます!!
おかげさまで、想像していたとおりにできました!!
本当にありがとうございました。
これで充分なのですが、ちょっと欲がでて(^^;)
今は相違データのみ書き出されているのですが、シート1、2で同一だったデータも表に書き入れるのは難しいですか?
しつこく質問してすみませんm--m

お礼日時:2003/12/03 16:11

#1です。

横入りで恐縮ですが
> 「シート1と2のデータのある範囲と同じ範囲のセルにコピー」と言う意味
→シート1のA1セルと、シート2のA1セルを比べた結果であるところの「同一/相違」なり「Yes/No」なりという表示をどこかにしなければならないでしょう?
それを、シート3に表示させるとして、ではシート3のどのセルにそれを表示させればわかりやすいですか?
やっぱりA1でしょう?という意味ですよ。
もしくは、相違のあるセルの番地を列挙させたかったですか?それはVBA使わなきゃツラすぎます。

この回答への補足

アドバイスありがとうございます。
せっかくアドバイスを頂いているのに、初心者の私が使いきれてないので申し訳ないです。。。
やりたいことはこの方法でいけそうなのですが、これはセルにひとつずつコピーをしていかないといけないのでしょうか?
データが700行のEZ列まであるのでどうしようかと。。。

補足日時:2003/12/03 15:32
    • good
    • 0

マクロでよければ一例として・・・



使い方
・データ検証
"Sheet1"と"Sheet2"に検証データを貼り付ける
"Sheet1"の一番左上のセルをクリックして「データ検証」を実行
終われば終了メッセージが出ます
"Sheet1"と"Sheet2"の違う箇所の文字の色が赤くなり、赤くなった列の一番上のセルも赤くなる
時間がかかって検証範囲を狭めたかったら65535(Const lngRow As Long = 65535)と
255(Const lngCol As Long = 255)を変更する

・ジャンプ
「データ検証」を実行した後
一番上の行で赤い文字のセルをクリックして「ジャンプ」を実行
その列の次の赤い文字のセルに"Sheet1"と"Sheet2"共に移動します。
赤い文字のセルが他になければメッセージが出ます

下のがマクロ

Const lngRow As Long = 65535
Const lngCol As Long = 255
Sub データ検証()
Dim lngCnt1 As Long
Dim lngCnt2 As Long

Worksheets("Sheet1").Activate
For lngCnt1 = CLng(ActiveCell.Column) To lngCol
For lngCnt2 = CLng(ActiveCell.Row) To lngRow
With Worksheets("Sheet1").Cells(lngCnt2, lngCnt1)
If .Value = Worksheets("Sheet2").Cells(lngCnt2, lngCnt1).Value Then
.Font.Color = vbBlack
Else
.Font.Color = vbRed
Worksheets("Sheet1").Cells(1, lngCnt1).Font.Color = vbRed
End If
End With
Next lngCnt2
Next lngCnt1

MsgBox ("Finish!")
End Sub

Sub ジャンプ()
Dim lngCnt1 As Long
Dim lngRet1 As Long
Dim lngCol1 As Long

Worksheets("Sheet1").Activate
lngCol1 = CLng(ActiveCell.Column)

For lngCnt1 = CLng(ActiveCell.Row) + 1 To lngRow
With Worksheets("Sheet1").Cells(lngCnt1, lngCol1)
If .Font.Color = vbRed Then
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Cells(lngCnt1, lngCol1).Select
Worksheets("Sheet1").Activate
.Select
Exit For
End If
End With
Next lngCnt1
If lngCnt1 > lngRow Then
MsgBox ("There is nothing!")
End If
End Sub
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
マクロは使ったことがないのですが、(超初心者で。。。)本を見ながらこの式を貼り付けましたが。。。
まだまだ勉強がたりませんね(^-^)
これを機にもっとがんばろうと思いました。
そして、いつかマクロでこれを使います!
どうもありがとうございました。

お礼日時:2003/12/03 21:01

99bluesさん



まったく同じ形の表があるシート二つの照合として
ひとつの案ですが

シート1とシート2があるとして
もう1枚シート3を用意してそのシートのA1に

=IF(Sheet1!A1=Sheet2!A1,"",1)

と式を入れてシート1と2のデータのある範囲と
同じ範囲のセルにコピーします。

1と2で同じデータなら空欄になり
違いがあると1が表示されます。
表示する文字は式の最後の「1」の
ところで決められますので×とかcheck
などお好きなものでお試しください。
こういったことで宜しいのでしょうか?
お尋ねになっていることと違っていたら
ごめんなさいm(__)m

この回答への補足

どうもありがとうございます。
アドバイスどおりにやっているのですが、「シート1と2のデータのある範囲と同じ範囲のセルにコピー」と言う意味がよくわからなくて。。。
お忙しいところすみませんが、お時間があればもう一度アドバイスよろしくお願いします。

補足日時:2003/12/03 13:36
    • good
    • 0

3枚目のシートを用意して、


=EXACT(Sheet1!A1,Sheet2!A1)
としていけばどうですか。VBAを使わず、という場合だいたいはワークシート関数を使うんですが、「fx」というボタンを押すと一覧が出てきて、一つ選ぶと簡単な説明が出来てきます。分類もされていますから、「自分がやりたいことに使える関数はないかなー」とそこから探すクセをつけましょう!
    • good
    • 0
この回答へのお礼

アドバイスどうもありがとうございます。
ワークシート関数をもう少し勉強します。
エクセルがもっと便利になりますよね(^-^)

お礼日時:2003/12/03 13:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!