• ベストアンサー

Excel文字の並び替えについて。

例えばA1に「10-1-5」とハイフンで区切られた文字があります。 これをB1に数字が小さい順「1-5-10」と並び替えて表示することは可能でしょうか。 数字は一桁か二桁までです。 よろしくお願いしますm(_ _ )m

  • mzakom
  • お礼率38% (129/338)

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

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

添付図参照 B1: =FIND("-",A1) C1: =FIND("-",A1,B1+1) D1: =LEFT(A1,B1-1)+0 E1: =MID(A1,B1+1,C1-B1-1)+0 F1: =MID(A1,C1+1,9)+0 G1: =SMALL(D1:F1,1) H1: =SMALL(D1:F1,2) I1: =SMALL(D1:F1,3) J1: =G1&"-"&H1&"-"&I1

mzakom
質問者

お礼

丁寧に画像まで添付して頂きありがとうございます。 作業列を作った方がわかりやすいですねm(_ _ )m

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

A1セルから例えばA10セルまでにお示しのようなデータが有るとします。 作業列を作って対応することがよいでしょう。 初めにA1セルからA10セルを選択したのちに「データ」タブから「区切り位置」をクリックします。 最初の画面はそのままで「次へ」、次の画面では区切り文字の項で「その他」にチェックを入れて、その窓に - を入力しOKします。次の画面で表示先の窓には$A$1となっていますが、それを$E$1に書き換えて完了します。 A列の文字列に含まれる数値がE,F,G列に表示されます。 その後にB1セルに次の式を入力して下方にドラッグコピーします。 =IF(A1="","",SMALL(E1:G1,1)&"-"&SMALL(E1:G1,2)&"-"&SMALL(E1:G1,3))

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

ユーザ定義関数は如何でしょうか。 仮に関数は=mysort(A1)とします。(桁数は10桁、個数はほぼ無制限です) エクセル任意シート上でAlt+F11(VBE起動)→挿入→標準モジュール→サンプルコード貼り付けてお試しください。 Function mysort(rng) Dim wk, swap As Long, i As Long, j As Long wk = Split(rng, "-") For i = 0 To UBound(wk) For j = UBound(wk) To i Step -1 If wk(i) * 1 > wk(j) * 1 Then swap = wk(i) wk(i) = wk(j) wk(j) = swap End If Next j Next i mysort = Join(wk, "-") End Function

関連するQ&A

  • 【Excel】特定の文字間の数字を取り出す

    Excel2003を使用しています。 あるセルに「●●●A9B××…」と入力してあった場合、AとBの間にある数字“9”を取り出すにはどうしたらいいでしょうか? 全体の文字数は変化しますが、AとBという文字は必ずあって、その間にある数字だけを取り出して、それを別の計算で使用したいのです。数字は1桁か2桁のいずれかですが、関数の組み合わせ等で可能でしょうか? よろしくお願いします。

  • 桁数が混在する並び替えの方法

    EXCEL2007です。関数やマクロについてはこんなものがあるんだぁ~程度の知識しかありません。そこで質問です。 以下の数字の並び替えできる方法がわかりません。 単純にEXCELのコマンド操作でできるのでしょうか? それとも関数やプログラムを必要とするのでしょうか? もし関数やプログラムが必要であるならば、がんばって勉強してみようと思ってます。(勉強はするつもりでも、なにが必要かもよくわかっていません。) 並び替えしたい数字は以下のような数字が混在します。 桁数が違う 1桁のものや、2桁~6桁のものが混在する 例 1or12or345or645874 など ハイフンがあるのとないものがある。 例 1-1or1-2or345 順番はまずハイフンの前の番号が若い順に並べたい。 次にハイフンより前の番号が同じものについては、ハイフン後の番号の順番に並べたい。ハイフンが2回重なる場合がある。以下の例を並び替える場合まず一番始まりのハイフン前の若い順に並べるまず4番次に26番次に100番次に226番となり次は1番はじめのハイフンの順番で最後は一番最後のハイフンの順番で以下の例のように並びかえたいです。 1番 4 2番 4-3-5 3番 4-25-2 4番 26-13-6 5番 26-13-21 6番 100 7番 226-8-9 8番 226-15-31 しかしEXCELでは表示形式は文字列にしないと、ハイフンは入力できず、次に並びかえようとすると桁数がバラバラなので 一番初めの数字が桁数より優先されてしまい上記の例ですと本来並びかえたい上の例とは違い。 6番 100 8番 226-15-31 7番 226-8-9 5番 26-13-21 4番 26-13-6 1番 4 3番 4-25-2 2番 4-3-5 と並んでしまいます。理由がわかる方教えていただけませんか??? またどのようにすれば解決するのでしょうか?

  • ・エクセルで特定の条件に合う文字列を抜き出す方法を教えて

    ・エクセルで特定の条件に合う文字列を抜き出す方法を教えて 例のようにA列の文字の中からカッコ内(4桁数字“ハイフン”7桁数字)を B列に表示するにはどうしたらよいでしょうか。 ちょっと面倒なのはカッコは複数ある場合があり(xxxx-xxxxxxx)の条件に 合ったものだけを隣のセルに表示したいのです。 カッコとカッコ内は半角でxは不特定な数字です。 (例) A1=あいうえお(abcde)かきくけこ(xxxx-xxxxxxx)さしすせそ B1=xxxx-xxxxxxx よろしくお願いいたします。

  • Excelで、ハイフンを消したいけど000は残したい

    A列に、 00033-11-55 00432-12-01 00022-11-56 ・・・・・・ と、5桁-2桁-2桁 の数字がずーっと並んでいます。 これを、B列の、各となりのセルに、 000331155 004321201 000221156 ・・・・・・ というふうに、 ハイフンは消すが、000や00は残した数字を表示させたいです。 単に置換で、「-」を「」に置き換えると、00や000が消えてしまいます。。。。。 A列の、セルの書式設定を文字列にしても駄目でした。 どうすればいいでしょうか? 何かうまい関数などは、ありませんでしょうか?

  • エクセル文字列の結合

    エクセルでA列に7桁B列に6桁が入力されているのをA列とB列を結合したいのですがB列の6桁がチェックデジットの前にハイフンが入力されています。そして6桁の数字にゼロが入っているとゼロが消えてしまいます。結合するいい方法はないでしょうか

  • Excel2000のセル内の文字列の数字の先の2桁を取り出す方法について

    年のいった初心者です。 以前の質問に対する回答有難うございます。また、教えてください。  エクセル2000です。セル内に数字の文字列で、4桁、6桁、8桁のものが有ります。4桁のものには"01"を、6桁のものには"60"を、表示し、8桁のものには数種類あり、8桁の場合は、各文字列で上位の2桁を表示したいのです。 =IF(LEN(A1)=4,"01",IF(LEN(A1)=6,"60",IF(LEN(A1)=8,?????? 4桁、6桁については以前に教えていただいた、関数等でいけたのですが、8桁のときが分かりません。困っています。お願いします。     A列    B列 1 7532 →→ 01 2 280573 →→ 60 3 34964821 →→ 34 4 06839775 →→ 06 5 67500023 →→ 67

  • Excelでハイフンが入った文字列の抽出について

    A列に『12-1』、『1-5-10』、『14-15-6-3』など1桁また2桁の数字がハイフンで区切られた文字列があるとします。 そこからB列には左から2番目の数字、C列には右から2番目の数字、D列には1番右端の数字を関数で抽出したいのですが、出来ないでしょうか。 全部半角で、必ず数字は二つ以上あり、桁数は2桁までです。下記の画像のようにしたいです。 http://uproda.2ch-library.com/801593yFu/lib801593.jpg

  • Excel2003の文字列の並び替えで

    数字を含む文字列の並び替えで、下記のようになり数字部分が並びません。原因は何でしょうか?   1 11:14   2 300   3 1408   4 1941   5 007 カジノロワイヤル    6 007-01 ドクター・ノー   7 007-02 ロシアより愛をこめて   8 12モンキーズ   9 12人の怒れる男  10 2001年宇宙の旅  11 2010年  12 21グラム  13 28日後  14 34丁目の奇跡  15 60セカンズ これを、5,6,7,1,8,9,3,4,10,11,12,13,2,14,15 の順にしたいのですが、出来ません。文字サイズ、英数、全角半角等、統一しましたが不可です。 宜しくお願い致します。

  • 【Excel】条件を満たすデータの集計について

    Excel2003を使用しています。 A列(A7セル以下) → 日付[yy/mm/dd 形式] B列(B7セル以下) → “-”(ハイフン)を含む11桁の数字[例:1234567-8900] C列(C7セル以下) → 文字列 D列(D7セル以下) → 数値 が入力されている表があります。 A列の日付が 06/09/29 以前で、かつ、B列のハイフン前の4桁が『4567』であるD列の数値を集計したいのですが、どのようにすればいいでしょうか? 前回、同様の質問(No.3403437)で回答をいただきましたが、例の挙げ方が良くなかったようで、実際には正しい計算結果を得ることができませんでした。 よろしくお願いします。

  • Excelで管理しているシートで数字と文字が混在

    大変困っています。 Excelで管理しているシートで数字と文字が混在している文字列で 数字だけ取り出したいと思っています。 ただ、ある部分だけ、数字が2桁になったり1桁になったりします。 これを解消したいと思っています。 例1: A1に12度3分45.6789秒と入れたら、 これを:B1で120345.6789と表示したい。 もしくは、 例2: A1に12度34分56.7891秒と入れたら、 これを:B1で123456.7891と表示したい。 よろしくお願いします。

専門家に質問してみよう