• ベストアンサー

EXCEL2007の並べ替えについて

お世話になります。 EXCEL2007にて、以下のようなセル内のデータを、 数字とハイフンとカンマ、()を除いたアルファベットで並べ替えたいのですがうまくいきません。 例)以下のように並べられてるものを 2,1-(Cfghfdguheiur) 2,6,8,4-Ajdkdidjdos 6,8,99,5,99-Bisfeigfi 99999,45,85,99-Dhfahdiu . . . 以下のようにアルファベット順に並べたい 2,6,8,4-Ajdkdidjdos 6,8,99,5,99-Bisfeigfi 2,1-(Cfghfdguheiur) 99999,45,85,99-Dhfahdiu . . . 無理なような気もするのですが、何か方法をご存知の方よろしくお願いします。

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

  • ベストアンサー
  • a987654
  • ベストアンサー率26% (112/415)
回答No.2

質問の記載では全てにハイフンが入っており、ハイフン無しの 言明は無いので、全てのデータにハイフンがある事を前提と します。(ハイフン無しの混在は更にif文が必要) データはA2から入っており、B列は空いているものとします。 B2セルに =IF(LEFT(REPLACE(A2,1,FIND("-",A2,1),"("),1)="(",  REPLACE(A2,1,FIND("-",A2,1)+1,""),  REPLACE(A2,1,FIND("-",A2,1),"")) あとはこの式を必要なだけコピーする。 A2:Bn(nは最終行)をソートする。 ソート後不要であればB列の数式は消去してください。

freakale
質問者

お礼

ありがとうございます。 引数便利ですね データが複雑なので、多少手を加える必要はありそうですが、なんとかなりそうです。 どうもありがとうございました。

その他の回答 (1)

  • rurumiko
  • ベストアンサー率31% (32/102)
回答No.1

一発でというのはたぶん無理だと思いますが、何段階かに分ければ可能だと思います。 まず、並べ替えをしたい列の隣に空白列をコピー。 その空白列に並べ替えをしたいデータを丸ごとコピー。 コピーした列を、データ→区切り位置→「カンマやタブなどの区切り文字によって・・・」を選択、次へ→タブのチェックをはずし、その他にチェックをいれ、その他の横の欄に-(ハイフン)を記入、完了。 上記の動作でハイフンの右側と左側で列が分かれて、2列になると思います。 次に右側の列全体を選択→編集→置換→「置換する文字列」に(を入力、「置換後の文字列」は何も記入せずに、すべて置換を選択 これで(が消えるはずです これで質問者様がご要望するアルファベット順に並べ替えができる列が作成できたと思います。あとは並べ替えを実行後、余分な挿入した列を削除してください。 ご参考になれば幸いです

freakale
質問者

補足

ありがとうございます。 なるほどといった感じなのですが、セル内のデータの中には 3-Sample-4,5,6-test-1-etc や (1,2,3,4,5-Sample)-test なども含まれているため一筋縄ではいかなそうです… なんとかrurumikoさんのアドバイスを参考に頑張ってみます。 引き続き他の方法等ありましたらよろしくお願いします。

関連するQ&A