- ベストアンサー
Excel 列に入力のある文字列を重複なく取り出す
Excel2003を使用しています。 下記のようなデータがあったとして、 A列に入っている文字列を右のように重複なく抜き出す 方法はありますでしょうか。 そして、それを1つのセルにまとめることはできますでしょうか? 1つのセルにまとめたものは別シートに表示したいです。 できるだけ簡単な方法がよいです。 A列 欲しいデータ 表示したい形式 A-1 A-1 A-2 A-2 A-3 → A-3 → A-1,A-2,A-3 A-1 A-2 セルを1つにまとめる方法はいくつかわかるのですが、 列から入力のあるものを取り出す方法がわかりません。 同じような質問を探していたのですが、 見つけきれなかったので、お分かりの方がいらっしゃい ましたら、お教え下さい。 明日までの期限なのですが、どうしてもうまくできずに 困っております。よろしくお願い致します。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
#3です。 乗りかかった船なので、文字列の結合もやってみました。 E1=CONCATENATE(D1,IF(D2="","","," & D2),IF(D3="","","," & D3),IF(D4="","","," & D4),IF(D5="","","," & D5),IF(D6="","","," & D6),IF(D7="","","," & D7)) XL2003までは、式の長さは1024文字が最大だそうですので、抽出する項目が多い場合は、その範囲内で長くしてください。このIF関数と同様の作業列を作った方がすっきりしますが、この様なIF関数の使い方をしたのは自分では初めてなので、採用しました。
その他の回答 (5)
- imogashine
- ベストアンサー率0% (0/4)
No.4 関数でも出きるのだか、→それを書いてはいかがでしょうか? こんなところへ質問して時間をかけているより、→調べる方が時間がかからないということを,調べる前に確信することはできないでしょう。また,親切に説明してくださる方も大勢いますので,一般論ではなく個別のケースについて早急に知りたい場合,自分で検索→勉強→理解→応用よりは,余程時間がかからないと思いますよ。 センスを磨くことが大切だと思う。→あなたは,そういったセンスを磨いているのでしょう。もう少し,別なセンスも磨くことが大切だと思いますよ。社会的に。
お礼
ご回答ありがとうございます。 ネット検索が苦手で一通り検索して見つけれない場合は こちらでよく質問させて頂いています。 うまく質問できずに回答者様に真意を伝えきれないときも あるので、私もこれから色々と成長せねばですね(^-^) ご回答ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
関数でも出きるのだか、エクセルのキホンにあるのは、課題に対して、できれば操作で行うことである。 データーフィルターフィルタオプションの設定ー「重複するレコードは無視する」、をやってみること。 重複するレコードとはー>エクセルのシートの場合に引きなおすと、重複する行は持ってこない、という意味です。 ーー こんなところへ質問して時間をかけているより、Googleで、 「エクセル 抜き出す 重複」で照会すると http://www.eurus.dti.ne.jp/~yoneyama/Excel/jituyou/jyufuku.htm などが初めのほうにすぐ見つかる。 早くこういった照会のキーワードのセンスを磨くことが大切だと思う。 関数では上記の前半、私の言っているのは後半に解説が出ているよ。
お礼
ご回答ありがとうございます。 お礼遅くなり申し訳ありません。 A列を入力すると表示したい形式まで、自動で表示するには 関数しかないのかなと思い、関数にこだわっておりました。 しかし、やはり関数はみつけきれなかったので、 フィルタオプションを使った重複しないリストができる方法を ネットで見つけたので、マクロを使い表示するように しました。 なかなか検索の仕方がうまくならず、したい操作にたどりつく までに時間がかかるので、回答者様のおっしゃるように センスを磨かなければですね ^^; ご回答頂きありがとうございました。
- mitarashi
- ベストアンサー率59% (574/965)
時間が無いので概要だけ回答します。ご参考まで。 A_______B_______C_______D A-1_____1_______1_______A-1 A-2_____2_______2_______A-2 A-1_____________4_______A-3 A-3_____4_______#NUM! A-2_____________#NUM! A-1_____________#NUM! A-2_____________#NUM! B1=IF(COUNTIF(OFFSET($A$1,0,0,ROW(A1),1),A1)>1,"",ROW()) C1=SMALL(OFFSET($B$1,0,0,COUNTA($A:$A),1),ROW(A1)) D1=IF(ISERROR(C1),"",INDEX(OFFSET($A$1,0,0,COUNTA($A:$A),1),C1,1))
お礼
ご回答ありがとうございます。 お礼遅くなり申し訳ありません。 関数がどうしても思いつかず、 フィルタオプションを使った重複しないリストができる方法を ネットで見つけたので、マクロを使い表示するように しました。 関数でもできるのですね。 今まで使ったことのない関数もあるので、 一つ一つどんな関数か調べて、今後の参考にさせて頂きます。 ご回答頂きありがとうございました。
- gyouda1114
- ベストアンサー率37% (499/1320)
ANo.1です。 「1」だけ抜き出してもダメですね。 「2以上」についても最初の一つを抜き出す必要がありますね。 それぞれをオートフィルタで抜き出し別シートでまとめるんですかね
お礼
ご回答ありがとうございます。 お礼遅くなり申し訳ありません。 重複のないリストの一覧を別シートに参照させたかったのですが、 うまく説明できず申し訳ありません。 関数がどうしても思いつかず、 フィルタオプションを使った重複しないリストができる方法を ネットで見つけたので、マクロを使い表示するように しました。 マクロを使った事がなく関数でどうにかならないかと思って 質問させて頂きました。 ご回答頂きありがとうございました。
- gyouda1114
- ベストアンサー率37% (499/1320)
A1:A20にデータと仮定 1列追加しその列に =COUNTIF($A$1:$A$20,A1) オートフィルタで「1」を抜き出し、それを一つのセルにまとめる
お礼
ご回答ありがとうございます。 再度ご回答頂きましてありがとうございます! 関数お詳しいのですね。 お教え頂いた回答でも作成してみます。 ありがとうございました。