

No.5ベストアンサー
- 回答日時:
それほどヒマでもないのですが、乗りかかった船だと思って作ってみました。
まず新しいブックを作成してください(ブック内にSheet1~Sheet3があることを確認、なければ作ってください)
Sheet1のA列にリストAの内容をコピーしてください。
Sheet2のA列にリストBの内容をコピーしてください。
次にメニューバーから「ツール」→「マクロ」→「VisualBasicEditor」を選びます。VisualBasicEditorが別ウィンドウで起動します。VisualBasicEditorのメニューバーの「挿入」→「標準モジュール」を選びます。
画面の右半分に真っ白な広いウィンドウが開きますので、ここに下記の点線内の内容を貼り付けます。
'-----------------------------------------
Sub データ比較()
Dim sa(65536) As Byte
Dim ii, fg, de1, de2 As Integer
Dim c1, c2, c3 As Integer
Dim c As Variant
Set WS1 = Worksheets("Sheet1")
Set WS2 = Worksheets("Sheet2")
Set WS3 = Worksheets("Sheet3")
de1 = WS1.Range("A1").End(xlDown).Row
de2 = WS2.Range("A1").End(xlDown).Row
WS3.Range("A1") = "AB両方"
WS3.Range("B1") = "Aのみ"
WS3.Range("C1") = "Bのみ"
WS3.Range("A2:C65536").ClearContents
For Each c In WS1.Range("A1:A" & de1)
fg = 0
For ii = 0 To de2 - 1
If StrComp(c, WS2.Range("A1").Offset(ii, 0).Value) = 0 Then
WS3.Range("A2").Offset(c1, 0).Value = c
sa(ii) = 1
fg = 1
c1 = c1 + 1
ii = de2
End If
Next
If fg = 0 Then
WS3.Range("A2").Offset(c2, 1).Value = c
c2 = c2 + 1
End If
Next
For ii = 0 To de2 - 1
If sa(ii) = 0 Then
WS3.Range("A2").Offset(c3, 2).Value = _
WS2.Range("A1").Offset(ii, 0).Value
c3 = c3 + 1
End If
Next
End Sub
'-----------------------------------------
貼り付けたら、Excelのほうに戻って、
メニューバーから「ツール」→「マクロ」→「マクロ」を選びます。「マクロ」と書かれたウィンドウが画面上に開きます。「データ比較」という行が反転していることを確認して(反転していないときは、クリックして反転させる)「実行」ボタンを押します。Sheet3に実行結果が書き出されます。
以上です。お望みのような結果が得られましたでしょうか?
(ふぅ、しんど)
No.7
- 回答日時:
#3です。
条件、というのは、色を付けるために使っている条件です。
条件付き書式を使用しているということは、
その設定においてある数値以上であるとか、等しいとかの
条件をつけているのではありませんか?
その条件式を作業列にもってくればできるのではないかと。
例えば「=a1=p1×0.5」という式で条件付けをしているなら、
作業列に=if(a1=p1×0.5,1,0)とすれば
条件を満たしている場合は、「1」となります。
この列をキーにしてオートフィルタで抽出できないか、
ということです。
No.6
- 回答日時:
あまりあれこれ言っても puriboo さんをお忙しくさせるだけと思っていましたが、
ちょっとだけ書かせていただきますね。
どこかのシートにSheet1のデータの下にSheet2のデータをつぎ足す形でコピーします。
もちろん見出しは1行目だけにあります。
データは上から隙間なく詰めてあるとします。
これを、名前をキーにして並べ替えます。
そして、名前がA列だとすると
B2に =IF(A1=A2,"",1) として、B1の右下の小さな黒いハンドルをWクリックして下までコピーして下さい。
自分より一つ前の行のセルが同じ行のセルと一致したら「1」が戻ります。
(重複しているという事です)
B列を選択してコピーし、値の貼り付けをします。
今度はB列をキーにして並べ替えます。
あとは1が立っている行を削除します。
No.4
- 回答日時:
> おっしゃるとおり、先程紹介していただいた
> 条件付書式で色をつけました。
> これでは不可能のようですね・・・。
そうですね、お役に立てなくて申し訳ありません。
しかし前のご質問に関数で比較する方が簡単ですというご回答がありますので
参考にされてみてはいかがでしょうか。
応用が利きますよ。
削除したい行、または削除したくない行に関数で○など戻るようにしておいて、
その上でフィルタオプションを使って絞込みをする、という手があります。
No.3
- 回答日時:
最終形をどうしたいのか、がいまいち見えてないので
的外れの回答でしたらすみません。
条件付き書式で色をつけているということは、
何らかの条件を満たす行を表示、もしくは非表示したい、
ということですよね?
例えば作業列を作り、その条件を満たすものを「1」
満たさないものを「0」とする計算式(if式)を入力して
それでオートフィルタをかける、という手法では
できませんか?
この回答への補足
説明不足で申し訳ないです。
具体的にしたいことは
リストA、リストB があり
重複するレコードを抽出したい
ということです。
まず重複リストを条件付書式で色をつけました。
そのあと、色をつけたセルを行単位で非表示にしたい
のです。
エクセルに詳しくないのですが、
>その条件を満たすものを「1」
>満たさないものを「0」
たとえば、作業列を作り、隣の列が緑だったら
「1」、
そうじゃなければ「0」という風にするときは
どうしたらよいのでしょう?
それができればたしかにオートフィルタで
できますね。
IF関数で”A1が緑”とかはどうやって指定すれば
良いのでしょうか?
ご回答よろしくお願いいたします
No.2
- 回答日時:
ANo.#1で書いた者ですが、削除になっていますね。
実はトゲがある書き方をしたつもりは全くなかったのです・・・。
先のサイトでご紹介した
「別シートにある文字列との重複チェック 」にある条件付き書式で色を付けられ、
その後それについて質問されたのかも知れないと思って
先のご質問との関連をお聞きしたまでです。
誤解を招いてしまったようでしたら申し訳ありません。
ご希望の操作はマクロ関数と名前の定義で実現するように思います。
ただ、これは今はヘルプにも載っていない方法ですので
もし puriboo さんがご希望であればご紹介させていただきますがいかがでしょうか。
ただしこれはセルに直接色を付けた場合に限ります。
先にご紹介したサイトで条件付き書式によって付けられた色の場合は
マクロ関数と言う手段が使えません。
というわけで先のご質問との関連をお聞きしたかったのです。
この回答への補足
ご返信ありがとうございます。
おっしゃるとおり、先程紹介していただいた
条件付書式で色をつけました。
これでは不可能のようですね・・・。
うーん。
どうしようか悩んでいます。
うまく2つのリストの重複するものを
抽出したいのですが。
初めからマクロでやったほうが良いのでしょうか?
関数などかなり素人ですので
詳しくレクチャーしてただけると助かります。
よろしくお願いいたします!

No.1
- 回答日時:
セルだけを非表示にすることは不可能です。
非表示にする場合は行単位か列単位になります。
どちらを使うのか補足してください。
あと、あんまり「急ぎ!」とか「緊急!」とか書くのはどうかと思います。ここの回答者の皆さんは「ボランティア」なのですから、ご自分の都合ばかり声高に主張されるのは、あまり良い印象ではないです。
(#1の方の、すこ~しトゲのある文章も、そのあたりに起因していると思いますよ?)
この回答への補足
焦りのあまり、マナー違反をしてしまい
申し訳ありませんでした。
色のついたセルを含む行単位での
(もしくは色のついてないセルを含まない行)
非表示で構いません。
操作方法ご存知でしたら、よろしくおねが致します。
☆☆☆お礼投稿になってしまいましたが
補足です☆☆
ちなみに、行がかなりたくさんあるので
それぞれを選択して、非表示にする、ではなく
例えば、選択範囲内で色のついたセルを含む行を
非表示に。
みたいな方法がありましたら、よろしくお願いいたします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
EXCELVBAを使用し、複数列に0が...
-
エクセルで行の高さ及び列幅の...
-
オートフィルタ後のデータから...
-
急ぎ!色のついたセルを非表示...
-
VBA 複数行の検索及び抽出
-
エクセル VBA 行間隔を飛ばした...
-
EXCELで一個飛びに足す関数は?
-
Excelで並び替え後にア行...
-
プルダウンに【なし、平均、デ...
-
エクセルの時刻のカウントが出...
-
EXCELでデータ並べ替えにの時、...
-
時間の重複チェック
-
基準日以前のデータを範囲を指...
-
エクセルで文字が白くなる
-
エクセルで文字を含む式に、カ...
-
Excelで、空白を表示したい
-
エクセルで円グラフに引き出し...
-
エクセルで長い行を5行ごとに1...
-
エクセル条件付書式で指定の時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
エクセルで行の高さ及び列幅の...
-
Excelで並び替え後にア行...
-
【Excel VBA】指定した行の最大...
-
エクセルの時刻のカウントが出...
-
オートフィルタ後のデータから...
-
急ぎ!色のついたセルを非表示...
-
EXCELで日付を比べ3か月以内の...
-
基準日以前のデータを範囲を指...
-
エクセル VBA 行間隔を飛ばした...
-
excel / ピポッド 日数を出したい
-
プルダウンに【なし、平均、デ...
-
マクロで行の高さを設定したい
-
エクセル関数について
-
文字列を比較し、相違するフォ...
-
EXCEL 最終行のデータを他のセ...
-
VBA 複数行の検索及び抽出
-
検索条件に合うセルの個数を数...
-
VBA 配列で型がエラーになります。
-
行の一番右のデータセルと同じ...
おすすめ情報