• 締切済み

エクセル関数 重複除いて

Excelで、 列にある項目(値)を重複なしで集計したいです。 具体的には、次の例です。 A列に、 Yahoo Google Amazon Google Google Microsoft と値が入っています。 B列に、 Yahoo Google Amazon Microsoft と入力したいです。エクセル関数なので。 可能でしょうか?よろしくお願いいたします。 VBAでなければ無理でしょうか。

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.4

>B列に、 > Yahoo > Google > Amazon > Microsoft >と入力したいです。 B列に関数を使って値を・・・・と言うことは「入力」ではなく「代入」と表現された方が良いでしょう。 関数式の戻り値をセルに代入すると言う考え方です。 >可能でしょうか? 可能ですが、関数を使わずにA列を全てB列へコピーし、B列を選択して「重複の削除」を実行すれば良いと思います。(貼付画像) どうしても関数を使いたいのであればB1セルへ次の数式を入力し、下へ必要数コピーすれば目的通りになります。 但し、データの行数を最大100行までとしてありますので実際の行数に合わせて修正してください。 =INDEX(A:A,SMALL(INDEX((MATCH($A$1:$A$100&"",$A$1:$A$100&"",0)<>ROW($A$1:$A$100))*ROW(A$101)+ROW($A$1:$A$100),0),ROW()))&"" 尚、100行以下のデータに行を追加する場合は99行と100行の間へ必要数の行を挿入すると数式の最大行も連動して変化します。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

No1の回答の補足です。 ひとまず、関数で表示する方法を提示しましたが、単純に重複するデータの集計をしたいなら、ピボットテーブルで集計することをお勧めします。 また、関数を使わないでB列に重複のないデータを表示させるなら、A列を選択して「データ」タブの「詳細設定」で抽出先を「指定した範囲」にしてB1セルを選択し、「重複するレコードは無視する」にチェックをいれてOKすれば、重複のないデータがB列に表示されています(マクロの記録でも対応できると思います)。 #ご使用のExcelのバージョンが記載されていませんので、Excel2007以降のバージョンでの説明をしましたが、Officeソフトはバージョンによって使用できる機能や操作方法が大きく異なるので、質問の際には必ずバージョンを明記するようにしましょう。 また、目的やシートの状況によって最も合理的な操作が異なりますので、実際のデータベースのレイアウトやデータ数、最終的にどのような集計がしたいのかを、もう少し詳細に説明されたほうが良いと思います。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.2

B1: =IF(COUNTIF(A$1:A1,A1)=1,ROW(),"") D1: =IF(ISERROR(SMALL(B:B,ROW())),"",INDEX(A:A,SMALL(B:B,ROW())))

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

添付画像のレイアウトなら、B2セルに以下の式を入力して下方向にオートフィルしてください。 =INDEX(A:A,SMALL(INDEX((MATCH($A$2:$A$10&"",$A$2:$A$10&"",)<>ROW($A$2:$A$10)-1)*1000+ROW($A$2:$A$10),),ROW(1:1)))&"" ただし、上記の数式は配列数式ですので、データ範囲が大きくなった場合や、表示するデータ数が多くなる場合は、シートの動きが重くなるので、関数ではなくフィルタの機能で重複を削除するなど、他の方法で対応したほうが良いかも知れません。

関連するQ&A