- ベストアンサー
Excel文字の並び替えについて。
例えばA1に「10-1-5」とハイフンで区切られた文字があります。 これをB1に数字が小さい順「1-5-10」と並び替えて表示することは可能でしょうか。 数字は一桁か二桁までです。 よろしくお願いしますm(_ _ )m
- みんなの回答 (3)
- 専門家の回答
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
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)
ユーザ定義関数は如何でしょうか。 仮に関数は=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
お礼
丁寧に画像まで添付して頂きありがとうございます。 作業列を作った方がわかりやすいですねm(_ _ )m