• ベストアンサー

データのダブりを省いた並べ替え

どなたか教えてください。 A列に カーナビ ビデオキャプチャ ビデオキャプチャ ノートパソコン ケースファン ケースファン といった具合にデータが並んでいます。 ダブっていたり、一個だけしかないものもあります。 このA列の中から、ダブっているものを省いてB列に並べ替える関数をB列に書きたいのです。 固定されているものがあればVLOOKUPとかで出来るかと思ったのですが、まったくの任意の データなので、単純にダブりを省いて並べ替えたいです。 データ数は大体1000前後です。 EXCEL2003を使用しています。 よろしくお願いいたします。

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

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

Sheet1の重複のないA列のデータを抽出するなら、「データ」「フィルタ」「フィルタオプションの設定」で「リスト範囲」「検索条件範囲」をSheet1のA列を選択して抽出先を指定した範囲にして「重複するデータを無視する」にチェックを入れてOKします。 この操作を繰り返し行う必要があるなら、上記の操作をマクロの記録で記録させ、ボタンなどに登録して実行するのが簡単です。 なお、数式入力セルが多くなると動きが重くなりますが、以下のような配列数式を使えば、重複のないデータを抽出することができます(下方向にオートフィルコピー)。 =INDEX(Sheet1!A:A,SMALL(INDEX((MATCH(Sheet1!A$1:A$1000&"", Sheet1!A$1:A$1000&"",)<>ROW(A$1:A$1000))*1000+ROW(A$1:A$1000),),ROW(A1)))&""

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

これはデーたー「フィルタオプションの設定の操作」で「重複するレコードは無視する」で簡単に出来ます。 関数では私に言うimogasi方式などで出来ますが(Googeeでimogasi方式で照会すれば出る) が手間がかかるだけです。 その場合作業列には(空いた列に) 下記のB2セルに=IF(COUNTIF($A$2:A2,A2)=1,MAX($B$1:B1)+1,"")の関数をいれ、下方向に式を複写します 例データ Sheet1 A2:B6 a 1 b 2 a c 3 a そしてSheet2ではSheet1のB列の1の行を、Sheet2の第1行に、Sheet1のB列の2の行を、Sheet2の第2行にINDEX関数で持ってきます。 ーーー 何でもエクセルの関数でという発想の質問者が多いが、その考えは改めて、操作で出来るときは、操作でやるべきです。 ーー 関数でやった場合は、並べ替えは、自己セルへ値を複写などして、式を消してから行う。

  • mar00
  • ベストアンサー率36% (158/430)
回答No.2

データか1行目から始まっているとして、まず1行目に1行挿入します。 A列のデータをC列にコピー(並べ替え時A列を対象にしない為) D列にIF(C2=C1,0,1)の数式をいれてオートフィルドラッグ データが連続していればD2の右下をダフルクリックですみます。 数式をコピーで値にして並べ替え(D列昇順) D列の0になっている部分を削除すれば重複分は削除されます。

関連するQ&A