• ベストアンサー

エクセル 同一列内で同じものの抽出

C1:C20(例)を検索し、同じものがあったら抽出する。  1.「同じもの」は、文字列で、「全部同じもの」、「1部同じものの」の両ケース  2.抽出(表示)の内容(方法?)についてはお任せします。   よろしくお願いいたします。

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

  • ベストアンサー
  • Randomize
  • ベストアンサー率70% (38/54)
回答No.3

途中まで関数で残りをオートフィルターで手作業でというやり方であれば、 完全一致の物に関しては可能です。 D列を作業列にした場合の例です。 D2に以下の関数を貼り付けてD3から下のセルへD2をコピーしてください。 =IF(COUNTIF(C:C,C2)>1,IF(COUNTIF(OFFSET($C$1,0,0,ROW()-1,1),C2)=1,C2,""),"") 相対参照と絶対参照が混じっていますので注意してください。 この関数は、C1から下へ項目を探して完全一致する物があれば、「2回目に出てきた時だけ」該当のCに書いてあるものを表示します。1回目や1個しか出てこない物は空白になります。 その後、D列を「空白以外のセル」でオートフィルターにかけると、2個以上完全一致する項目の「重複しない」リストが抽出できます。後はその結果をコピーしてどこかへ値を貼り付けてください。 なお、3回目以降に出てきた物も表示したい場合は関数を =IF(COUNTIF(C:C,C2)>1,IF(COUNTIF(OFFSET($C$1,0,0,ROW()-1,1),C2)>0,C2,""),"") にしてあげてください。この場合は重複するリストになりますね。 原理はこうなっています。 1) C列全体を見てとある場所(この場合はC14としましょう)に書いてあるものが1回しかなければ空白を表示する 2) 2回以上あった場合はC13(該当セルの1個上)までにC14にかかれている物があるかを調べて、1個である場合だけC14の値をD14に表示する。(1回目であれば0個のはず。また、3回目以降であれば2以上の数になるはずです。) ちなみに、部分一致の場合は、元となる文字のどこからどこまでが一致しているかを指定してあげなければいけません。関数だけでこれを行おうとすると、とんでもないことになると思います。ですので、関数では出来ないと考えた方が良いと思います。

soramist
質問者

お礼

出来ましたっ!○×△□(^_^;) 素晴らしいですね。 それにしても、かなりハイレベルな数式ですね。 わたしの頭では到底不可能です。 本当に有難うございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.2

オートフィルタのオートフィルタオプションで「同じもの」を含むにすれば抽出できます。 オートフィルタ - オプション    http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter.htm#option

soramist
質問者

補足

ご回答有難うございます。 申し訳ないのですが・・・ ご提示の方法は、検索条件に「”これ”と同じもの」ということを明示する必要がありますね? わたしの希望は、「C列の中で同じもの(重複の意)が”もしあれば”・・・」ですから、最初に提示することはできないわけです。 それと、質問が悪かったかもしれませんが(抽出という表現が)、できれば、数式で入れてやって、何もなければ単なるブランク、という形の結果にしたいのです。 (ご提示の抽出操作では、画面全体が変わってしまうので困る) 最終表示として、どのようなものが出来るか、わたしにはわかりませんので、ここらあたりが曖昧になりまして申し訳ありませんでした。 引き続きよろしく願いいたします。

すると、全ての回答が全文表示されます。
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

どのようなことを試してみたのかを書きましょう。 そして、どのような結果が欲しいのかも書かずに、回答者にお任せするのは如何なものでしょうか? COUNTIF関数を使っていろいろ工夫してみてください。

すると、全ての回答が全文表示されます。

関連するQ&A