• ベストアンサー

エクセルで教えて下さい。

エクセルで教えて下さい。 オートフィルタ、ピボットテーブル以外で関数などで教えて下さい。 A列に大量の文字列があり重複したりしてます。 そこで、 B列にはA列にある大量の文字列を重複なしで表示させたいと思ってます。 例えば A列 B列 AAAA AAAA BBBB BBBB AAAA CCCC CCCC DDDD DDDD EEEE DDDD FFFF EEEE FFFF EEEE AAAA みたいな感じです。A列は編集可能でQQQQを追加すれば自動でB列にも表示させたいです。 このようなことを簡単にできますでしょうか? 宜しくお願いします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

分かりやすい方法は作業列を作って対応することです。 A列にデータがあるとしてA2セルから下方にデータがあるとします。 そこで作業列ですがC2セルには次の式を入力して下方いオートフィルドラッグします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,MAX(C$1:C1)+1,"")) これで上から重複のないものには番号が振られます。 そこでお求めのデータですがB2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ROW(A1)>MAX(C:C),"",INDEX(A:A,MATCH(ROW(A1),C:C,0))) A列に重複のないデータが追加されれば自動的にB列にもデータが追加されます。

WOVOW
質問者

お礼

早速たくさんの回答ありがとうございます。 実際にやってみるとできました!ただエクセル初心者であり何故そうなるのかがわからずでいるので 勉強します!何が一番良いやり方などわからないので最初に回答くださった方をベストアンサーにしました。

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

その他の回答 (4)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! すでに回答は出ていますので、参考程度で目を通してみてください。 ↓の画像のように離れたところに作業用の列を設けています。 作業列D2セルに =IF(COUNTIF($A$2:A2,A2)=1,ROW(),"") という数式をいれ、オートフィルで下へずぃ~~~!っとコピーします。 結果のB2セルに =IF(COUNT(D:D)<ROW(A1),"",INDEX(A:A,SMALL(D:D,ROW(A1)))) という数式をいれ、オートフィルで下へコピーすると 画像のような感じになります。 尚、今後データが増えても対応できるように空白であっても構いませんので かなり下までコピーしておきます。 これでA列にデータが増えても対応できると思います。 以上、参考になれば幸いです。m(__)m

すると、全ての回答が全文表示されます。
  • layy
  • ベストアンサー率23% (292/1222)
回答No.4

確認です。 例えば、A1000で入力してみた場合、B1にまでスクロールしないと重複していたかどうかわからないなんて使い方になりそうですがいいのでしょうか?。

すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

訂正と補足情報です。 私の提示した数式に誤りがありました(「*100」の部分は、参照する行数よりも大きい数字たとえば「*10000」にして下さい。)。 正しくは以下の式です。 =INDEX(A:A,SMALL(INDEX((MATCH(A$1:A$1000&"",A$1:A$1000&"",)<>ROW(A$1:A$1000))*10000+ROW(A$1:A$1000),),ROW(A1)))&"" 上記の数式は、今回のご質問のように文字列を抽出する場合は問題ありませんが、数字や日付などの値を参照する場合は、「文字列」数字(日付はシリアル値数字の文字列)になりますので、数式に工夫が必要です(最後の「&""」は削除する必要があります)。

すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>A列に大量の文字列があり重複したりしてます。 上記の条件が気になりますが、重複するデータが多く、最終的に表示する項目が多くないなら、以下のような数式で重複のないデータを表示できます。 =INDEX(A:A,SMALL(INDEX((MATCH(A$1:A$1000&"",A$1:A$1000&"",)<>ROW(A$1:A$1000))*100+ROW(A$1:A$1000),),ROW(A1)))&"" 表示データが100件を超えるような場合は、計算方法を「手動」で対応するか、マクロを利用することになります。 すなわち、オートフィルタではなく「フィルタオプションの設定」を利用して、データ範囲を大きめに選択し、「重複するデータは無視する」にチェックを入れ、「OK」する操作を「新しいマクロの記録」で記録して、必要に応じてこのマクロを実行するようにします。

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

関連するQ&A

専門家に質問してみよう