![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
エクセルのA列とB列とC列で重複するレコードのみを抽出して別の列に表示させたい。
エクセルのA列とB列とC列にそれぞれ1000行くらいのデータがあります。
それぞれの列内には重複レコードがあります。
この条件の中で
「A列とB列とC列に重複するデータすべて」
を抽出したいのですが、どんな方法がありますか。
抽出されたデータで重複レコードの場合は1件のみで表示したいです。
よろしくお願いします。
例
A B C 抽出
1-001-002--002--002
2-002-002--005--007
3-003-007--007--008
4-007-008--008--011
5-008-008--010
6-008-010--011
7-011-011--012
8-013-014--013
No.7ベストアンサー
- 回答日時:
式が複雑になるということはそれだけ分かりにくく、計算が重くなるということです。
出来るだけ作業列を使ってわかりやすく処理することが肝要と考えます。例えばA,B,C列の2行目からお示しのようなデータがあるとします。
D2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(AND(COUNTIF(A$2:A2,A2)=1,COUNTIF(B:B,A2)>0,COUNTIF(C:C,A2)>0),MAX(D$1:D1)+1,"")
D列にはA,B,C列に共通して含まれるデータがあれば上から順に番号が付けられます。その際にもしもA列でダブったデータがある場合には最初に出てきたデータに番号が振られます。
お求めのデータはE列に並べるとしてE2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(ROW(A1)>MAX(D:D),"",INDEX(A:A,MATCH(ROW(A1),D:D,0)))
D列が目障りでしたら列を非表示にすればよいでしょう。
No.6
- 回答日時:
回答が多数出てから言うのもなんだが、質問の意味が判りにくい?
言い直してみれば、
「各行のA,B、C列で、A=B列、B=C列、A=C列または3列等しい行について、その等しい値を抜き出す。
ただし前に抜き出した値は2度目から表示しない。」
こんなことかな?
ーー
関数では相当複雑になるので
VBAで標準モジュールに
Sub test01()
d = Range("A65536").End(xlUp).Row '最終行
' MsgBox d
Dim l(100)
Dim p '配列のポインタ
p = 1
For i = 1 To d
A = Cells(i, "A"): B = Cells(i, "B"): C = Cells(i, "C")
If A = B Then
x = A
ElseIf B = C Then
x = B
ElseIf C = A Then
x = C
End If
'MsgBox x
'重複あるかチェック
For j = 1 To p
If x = l(j) Then GoTo p1 '同じもの既に有り
Next j
l(p) = x
p = p + 1
p1:
Next i
'--セルに結果セット F列に
For j = 1 To p - 1
Cells(j, "F") = l(j)
Next j
End Sub
重複ペアーは上記では100個までにしているがDim l(100)を見込みで適宜変更。
データ例 F列が結果 質問データの場合結果E列
A列 B列 C列 E列 F列
12222
22577
37788
7881111
881013
810114
111112
131313
414
No.5
- 回答日時:
◆関数でならば、
【EXCEL2007以降】
D1=IFERROR(INDEX($A$1:$A$9,SMALL(INDEX((FREQUENCY($A$1:$A$8,$A$1:$A$8)*COUNTIF($B$1:$B$8,$A$1:$A$9)*COUNTIF($C$1:$C$8,$A$1:$A$9)=0)*10^5+ROW($A$1:$A$9),),ROW(A1))),"")
★下にコピー
【EXCEL2003以前】
D1=IF(ROW(A1)>SUMPRODUCT((FREQUENCY($A$1:$A$8,$A$1:$A$8)*COUNTIF($B$1:$B$8,$A$1:$A$9)*COUNTIF($C$1:$C$8,$A$1:$A$9)>0)*1),"",SMALL(INDEX((FREQUENCY($A$1:$A$8,$A$1:$A$8)*COUNTIF($B$1:$B$8,$A$1:$A$9)*COUNTIF($C$1:$C$8,$A$1:$A$9)=0)*10^5+$A$1:$A$9,),ROW(A1)))
★下にコピー
![「エクセルでA列B列C列の重複するレコード」の回答画像5](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/1/384385_5497e8930d72f/M.jpg)
No.4
- 回答日時:
質問文から判断して私の提示した数式はA列とC列が同じ場合もヒットするようにしましたが、例示のデータでは8行目の「013」が抽出されていませんね。
もしこの条件が必要ないなら、B列のデータだけ比較することになるので、以下のようにはるかに簡単な数式になります。
=INDEX(B:B,SMALL(INDEX((($A$2:$A$1000<>$B$2:$B$1000)*($B$2:$B$1000<>$C$2:$C$1000)*1000+ROW($A$2:$A$1000)),),ROW(A1)))&""
No.3
- 回答日時:
表示データ数が多いと実用的ではありませんが、数式だけで表示する例です。
例えば2行目からデータがあるなら、以下の式を入力して下方向にオートフィルしてください。
=IF(INDEX(A:A,SMALL(INDEX((($A$2:$A$1000<>$B$2:$B$1000)*($B$2:$B$1000<>$C$2:$C$1000)*($A$2:$A$1000<>$C$2:$C$1000)*1000+ROW($A$2:$A$1000)),),ROW(A1)))=INDEX(B:B,SMALL(INDEX((($A$2:$A$1000<>$B$2:$B$1000)*($B$2:$B$1000<>$C$2:$C$1000)*($A$2:$A$1000<>$C$2:$C$1000)*1000+ROW($A$2:$A$1000)),),ROW(A1))),INDEX(A:A,SMALL(INDEX((($A$2:$A$1000<>$B$2:$B$1000)*($B$2:$B$1000<>$C$2:$C$1000)*($A$2:$A$1000<>$C$2:$C$1000)*1000+ROW($A$2:$A$1000)),),ROW(A1))),INDEX(C:C,SMALL(INDEX((($A$2:$A$1000<>$B$2:$B$1000)*($B$2:$B$1000<>$C$2:$C$1000)*($A$2:$A$1000<>$C$2:$C$1000)*1000+ROW($A$2:$A$1000)),),ROW(A1))))&""
No.1
- 回答日時:
こんばんは!
一例です。
↓の画像のように作業用の列を設けています。
(数値だけでなく、文字列の場合も対応できるようにしてみました)
作業列D2セルに
=IF(AND(COUNTIF($A$2:A2,A2)=1,COUNTIF(B:B,A2),COUNTIF(C:C,A2)),ROW(),"")
という数式を入れ、オートフィルでずぃ~~~!っと下へコピー!
結果のF2セルに
=IF(COUNT(D:D)<ROW(A1),"",INDEX(A:A,SMALL(D:D,ROW(A1))))
という数式を入れ、オートフィルで下へコピーすると画像のような感じになります。
参考になれ良いのですが・・・m(__)m
![「エクセルでA列B列C列の重複するレコード」の回答画像1](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/8/667667_5497e892e5b8b/M.jpg)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- Excel(エクセル) Excelの関数でこんな処理ができますか 1 2023/02/08 13:46
- Excel(エクセル) 表に書いてある単語を1つの行に重複させないで書き出したい。 複数の列行にそれぞれ職種が入力されている 6 2022/05/25 04:49
- Oracle 列1と列2の関係性で列3の条件に一致するレコードを抽出したい 1 2022/04/13 07:46
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Excel(エクセル) 重複データの抽出について 2 2023/07/21 14:52
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- Visual Basic(VBA) ListView重複データ削除 2 2022/08/05 18:12
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
エクセルで、2列以上合致する重複をチェックする
Excel(エクセル)
-
EXCELで2列を参照し、重複するものを横に並べたい
Excel(エクセル)
-
Excel3つ以上の列間での重複抽出方法
Excel(エクセル)
-
-
4
エクセルで複数列に共通した項目の抽出方法
Excel(エクセル)
-
5
エクセルマクロ:複数列 重複があった場合、メッセージと印入れる方法
Excel(エクセル)
-
6
エクセル 同名の場合はB列にC列の数値を入れたい!
Excel(エクセル)
-
7
エクセル:2列共重複しているデータを見つけるには?
Excel(エクセル)
-
8
Excelでの列比較(A列とB列の組合せ、C列とD列の組合せ)
Excel(エクセル)
-
9
離れた2列を比べて重複しないデータを隣の列に表示させる方法 Excel
Visual Basic(VBA)
-
10
【Excel関数】UNIQUE関数で0"を返さない方法?"
Excel(エクセル)
-
11
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
12
エクセルで指定したセルのどれかに○がはいっていたら○を表示したいです。
その他(コンピューター・テクノロジー)
-
13
エクセル if文で偽判定のとき、何も起こらないようにしたいのですが・・・
Access(アクセス)
-
14
【エクセル】2列間で、同じ組み合わせのものを抽出したい。
Excel(エクセル)
-
15
Excel-参照セルが空白の場合、別のセルを参照するには。
Excel(エクセル)
-
16
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
-
17
Excelで隣のセルと同じ内容に列を並べ替える方法
Excel(エクセル)
-
18
エクセルで条件に一致したセルの隣のセルを取得したい
その他(Microsoft Office)
-
19
エクセルVBAが途中で止まります
Visual Basic(VBA)
-
20
エクセル 重複したデータを別シートに抽出させる
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのツールバーから数値...
-
祝日と土曜、日曜の合計をカウ...
-
【マクロ】2回実行したら、エ...
-
特定の文字列を含む、住所を抽...
-
EXCELの散布図で日付が1900年に...
-
マイクロソフトのPADを使ってい...
-
Excel分数の表示について
-
Excelで表を作ったところに文字...
-
マクロエクセルのブロック解除
-
文字2桁、3桁交じりの文字列...
-
絶対参照
-
Excelについての質問です。 B2...
-
在庫管理表に使うエクセルの関...
-
【マクロ】VLOOKUPにて参照元に...
-
【EXCEL】画像の黄色部分の抽出...
-
DATE関数で現在の年齢を出した...
-
ユーザー定義関数をアドイン登...
-
エクセルでの作業計算方法について
-
行数が不規則な一週間ごとの合...
-
Excelピボットテーブルの1行目
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報