• ベストアンサー

セルの並べ替えについて

a b1 b a2 c a1 d c1 e e1 - c3 - c2 このような状態のものを、 a a1 - a2 b b1 c c1 - c2 - c3 d - e e1 のように並べ替えるにはどのような方法がありますか。 よろしくお願いします。 (-は空白になります)

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

質問では並べ替え前のデータ個数が7個、並べ替え後が8個になっています。Excelの並べ替え機能ではデータ個数の増減はできないので、何らかの処理手順が必要になります。 並べ替え後の意味を、「数字のついた文字で並べ替え、その文字の先頭の場合に前に文字を表示し、数字のついた文字が現れない文字については、文字のみを表示する」と解釈しました。 ○セルA2:A6に{a、b、c、d、e}を入力。 ○セルB2:B8に{b1、a2、a1、c1、e1、c3、c2}を入力。 ○セルC2に「=LEFT(B2,1)」を入力してC8までコピー。 ○セルD2に「=COUNTIF($C$2:$C$8,A2)」を入力してD6までコピー。   {2、1、3、0、1}が表示されるはずです。 ○セルF2に「=IF(D2=0,A2,"")」を入力してF6までコピー。 ○セルF7に「=C2&" "&B2」を入力してF13までコピー。 ○セルF2:F13をコピーして、セルH2に値貼り付けします。 ○セルH2:H13を選択して、「データ」タブ>「並べ替えとフィルター」グループ>「降順」ボタンをクリックします。セルH2:H9に文字が見えるはずです。 ○セルH2:H9を選択して、「データ」タブ>「データ ツール」グループ>「区切り位置」ボタンをクリックします。   区切り位置指定ウイザード 1/3で、カンマやタブなどの・・・を選択し「次へ」。   区切り位置指定ウイザード 2/3で、区切り文字の「スペース」をチェックし「次へ」。   区切り位置指定ウイザード 3/3で、表示先を「$J$2」にして完了。 ○セルJ2:K9を選択して、「データ」タブ>「並べ替えとフィルター」グループ>「並べ替え」ボタンをクリック。   最優先されるキーをJ列、昇順、   次に優先されるキーをK列、昇順にして「OK」ボタンをクリック。 ○セルM2に「=IF(J2=J1,"",J2)」を入力してM9までコピー。 ○セルN2に「=K2&""」を入力してN9までコピー。 これで完成です。 質問にあるように、1文字と数字1桁の前提です。文字が1文字以上だったり、数字が1桁以上がある場合は、 セルC2に入力する算式を   「=LEFT(B2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(B2)&1234567890)-1))」 にしてください。

jgfjw666
質問者

お礼

詳しく記載していただきありがとうございます。 参考にさせていただきます。

関連するQ&A

専門家に質問してみよう