Excelの重複データ抽出方法と一意のデータ表示方法について

このQ&Aのポイント
  • ExcelのIF関数を使用して重複するデータを抽出し、一意のデータを表示する方法について教えてください。
  • ExcelのIF関数が初めて使用するため、他の方法でも対応できる場合は教えていただきたいです。
  • 列Aにあるデータのうち、重複しているデータを列Dにまとめ、重複しないデータを列Eに表示したいです。どのような関数を使用すればよいですか?
回答を見る
  • ベストアンサー

エクセルIF関数について

エクセルIF関数について エクセルのIF関数を利用して、重複するデータを抽出したいと思っています。 エクセルのIF関数を利用したことがないため、別の対応策があれば そちらも教えていただけませんでしょうか・・ 宜しくお願いいたします。 下記のようにA列に入っている1,2,3,4,5があり重複しているものをD列に一つにまとめ重複している1、5の合計分と重複していないものをEに表示させたいと思っています。     A  B     D   E 1  1  123    1  249 2  1  3      2  3 3  1  123    3  345 4  2  3      4  234 5  3  345    5  1665   6  4  234     7  5  555 8  5  555 9  5  555 D1、E1にはどのような関数で対応するのが適しているのでしょうか?

  • ssrcs
  • お礼率63% (7/11)

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 IF関数は非常に重要な基本となる関数ですから、是非ともマスターなさって下さい。  さて、以下の方法では、A列に入力されているデーターを重複無しにD列に並べた場合、最初に現れた行数の順番に並ぶ事になります。  まず、適当な列を作業列として使用する事を決めます。  此処では仮にG列を作業列とするものとします。  まず、G1セルに1と入力して下さい。  次に、G2セルに次の数式を入力して下さい。 =IF(AND($A2<>"",COUNTIF($A$1:$A1,$A2)=0),COUNT(G$1:G1)+1,"")  次に、G2セルをコピーして、G3から下にあるセルに貼り付けて下さい。  次に、C2セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNT($G:$G),"",INDEX($A:$A,MATCH(ROWS($1:1),$G:$G)))  次に、E2セルに次の数式を入力して下さい。 =IF($D1="","",SUMIF($A:$A,$D1,$B:$B))  そして、D1~G1の範囲をコピーして2行目以下に貼り付けて下さい。  以上で完了です。

ssrcs
質問者

お礼

お忙しい中ご回答ありがとうございました! 確かに重要な部分ですのでおぼえさせていただきます。

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 回答番号:ANo.2です。  申し訳御座いません、先程の回答で、 > 次に、C2セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNT($G:$G),"",INDEX($A:$A,MATCH(ROWS($1:1),$G:$G))) と書きましたが、これは書き間違いで、上記の数式を入力すべきセルは「C2セル」ではなく、「D2セル」でした。  混乱させる様な事を書いてしまい、申し訳御座いませんでした。  話しは変わりますが、もし、A列に入力されているデーターが数値のみで、D列の表示を数が小さい順番に並べさせる場合には、ANo.2で記述した数式の内、 G1セルに入力する数式を、 =$A1 G2セルに入力する数式を、 =IF(AND($A2<>"",COUNTIF($A$1:$A1,$A2)=0),$A2,"") D1セルに入力する数式を、 =IF(ROWS($1:1)>COUNT($G:$G),"",INDEX($A:$A,SMALL($G:$G,ROWS($1:1))) に変えて下さい。  尚、E1セルには、ANo.2で述べたものと同じ数式を入力して下さい。  それから、もし、D列の表示を数が小さい順番ではなく、数が大きい順番に並べさせる場合には、D1セルに入力する数式を、 =IF(ROWS($1:1)>COUNT($G:$G),"",INDEX($A:$A,LARGE($G:$G,ROWS($1:1))) に変えて下さい。

ssrcs
質問者

お礼

お忙しい中、ご回答ありがとうございました! 今後の参考にさせていただきたいと思いますm(__)m

  • char2nd
  • ベストアンサー率34% (2685/7757)
回答No.1

 E1に、「=SUMIF($A$1:$A$1,D1,$B$1:$B$9)」と入力し、これをそのままE2~E5にコピーしてください。 http://kokoro.kir.jp/excel/sumif.html

ssrcs
質問者

補足

すみません D列にはA列にそれぞれ1,2,3,4,5を表示できる関数を入れたいと おもっておりますが、そちらに対してはどうしたらよろしいでしょうか? だびたびすみません また、E列にいれました関数では1の合計数は出せませんでした・・ ほかの方法はありませんでしょうか? 宜しくお願いいたします。

関連するQ&A

  • エクセル関数について教えてください!!

    エクセル関数について教えてください!! エクセルファイルに以下のようなデータがあります。 A列 B列 C列 あ  A10 100  あ  A10 110 あ  B10 120 い  C10 100 い  D10 100 う  E10 100 あ  B10 120 い  C10 100 A列:販売店 B列:コード C列:売り上げ金額 (合計8000件程度) 販売店毎での売り上げ金額を求めたいのですが、B列のコードが重複しています。 販売店+重複コードは1つに纏めての金額を求める関数を教えていただけますでしょうか。 イメージ あ  A10 210 あ  B10 240 い  C10 200 い  D10 100 う  E10 100 よろしくお願いしますm(_ _)m

  • エクセル2007 IF関数について教えてください

    お世話になります。 どうしてもIF関数がうまくできず困りはてています。 下記のような項目を含むデータを2万件くらい抽出しています。 A列     B列  C列      D列 E列 状況    拒否理由       注文数   確認数 (1) 在庫不足   入力ミス  1     0 → キャンセル (2) 在庫不足       1      0 → 未処理 (3)                 5        0 → 未処理 (4)                 1       1 → 処理済 (5)   お客様キャンセル      10    0     →     キャンセル 未処理の件数を管理したいのですが、キャンセル扱いとなる条件を除く IF関数をうまく作成できません。 =IF(AND(D2>0,E5>0),"完了","未処理") といったように1個の条件についてはなんとかできるのですが、 B列が空欄or文字の入力有、C列が空欄、E列が0の数字の場合、D列の 数字を表示しなさい、といったようにまとめて、条件式をつくることができません。 何個かつなげると、TRUE、FALSEと表示され指定する列の(この場合D列)数字が表示 できません。 IF関数でなくてもよいのですが、未処理(キャンセル扱い除く)条件のみの数字を表示させる 方法をご教示お願いいたします。

  • エクセル IF関数 初心者です。。

    A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 2  9:30 Cさん 11:00 3  10:00 Dさん 12:00 4  10:30 Eさん 9:00  1  9:00 A列氏名 B列時間 C列 B列IF関数 9:00からは1、10時からは2、 11からは3・・・ D列はC列のVLOOKUP関数 1=9:00、2=9:30、3=10:00・・・ そこでお聞きしたいのですが・・ A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 3  10:00 Cさん 11:00 4  10:30 Dさん 12:00 5  11:00 Eさん 9:00  2  9:30 IF関数を用いて IF(B1>=0.375),1,if(B1>=0.416666666666667),2,IF(B1>=0.458333333333333),3・・・ Eさんが2になるような数式がわかりません。 よろしくお願いします。。

  • エクセルでの関数

    エクセルで下記を行いたいのですが、関数でどのようにすれば良いでしょうか。(関数で困難であればVBAでも良いです) A列で同じ名称の分に対して、それと同じ行のD列とE列の数値の合計を それぞれのセルに表したいのですがどのようにすれば良いでしょうか? 例えばA6に北海道のD列E列合計106.5、A7に岩手のD列E列合計16.5、 A8に山梨のD列E列合計29を表したいです。   A    B   C   D  E 1 北海道 文章A 数値1  2 24.5  2 北海道 文章B 数値2  4  50 3 北海道 文章C 数値3  6  20 4 岩手  文章D 数値4 11.5  5 5 山梨  文章E 数値5  25  4

  • If関数で合計をしたい

    A B C D E 1 1 11 12 13 2 1 10 20 30 3 0 21 22 23 4 0 31 32 33 10 1 22 if関数で B10が1ならC列の1の合計を出したい 11 0 52      B11が0ならC列の0の合計を出したい     ご指導願います

  • excelでのIF関数

    excelで表を作っています。 0~29なら「2」、30~59なら「3」、60~79なら「4」、80~100なら「5」という関数を作りたいのですがうまくいきません。 『=IF(A1="","",IF(A1>=85,"A",IF(A1>70,"B",IF(A1>=50,"C",IF(A1>=30,"D","E")))))』というほかの方の質問されているIF関数を参考に作ったのですが…だめでした。 わかる方がいれば教えてください。 vlook関数は使わずに、if関数で作りたいです。 よろしくお願い致します。

  • EXCELのIF関数でうまく抽出できません

    EXCELのIF関数で、A1にデジタルという文字列をいれ、=IF(A1<"アナログ","A","D")でDと表示されるようにし、A2にはデジタルという文字列をいれず、"アナログ"と入っているのに、関数をコピーするとDと表示されて困っています。

  • エクセル関数 IF

    エクセル関数 IF エクセル2000のデータ自動抽出に関してお願いします。 既存 Aファイル トヨタ 500 日産  300 新日鉄 800 ヤフー 100 スズキ 100 新規でつくりたい Bファイル スズキ 100 トヨタ 500 日産  300 というデータ表を作りたいと思っています。 Bファイルの企業名は手入力しますが1つ目のファイルと順番が違います。1つ目のファイルの企業名に一致する2列目の値を自動抽出する(100,500,300を自動抽出)式を教えてください。 宜しくお願いします。

  • エクセルのif関数のエラー

    エクセルでif関数を使ってデータ処理をしたのですが、上手くいき ません。何がおかしいのかが分からない状態で困っています。 状況  A B C D E 1 : + = ? 関数式 とセルに入力してあるとします。(A1=:,B1=+,C1==,D1=?) 関数式のセルに以下の様に入力しました。 =IF(ISBRANK(D1)=TRUE,E1="",VLOOKUP(D1,$A$1$B$15,2,FALSE)) 目的はVLOOKUPだけではD1が空白の時にE1にNAMEと表示されるのを 避ける事でした。 そうすうとD1にA列の数字を入力すると、それに対するB列をE1に 表示するようになるのですが、D1が空白の時はB1が表示されて しまってます。  また一旦D1に入力した後、D1をデリートして空白にしてもE1には もとの数値がそのまま表示されたままになってしまいます。 文章で表現している分、かなり分かりにくい説明になってしまって いますが、お詳しい方いましたらアドバイスお願い致します。

  • ExcelのIF関数について教えてください。

    Excelでデータ抽出をする際の関数について。 A列の情報(文字列)と、B列の情報(文字列)の2つの組み合わせに対し、条件がある ・下記のような情報がある時、   A列   B列   Blue   Red   Blue Yellow   Red   Blue   Yellow Red   Red Green ・下記の条件、   A列   B列   Blue と Blue  は  Aグループ   Blue と Yellow は Bグループ   Blue と Red  は Cグループ   Blue と Green は Dグループ   Red と Blue  は  Aグループ   Red と Yellow は Bグループ   Red と Red  は Cグループ   Red と Green は Dグループ   ・・・つづく にあてはめて、条件の●グループを引っ張ってきたいのですが、 どのような関数を入れたらいいのでしょうか? よろしくお願いします。

専門家に質問してみよう