親子におすすめの新型プラネタリウムとは?

エクセルで複数列で重複したセルを抽出する方法がわかりません。
具体的には、ABC各列にランダムな6桁の数字がそれぞれ500行づつあり、AとB列で重複(同じ)数字があれば、D列に列挙(重複した個数ではなく、たとえば310257などと重複していた数字)し、またABCの3列ともに重複している数字をE列に列挙するなど、複数列で重複したセルを抽出するにはどういう方法があるんでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

[フィルタオプションの設定]で可能です。

“頭を痛める”関数は一切不要!
簡単のために、列A~Cのデータが「500」行ずつでなく下のように「10」行ずつある場合を考えます。ただし、先頭行は同じ文字列(例えば data)を入力しておきます。

   A    B    C    D    E
1  data  data  data  data  data
2  123456 123457 123462 123461 123462
3  123466 123459 123465 123462 123466
4  123456 123461 123465 123466
5  123461 123462 123465 123456
6  123460 123461 123466
7  123456 123466 123463
8  123462 123461 123465
9  123456 123466 123457
10 123461 123463 123466
11 123461 123456 123458

1.[データ]→[フィルタ]→[フィルタオプションの設定]を実行
2.“指定した範囲”に目玉入れ
3.[リスト範囲]ボックス内にマウスカーソルを置き、範囲 B1:B11 を
  撫で撫で
4.[検索条件範囲]ボックス内にマウスカーソルを置き、範囲 A1:A11
  を撫で撫で
5.[抽出範囲]ボックス内にマウスカーソルを置き、セル D1 をチョー
  ン
6.“重複するレコードは無視する”にチェック入れ
7.[OK]をクリック
8.ステップ1~7の繰り返し。ただし、次のように読み替え
  範囲 B1:B11 → 範囲 C1:C11
  範囲 A1:A11 → 範囲 D1:D5
  セル D1   → セル E1
    • good
    • 3
この回答へのお礼

早速のわかりやすくも丁寧な回答、ありがとうございました。エクセル初心者なので、簡単な方法は大歓迎です。それに『撫で撫で』が、高ポイントにつながりました。固苦しい文面には、息抜きも必要かと・・・。

お礼日時:2008/07/27 20:31

COUNTIFを使う。


例データ
第2行から第9行まで(データはA,B、C列。データ順序は関係ないはずだが、下記例ではわかりやすいように昇順にした)
A列  B列    C列  D列   E列    E列   F列
122-2-2
2451419
357-6-11
46929-#N/A
6810311-
7911---
911144-2
1112155-3
-は左詰にならぬよう空白セルに入れたもので、空白セルにしてください
ーーー
式 
D2 =IF(COUNTIF($B$2:$B$11,A2)=0,"",MAX($D$1:D1)+1)
下方向に式を複写。
E2 =INDEX($A$1:$A$11,MATCH(ROW()-1,$D$1:$D$11,0))
下方向に式を複写。
ここが質問前半の結果
ーー
f2 =IF(AND(COUNTIF($B$2:$B$11,A2)>0,COUNTIF($C$2:$C$11,A2)>0),MAX($F$1:F1)+1,"")
下方向に式を複写。
G2 =INDEX($A$1:$A$11,MATCH(ROW()-1,$F$1:$F$11,0))
下方向に式を複写。
ここが質問後半の結果
ーー
以上は自称imogasi方式。
#N/Aを出さないようにする式は、質問者が考えるか、Googleでimogasi方式で照会すると、私の回答の中に出てきます。
(D、E列の最大値より、行数が大になれば空白を返す式にする)
    • good
    • 0
この回答へのお礼

力の入った回答をありがとうございます。お手数をお掛けいたしました。ところが私はエクセル初心者でして、関数はこれからというレベルです。いただいた回答を教材に、検証に励みたく存じます。

お礼日時:2008/07/27 20:37

D列には


=IF(ISERROR(MATCH(A1,B:B,FALSE)),"",A1)
或いは
=IF(COUNTIF(B:B,A1)=0,"",A1)

E列には
=IF(ISERROR(MATCH(A1,B:B,FALSE)&MATCH(A1,C:C,FALSE)),"",A1)
或いは
=IF(COUNTIF(B:B,A1)=0,"",IF(COUNTIF(C:C,A1)=0,"",A1))
で下フィルしてみてはダメですか?
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。私はエクセル初心者でして、関数はこれからというレベルです。いただいた回答を教材に、検証と理解に励みたく存じます。

お礼日時:2008/07/27 20:39

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QエクセルでA列B列C列の重複するレコードのみを表示

エクセルの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

Aベストアンサー

式が複雑になるということはそれだけ分かりにくく、計算が重くなるということです。出来るだけ作業列を使ってわかりやすく処理することが肝要と考えます。
例えば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列が目障りでしたら列を非表示にすればよいでしょう。

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Q2つのシート間での重複データのチェック

Excelについて教えてください。
以下の2つのシートがあります。

Sheet1
すずき 03-0000-0000
やまだ 03-1111-1111
たなか 03-2222-2222

Sheet2
03-1111-1111
03-4444-4444
03-0000-0000
03-2222-2222

Sheet1には名称と電話番号、Sheet2には別所から抽出した電話番号のみのデータがあります。
Sheet1のデータの中からSheet2に電話番号があるものだけを知りたいのですが、たとえばSheet1の 各行のC列 に Sheet2に一致する番号があった場合は●等付けるにはどうすればよいでしょうか。

よろしくお願いします

Aベストアンサー

シート1のC列に式を入れます。
=IF(ISNA(VLOOKUP(B1,Sheet2!A:A,1,FALSE))=TRUE,"-","●")

【式の説明】
シート1のセルB1の値が、シート2のA列に、存在する場合は●を、存在しない場合は-をセット。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QExcelですが、同一データが複数あるとき、検索して、その全部を抽出する方法

Excelですが、検索キーに、同一データ(レコード)が複数あるとき、検索して、その全部を抽出表示する方法を教えてください。

Vlookupは、同一データが複数あるとき、最初の行(レコード)を1つだけ抽出してきます。2つ目、3つ目の行は抽出できませんが、その全部を抽出する方法がありますでしょうか。

例えば、以下の例で、「A株式会社」をキーに検索した場合、<検索結果>シートのように、該当のレコード3つ(行2~4)を抽出して表示するようにしたいのですが、方法はありますでしょうか。よろしくお願いします。

<データシート>
 列A  列B    列C 列C
行1 No 会社名   所属 担当者
行2 1 A株式会社  ○事業部  坂下順人
行3 2 A株式会社  △事業部  滿山友人
行4 3 A株式会社  △事業部  目標達子
行5 4 B株式会社  設計部山下清人
行6 5 B株式会社  営業部横浜美人
行7 6 C株式会社  営業部川崎次郎
行8・・・・・・・・・・・・

<検索結果:別のシートにおいて>
行1 会社名 所属  担当者
行2 A株式会社 ○事業部 坂下順人
行3 A株式会社 △事業部 滿山友人
行4 A株式会社 △事業部 目標達子

Excelですが、検索キーに、同一データ(レコード)が複数あるとき、検索して、その全部を抽出表示する方法を教えてください。

Vlookupは、同一データが複数あるとき、最初の行(レコード)を1つだけ抽出してきます。2つ目、3つ目の行は抽出できませんが、その全部を抽出する方法がありますでしょうか。

例えば、以下の例で、「A株式会社」をキーに検索した場合、<検索結果>シートのように、該当のレコード3つ(行2~4)を抽出して表示するようにしたいのですが、方法はありますでしょうか。よろしくお...続きを読む

Aベストアンサー

#03です
>最後のROW(T1)で、T1を参照しておりますが

ROW(T1)は「1番目」を意味しています。T1セルに何もなくても関係ありません。コピーしたの行はROW(T2)になりますが、これは2番目のという意味です

#REF!エラーになりますか?
私が示した条件と何か変えていませんか?
別シートのA1に「抽出する会社名」を入力してあれば、回答したような結果になるはずですが‥ (テストしてありますので)

ただし2000行もあるならVBAの方が良いかもしれません
きっと「シートが重くなる」と思います

QEXCEL-複数列から特定内容の行のみ抽出

EXCEL2010です。

添付画像のように、「好物1~3」に入力されている内容で特定の文字(メロン)を含む行のみを抽出するにはどのようにしたらよいでしょうか。

Aベストアンサー

貼付画像はExcel 2013で検証してた結果です。
Excel 2010でも同様な結果を得られると思います。

チョット面倒臭い数式になりますが次のようにされると良いでしょう。
A13=IFERROR(IF(INDEX($A$1:$E$6,SUMPRODUCT(SMALL(($C$2:$E$6="メロン")*ROW(A$2:A$6),COUNTIF($C$2:$E$6,"<>メロン")+ROW(A1))),COLUMN())<>"",INDEX($A$1:$E$6,SUMPRODUCT(SMALL(($C$2:$E$6="メロン")*ROW(A$2:A$6),COUNTIF($C$2:$E$6,"<>メロン")+ROW(A1))),COLUMN()),""),"")
A13の数式を右と下へオートフィルでコピーしました。

上の表のデータが空欄のとき下の表に0を表示しても良ければIF関数を除けますので簡略化できます。
A13=IFERROR(INDEX($A$1:$E$6,SUMPRODUCT(SMALL(($C$2:$E$6="メロン")*ROW(A$2:A$6),COUNTIF($C$2:$E$6,"<>メロン")+ROW(A1))),COLUMN()),"")

貼付画像はExcel 2013で検証してた結果です。
Excel 2010でも同様な結果を得られると思います。

チョット面倒臭い数式になりますが次のようにされると良いでしょう。
A13=IFERROR(IF(INDEX($A$1:$E$6,SUMPRODUCT(SMALL(($C$2:$E$6="メロン")*ROW(A$2:A$6),COUNTIF($C$2:$E$6,"<>メロン")+ROW(A1))),COLUMN())<>"",INDEX($A$1:$E$6,SUMPRODUCT(SMALL(($C$2:$E$6="メロン")*ROW(A$2:A$6),COUNTIF($C$2:$E$6,"<>メロン")+ROW(A1))),COLUMN()),""),"")
A13の数式を右と下へオートフィルでコピーしました。

上の表の...続きを読む

Q複数のエクセルのファイルにおいて、共通する項目のみを抽出する方法を教え

複数のエクセルのファイルにおいて、共通する項目のみを抽出する方法を教えてください。

エクセル初心者です。
たとえば下記のようなデータ1とデータ2のファイルがあった場合、
データ1と共通する項目のみを、データ2から抽出するにはどうすればよいのでしょうか。


●データ1(今月の購入分)

品名コード 品名   価格  購入店名

1     りんご  100円  C店  
5     みかん  300円  B店
1     りんご  120円  D店
4     すいか  900円  E店


●データ2(今年の購入分)

品名コード 品名    購入店名

1     りんご   C店
3     かぼちゃ  B店 
5     みかん   B店
6     にんじん  A店
1     りんご   D店
4     すいか   E店


上記の表のように、すべての項目がデータ1と2で共通しているわけではありません。
それぞれ別の人が入力したデータのため、入力形式や順序などが揃っていないのです。
確実に双方に入力されているデータは品名と購入店名のみなので、
その二つの情報を元に、共通する項目を抜き出すしか方法がなさそうなのです。

このデータ1とデータ2の表を利用して、
データ2(今年度の購入分)からデータ1(今月の購入分)のみを抽出することは可能でしょうか?

最終的にはデータ2を下記のような形にしたいのです。


品名コード 品名   購入店名

1     りんご   C店
5     みかん   B店
1     りんご   D店
4     すいか   E店


実際はひとつひとつ抽出するには途方もない量のデータなので、
知恵を貸していただけるととても助かります。

複数のエクセルのファイルにおいて、共通する項目のみを抽出する方法を教えてください。

エクセル初心者です。
たとえば下記のようなデータ1とデータ2のファイルがあった場合、
データ1と共通する項目のみを、データ2から抽出するにはどうすればよいのでしょうか。


●データ1(今月の購入分)

品名コード 品名   価格  購入店名

1     りんご  100円  C店  
5     みかん  300円  B店
1     りんご  120円  D店
4     すいか  900円  E店


●データ2(...続きを読む

Aベストアンサー

NO.1です!
補足を読ませてもらいました。

hakkairoさんが仰っている、三つの問題点の最初の二つについてはまったく問題ないデータ量だと思います。
行数が万単位でもちゃんと表示されるはずです。

一つ気になるのが三点目です。
「品名コードと店名がまったく同じデータが複数存在する」ということなので前回のSheet2の作業列D2セルの式では
最初のデータのみしか抽出しませんので、結果に同じものが複数表示されても良いのであれば
D2セルの数式を
=IF(COUNTBLANK(A2:C2),"",IF(COUNTIF(Sheet1!E:E,A2&B2&C2),ROW(),""))

に訂正してみてください。

尚、最後にある
>ちなみに、作業列2には数字が「0~4」までしか表示されていませんでした。

に関しては「0」という数値が出ること自体がおかしいですねぇ~!

数式の ROW() となっていますのでその行番号が表示されるはずです。
この件に関してはちょっと判りかねます。

この程度で解決できないかも知れませんが・・・
ごめんなさいね。m(__)m

NO.1です!
補足を読ませてもらいました。

hakkairoさんが仰っている、三つの問題点の最初の二つについてはまったく問題ないデータ量だと思います。
行数が万単位でもちゃんと表示されるはずです。

一つ気になるのが三点目です。
「品名コードと店名がまったく同じデータが複数存在する」ということなので前回のSheet2の作業列D2セルの式では
最初のデータのみしか抽出しませんので、結果に同じものが複数表示されても良いのであれば
D2セルの数式を
=IF(COUNTBLANK(A2:C2),"",IF(COUNTIF(Sheet1!E:E,A2&B2&C2),...続きを読む

Q【エクセル】1列内に複数ある同項目を、各項目一つずつに絞る方法

お世話になります。

アクセスで各商品コードごとに、「各施設の価格一覧」
集計をとるための下準備(各コード、重複なく一つずつに
絞られたテーブルを作りたいです)として、
エクセルシート内で無秩序に複数ある各商品コードから、
それぞれ一つずつだけ列挙されたシートを作りたいです。

1万行を超えているので、「集計」でまとめても
意味がないだろうし、この場合の対応策について
皆目思い浮かばないのですが、
よろしければアドバイスいただけないでしょうか。

よろしくお願い致します。

Aベストアンサー

こんばんは。

Accessを使うのも結構なのですが、Excelでは、フィルタオプションを使います。

メニューから
[データ]-[フィルタ]-[フィルタオプションの設定]

 指定した範囲(O)
 リスト範囲(L) に範囲を入力
 抽出範囲は、適当に1つのセルを選択し、

 □重複するレコードは無視する(R)にチェック

 OK

で、ユニーク・データが取れます。

これは、ユニーク・データを取るためのExcelのデータベース機能です。

Qエクセル 同じ値を探して隣の数値をコピーする

エクセルで以下の作業を簡単にする方法を教えて下さい。

Sheet1の1行目には見出しがあり、A列とB列の2行目から下にデータが入っています。(約200行)
A列     B列
田中    13
山本     8
谷口    11
鈴木    6
佐々木    9
奥村     15




Sheet2のA列1行目から下には別のデータが入っています。(約600行)
A列
太田川
山村
田中
多賀先
鈴木
奥村
幸田




Sheet2のA列のデータと完全一致するデータ(名前)をSheet1のA列から探して、同じ名前があれば、その隣のB列にある数値をSheet2のB列に貼り付ける。
見つからない場合はSheet2のB列は空欄のままです。
Sheet2
A列      B列
太田川     
山村
田中    13
多賀先
鈴木     6
奥村    15
幸田


Aベストアンサー

シート2のB2セルには次の式を入力して下方にドラッグコピーします。

=IF(COUNTIF(Sheet1!A:A,A2)=0,"",VLOOKUP(A2,Sheet1!A:B,2,FALSE))

Q【Excel】複数の列を参照して、特定の文字列を含む行全体を別シートに抽出する関数

左画面(Book2)のようなシートがあります。

Book2の中で列D・列F・列Iの3列を参照し、別シート(Book4)のA1セルに入力した文字列と一致する文字を含む行全体を、Book4のA3セル以下に抽出するための関数を探しています。

画像の例は、「北海道」という文字列を3列のいずれかに含む行だけを手動で貼り付けたものなのですが、この処理を関数を用いて自動で行いたいのです。

参照したい文字列(北海道)は、3つの列にランダムに含まれている状態です。

元データ(Book2)を更新すれば、別シート(Book4)がリアルタイムに自動で生成されるようにしたいので、関数を使った方法で行いたいと思っています。

ご教示お願い申し上げます。

Aベストアンサー

こんばんは!
一例です。
元データは「Book2」のSheet1にあり、表示するのは「Book4」のSheet1とします。
Book4・Sheet1のA1セルに検索したい文字列を入力し、そのデータを表示させます。
(今回は画像通り”北海道”と入力しておいてください)

Book2のSheet1のJ列を作業用の列として使用します。
J3セルに
=IF(COUNTIF(D3:H3,[Book4.xlsx]Sheet1!$A$1),ROW(),"")
という数式を入れフィルハンドルでこれ以上データはない!という位まで下へコピーしておきます。

そしてBook4、Sheet1のA4セルに
=IFERROR(INDEX([Book2.xlsx]Sheet1!A:A,SMALL([Book2.xlsx]Sheet1!$J:$J,ROW(A1))),"")
という数式を入れ、列・行方向にフィルハンドルでコピーしてみてください。

※ 作業列が目障りであれば遠く離れた列に設けるか
非表示にしておきます。m(_ _)m


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング