- ベストアンサー
Excelの重複データ抽出方法と一意のデータ表示方法について
- ExcelのIF関数を使用して重複するデータを抽出し、一意のデータを表示する方法について教えてください。
- ExcelのIF関数が初めて使用するため、他の方法でも対応できる場合は教えていただきたいです。
- 列Aにあるデータのうち、重複しているデータを列Dにまとめ、重複しないデータを列Eに表示したいです。どのような関数を使用すればよいですか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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行目以下に貼り付けて下さい。 以上で完了です。
その他の回答 (2)
- kagakusuki
- ベストアンサー率51% (2610/5101)
回答番号: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))) に変えて下さい。
お礼
お忙しい中、ご回答ありがとうございました! 今後の参考にさせていただきたいと思いますm(__)m
- char2nd
- ベストアンサー率34% (2685/7757)
E1に、「=SUMIF($A$1:$A$1,D1,$B$1:$B$9)」と入力し、これをそのままE2~E5にコピーしてください。 http://kokoro.kir.jp/excel/sumif.html
補足
すみません D列にはA列にそれぞれ1,2,3,4,5を表示できる関数を入れたいと おもっておりますが、そちらに対してはどうしたらよろしいでしょうか? だびたびすみません また、E列にいれました関数では1の合計数は出せませんでした・・ ほかの方法はありませんでしょうか? 宜しくお願いいたします。
お礼
お忙しい中ご回答ありがとうございました! 確かに重要な部分ですのでおぼえさせていただきます。