• ベストアンサー

【Excel】重複するデータの検索

Excel2003を使用しています。 A列にデータが入力されていたら、同行のC列の値(文字列)を取り出すようにしています。(VLOOKUP関数を使用) A列のデータは4桁の数値なのですが、そのデータの数値が重複している場合があって、そのときは行番号の小さい方のC列の値が取り出されますよね? データは同じでも別の行に入力されていれば、C列に入力されている値(文字列)も違うので、それが取り出されるようにしたいのですが、そういうことは可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

データ範囲内の重複キーを全て抽出する方法ですが如何でしょうか。 例えば、データがシート3、シート1のA1行目にキー番号を入力するとして、 A2セルに次の数式を設定して必要分下方向にコピーして下さい。 配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 =IF(ROW($A1)-1<COUNTIF(Sheet3!$A$1:$A$200,A$1),INDEX(Sheet3!$C$1:$C$200,SMALL(IF(Sheet3!$A$1:$A$200=A$1,ROW(Sheet3!$A$1:$A$200),999),ROW($A1))),"")

rx-z5815
質問者

お礼

回答ありがとうございます。 早速、教えていただいた配列数式で試してみましたが、希望する検索結果が得られませんでした。 数式の中に“999”という書かれていますが、これはどういった意味なのでしょうか?A列のデータが4桁であることと何か関係があるのでしょうか? A列のデータですが、先頭に“0”がついて4桁になっています。 先頭に“0”がついていなくて4桁のデータもありますが。。。

その他の回答 (5)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.6

NO1です。 何度も恐縮です。 A列を文字列をセルの書式設定で一括変更しても属性が変化しませんので次の方法で変更して下さい。 (1)A列選択 (2)データ→区切り位置→次へ→→次へ→列のデータ形式欄で文字列にチェック→完了

rx-z5815
質問者

お礼

mu2011 さん、こちらこそ何度も申し訳ありません。 教えていただいたとおりにやってみましたところ、希望通りのことができました。 お手数かけてスミマセンでした。ありがとうございました!

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

NO1です。 >数式の中に“999”という書かれていますが、これはどういった意味なのでしょうか?  ⇒キー不一致行番号をデータ範囲内の最大値として設定していますので、999行以上あるのであれば調整して下さい。 >A列のデータが4桁であることと何か関係があるのでしょうか? >A列のデータですが、先頭に“0”がついて4桁になっています。 >先頭に“0”がついていなくて4桁のデータもありますが。。。  ⇒A列データが数値と文字列で混在していると思われますので文字列に統一でお試し下さい。

rx-z5815
質問者

お礼

度々ありがとうございます。 >⇒A列データが数値と文字列で混在していると思われますので文字列に統一でお試し下さい。 A列のデータは数値で統一していますが、おっしゃるとおり文字列に統一して試してみましたところ、前回と同じ検索結果が出ました。。。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

原則は#01さんの回答と一緒なのですが少し式を変えます。 A1:C2000に検索対象の表があるとして、G1に検索したいA列のデータを入力します。H1に以下の式を貼り付けて、必要分下方向にコピーします。 =IF(COUNTIF($A$1:$A$2000,$G$1)>=ROW()-ROW($G$1)+1,INDEX($C$1:$C$2000,SUMPRODUCT(LARGE(($A$1:$A$2000=$G$1)*ROW($A$1:$A$2000),COUNTIF($A$1:$A$2000,$G$1)-ROW()+ROW($G$1)))),"") もし検索する文字列をG1以外に配置したいならCtrl+Hで置換ウィザードを開いて、$G$1を任意の「$列$行」に置き換えてください。

rx-z5815
質問者

お礼

回答ありがとうございます。 教えていただいた数式で試してみたところ、希望通りのことができました!ありがとうございました。

  • o_bros
  • ベストアンサー率19% (10/52)
回答No.3

ピックアップするデータの種類が少ない場合はこれでいけると思います。 仮に以下のようにデータを仮定しました。 D列にはAND関数で、A列のキーとなるデータとC列の答えとなるデータを結合しています。 E列~G列は答えとなる種類をすべてヘッダ部分に表示してあり、それぞれの行に=IF($D2=$A2&E$1,$C2,"")という式を入れておきます。 そうすればどの行の答えが何なのかだけは分かります。 A列 B列 C列 D列 E列 F列 G列                ×  ○  △ 100   ×  100×× 100   ○  100○   ○ 101   △  101△      △ 101   ○  101○   ○ 102   ×  102×   × 100   △  100△      △ 102   △  102△      △ 101   ×  101×× 100   ○  100○   ○ 続いて、シートを新たに一枚挿入します。 A列にキーとなる値を入力し、B~D列のヘッダに先のシートと同様にデータの答えとなる値を入力します。 あとは、キーとなるデータの必要な箇所に=VLOOKUP($A2&B$1,Sheet1!$D$2:$G$10,3,)を入力して下さい(もちろん最後の,3,は場所によって,4,や,5,になりますよ)。 エラー値が気になるのならVLOOKUPの前にISNA関数を入れてやるとよいと思います。 A列 B列 C列 D列    ○  ×  △ 100 ○  ×  △ 101 ○  ×  △ 102 #N/A ×  △ ただし、冒頭でお話しましたとおり、これは答えの「種類が少ない」ときにしか、おすすめはできません。。悪しからずご了承下さい。。

rx-z5815
質問者

お礼

詳しい回答ありがとうございます。 >答えの「種類が少ない」ときにしか、おすすめはできません。。 大量というほどではないのですが、少なくはないので、今回は別の方法で試してみようと思います。 ありがとうございました。

  • o_bros
  • ベストアンサー率19% (10/52)
回答No.2

例えばA列に何件データがあろうとも、同一データに対するC列の値の合計が分かればよいのですか? それともそれぞれに何か別の(例えば日付等)で、A列の同じデータであってもC列でそれぞれデータを拾うことが必要なのでしょうか?

rx-z5815
質問者

補足

説明不足のようで申し訳ありません。 >それぞれに何か別の(例えば日付等)で、A列の同じデータであってもC列でそれぞれデータを拾う 希望していることはこちらの方です。 例えばA1セルとA2セルに『0100』、C1セルに『○』、C2セルに『×』と入力されていたとしたら、同じデータだとC1セルの『○』が取り出されるのを『○』と『×』の両方を取り出したいのですが、可能でしょうか? よろしくお願いします。

関連するQ&A

  • 【Excel】一致するデータの検索

    Excel2003を使用しています。 Sheet1のB列の値がSheet2のA列に入力されている値と一致したら、Sheet1のC列とD列の値をSheet2のC列とD列に表示させたく、VLOOKUP関数を使用したところ、Sheet1のB列とSheet2のA列のデータの並び方(順序)が同じではないためか、VLOOKUP関数ではできませんでした。 こういう場合、マクロで処理することは可能でしょうか?可能であれば、どのようにコードを記述すればいいでしょうか? Sheet1のデータは4行目から、Sheet2のデータは6行目から入力されています。 よろしくお願いします。

  • Excel2003で重複したデータを削除したい

    Excel2003で重複したデータを削除する方法を教えて下さい。 A・B・C・Dの列の全てが重複するデータを削除したいのですが、可能ですか?AとB列は重複するけど、CやDのデータは重複していなければ、残しておきたいです。 以下イメージです。 行/列  A   B    C    D 1    なす  商店  100円  3/4  2    なす  商店  200円  3/2 3    なす  商店  200円  3/2 ------------------------------------- 以下、重複データ削除後のイメージ。 1    なす  商店  100円  3/4  2    なす  商店  200円  3/2

  • (EXCEL)重複したデーターの抽出について

    EXCEL2003 シート「sheet1」に下記のようなデーターがあります。 <sheet1>   A   B   C  D 1 りんご 青森 AAA BBB 2 みかん 愛媛 CCC DDD 3 みかん 青森 AAA BBB 4 りんご 青森 AAA BBB 5 みかん 愛媛 CCC DDD A列とB列が同じ値のものをシート「sheet2」に重複しているデーター は1行だけになり、E列にカウントした数が入力されるようにしたいです。 (C列やD列は同じ値でなくてもA列とB列が同じ値の時にカウントして抽出したいです) <sheet2>   A   B   C  D   E  りんご 青森 AAA BBB  2  みかん 愛媛 CCC DDD  2   ご教示のほどお願いします。

  • 重複データを塗りつぶしたいが、完全に一致しない

    A列に 7001 7002 7003 7004 7005 という値が入力されています。 C列に 7001-1 7001-2 7001-3 7002-1 7002-2 7003-3 という値が入力されています。 C列にある頭4桁の値(7001等)に該当する、A列のセルを赤く自動で塗りつぶすという作業を行います。 現在はまず、C列の‐1のつく値だけで絞込み 7001-1 7002‐1 という形にし、次に‐1をスペースと置換し、 7001 7002 という形にしてから、COUNTIFと条件付き書式を用いてA列のセルを赤く塗っています。 お聞きしたいことは3つあります。 まず 左から4桁だけの数値をとりだして、ハイフン以下を一気に消す方法。 次に ハイフン以下を残したままで条件付き書式を用いてA列のセルを塗れるのか否かとその方法。 最後に、C列にある値が、別のシートやブックにあっても重複の対象として参照できるのか否か、とその方法。 以上、何卒よろしくお願いいたします。

  • 65000以上のデータの重複検索

    ■A列・B列に6桁の数字が入力されています。 ※データ数が65000以上なのでA列では収まりきれません。 A列・B列の中で重複しているものを見つけたいのですが、 どのようにするのがベストでしょうか? 通常COUNTIFを使用するのですが、2列にまたがっている為うまく出来ません。 お教えいただけましたら助かります。 よろしくお願い致します。

  • 「エクセル」で重複したデータだけを呼び出したい。

    「Excel2000」を使用しています。 「重複しているデータだけ抽出する」 ということは出来るでしょうか? たとえば「A列」に名前が入っていて、 「B列」に住所、「C列」に電話番号が 入っているとします。 重複した名前だけを呼び出して、 なおかつ「B列」「C列」の データも表示させたいのですが…。

  • 【Excel VBA】指定されたシートに該当のデータをコピーする

    Excel2003を使用しています。 あるセルに入力されている値と同じ名前のシートに、そのセルと同行のデータをコピーするというマクロを作成したいのですが。。。 例えば、Sheet1のC4セルに「1234」(文字列です)と入力されていたら、「1234」シートに、Sheet1のC4セルと同行のデータを貼り付け、Sheet1のC5セルに「1235」と入力されていたら、「1235」シートに、Sheet1のC5セルと同行のデータを貼り付け…といった感じで、Sheet1のC列(C4セル以下)に入力されている値を元に、それぞれのシートへ順番にデータをコピーしたいのです。 うまく表現できなくて、わかりづらいと思いますが、都度補足させていただきますので、よろしくお願いします。

  • Excel関数

    Excel2010を使用しています。 A~E列 及び H~K列の1,000行目くらいまで、1ケタから5ケタの数字を入力しています。 重複した数字がないか確認したいのですが、適した関数はありますか? (重複していた場合、指定したセルに「重複」と出るような関数など) セルは空欄の場合もあります。 ご教示いただければ幸いです。よろしくお願いします。

  • EXCEL教えてください

    EXCEL初心者です EXCEL2007(12.0.6654 5503)SP2を使用しております もしわかりましたら教えてください A列には1から連続する数字がはいっています ただし任意で途中で1からまた始ります B列には任意の4ケタの数字がはいっています C列には100か101がはいっています B列とC列に数字を入力していくとき A列の1から連続した数字までの間で B列かつC列に入力した数字が重複してる場合 「すでに入力済みです!」とメッセージを表示させたいです たとえば以下の場合 一行目と7行目がB列:1000 C列:100でダブってますが A列をみると1から連続した数字までの間ではないのでこういうときにはメッセージは表示させず 一行目と3行目は「A列が1から連続した数字までの間で」かつ「B列かつC列に入力した数字が重複してる」 のでこういうときにエラーメッセージを表示させたいです    A  B  C 1  1 1000 100 2  2 4001 101  3  3 1000 100 4  1 2002 100 5  2 4000 100 6  3 6001 101 7  4 1000 100 説明がわかりずらかったらすみません 補足しますのでその旨記載お願いします

  • 重複するデータの抽出について(エクセル)

    エクセル2003にて重複するデータの取り出しをしたいのですが、 わからないので教えてください。 例えば   A列   B列   C列    D列    E列・・・ 1  色  1回目  2回目  3回目   4回目 2  赤   あ    a      A       0 3  白   い    b      B       1 4  黄   う    c      C       2 5  黄   え    d      D       3 6  黒   お    e      E       4 7  赤   か    f      F       5 : このデータの中から、別のシートのA1に 赤と入力したら、B1にD列のA・Fを抽出 黄と入力したら、B1にD列のC・Dを抽出をしたいです。 VLOOKUP関数を使用してみたのですが、 赤と入力すると、D列のA(1番上のデータ)のみしか抽出出来ず、Fが抽出されません。 重複するデータがあるのはA列のみで、D列には重複するデータはありません。 わかりにくい文章ですみませんが、よろしくお願いします。

専門家に質問してみよう