• ベストアンサー

エクセル2003 a1~b100までを順番に並べたい

エクセルで各セルにa1~a100 b1~100の順番で並べ替えたいと思っています。 しかしa1,a100,a11,a12~a19, a2,a20というふうに なってしまいます。コレを解消するためにa001,a002というふうに 3桁になるよう0をつけたいと思っているのですが 関数かなにかで簡単にできる方法ありませんか?

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

  • ベストアンサー
noname#99913
noname#99913
回答No.1

A列にデータがあるとして、B1に次の式を入力して、必要なだけ下にコピーしてください。 =LEFT(A1,1)&TEXT(RIGHT(A1,LEN(A1)-1),"000")

その他の回答 (6)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.7

#6の訂正 # 取り出し、Aの後の書式"000"というなら、こうすればよいと思います =LEFT(A1,1)&TEXT(SMALL(INDEX(MID($A$1:$A$200,2,4)*1,,),ROW(A1)),"000")        ↓ =LEFT(A1,1)&REPLACE(A1,1,1,REPT("0",5-LEN(A1))) と読み替えてください。

exceln
質問者

お礼

みなさん 回答ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。 取り出し、Aの後の書式"000"というなら、こうすればよいと思います。 =LEFT(A1,1)&TEXT(SMALL(INDEX(MID($A$1:$A$200,2,4)*1,,),ROW(A1)),"000") 関数で並べ替えは、A,B と交じり合っているら、こうなります。 必ず、範囲は正確に入力してください。 =REPLACE(SMALL(INDEX((CODE(LEFT($A$1:$A$200,1))*1000+MID($A$1:$A$200,2,4)),,),ROW(A1)),1,2,CHAR((COUNTIF($A$1:$A$200,"A*")<ROW(A1))+CODE("A"))) となります。ただし、大文字・小文字の違いは、CODE("A") を、CODE("a")に換えてください。

noname#204879
noname#204879
回答No.5

=LEFT(A1,1)&TEXT(MID(A1,2,3),"000")

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.4

データは200件ですよね 今仮にA1:A200にデータが入っているものとします で データ位置と被らなければ何処でも良いので データを参照可能な位置に =char(int(small(index(code(left($A$1:$A$200,1))+value(right($A$1:$A$200,len($A$1:$A$200)-1))/100,),row(A1))))&text(mod(small(index(code(left($A$1:$A$200,1))+value(right($A$1:$A$200,len($A$1:$A$200)-1))/100,),row(A1)),1)*100,"000") と入力してください あとはこれを200件分下へフィルすれば終わりです パソで確認してないので文字切り出しの辺りがかなり不安ですが やり方はこの方向性でもいいと思います

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.2の補足です。 間違っていました・・・ 数字は3桁ですので "00"を"000"に変更してください。 失礼しました。m(__)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

回りくどい方法かもしれませんが・・・ A列にデータが入力されていると仮定して A1に作業列として行挿入 A1セルに=LEFT(B1,1)&TEXT(SUBSTITUTE(B1,LEFT(B1,1),""),"00") とやれば A列に望みどおり(a09)などのように表示されると思います。 それをソートすればOKではないでしょうか? ちなみに↑の関数は (B1セルの左一文字表示)&(B1セルの左一文字を空白に置き換え、残りを2文字で表示) こんな感じで考えてみました・・・

関連するQ&A

専門家に質問してみよう