こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

どなたか教えてください。

A列に
カーナビ
ビデオキャプチャ
ビデオキャプチャ
ノートパソコン
ケースファン
ケースファン

といった具合にデータが並んでいます。
ダブっていたり、一個だけしかないものもあります。
このA列の中から、ダブっているものを省いてB列に並べ替える関数をB列に書きたいのです。
固定されているものがあればVLOOKUPとかで出来るかと思ったのですが、まったくの任意の
データなので、単純にダブりを省いて並べ替えたいです。

データ数は大体1000前後です。

EXCEL2003を使用しています。

よろしくお願いいたします。

投稿日時 - 2011-03-30 10:56:54

QNo.6631321

困ってます

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

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)))&""

投稿日時 - 2011-03-30 11:38:39

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

投稿日時 - 2011-03-30 21:39:25

ANo.2

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

投稿日時 - 2011-03-30 14:08:17

あなたにオススメの質問