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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Visual Basic(VBA) エクセル VBA 条件によるセル点滅 お詳しい方 ご教授をお願いします。 Excelファイルにて 現 1 2022/11/03 15:53
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/04/21 13:46
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 13:13
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Excel(エクセル) エクセルにサムネイル画像組み込み 2 2022/09/02 17:13
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2022/06/17 15:40
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
色付き行の非表示について
Excel(エクセル)
-
エクセルで特定の文字列が入った行を非表示にしたい
Excel(エクセル)
-
塗りつぶしのない行を非表示にするマクロ
Excel(エクセル)
-
-
4
条件に応じて特定の行を非表示にしたい
Excel(エクセル)
-
5
エクセルで同じ大きさ、同じ倍率、同じ余白なのにプレビューが違います。なぜ?
Excel(エクセル)
-
6
特定のセルが空白だったら、その行を非表示にしたい。。。
Visual Basic(VBA)
-
7
【エクセル】入力規則のプルダウン▼ボタンを常に表示させたい
Excel(エクセル)
-
8
エクセルで特定の列が0表示の場合、その行を非表示にしたい
Excel(エクセル)
-
9
【Excel】 セルの色での判断はできますか?
Excel(エクセル)
-
10
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
11
【エクセル】関数で「A1が0でないならB1を表示」の式
その他(コンピューター・テクノロジー)
-
12
EXCELで2つの数値のうち大きい方を採択する数式
Excel(エクセル)
-
13
特定の色のついたセルを削除
Visual Basic(VBA)
-
14
セルの文字を「印刷時だけ非表示」にしたいです。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
Excelで並び替え後にア行...
-
平均変化率の信頼区間
-
エクセルで行の高さ及び列幅の...
-
プルダウンに【なし、平均、デ...
-
EXCELで日付を比べ3か月以内の...
-
【Excel VBA】指定した行の最大...
-
急ぎ!色のついたセルを非表示...
-
オートフィルタ後のデータから...
-
エクセル関数のSUMPRODUCTにつ...
-
VBA 複数行の検索及び抽出
-
エクセル関数について
-
エクセル VBA 行間隔を飛ばした...
-
【Excel】指定した文字列の行を...
-
エクセル関数について
-
EXCELの行列検索をおこなう関数
-
Excelで任意の文字列を半角スペ...
-
基準日以前のデータを範囲を指...
-
Excel VBA オートフィルター 期...
-
excel / ピポッド 日数を出したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
Excelで並び替え後にア行...
-
エクセルで行の高さ及び列幅の...
-
平均変化率の信頼区間
-
急ぎ!色のついたセルを非表示...
-
オートフィルタ後のデータから...
-
【Excel VBA】指定した行の最大...
-
エクセルの時刻のカウントが出...
-
基準日以前のデータを範囲を指...
-
EXCELで日付を比べ3か月以内の...
-
マクロで行の高さを設定したい
-
エクセル関数について
-
文字列を比較し、相違するフォ...
-
エクセル関数について
-
excel / ピポッド 日数を出したい
-
エクセル VBA 行間隔を飛ばした...
-
時間の重複チェック
-
プルダウンに【なし、平均、デ...
-
EXCEL 最終行のデータを他のセ...
-
列と行の名前(重複あり)が交...
おすすめ情報