[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セル内で並び替え』(やよい)
教えてください。行単位、列単位で並び替えは可能ですが、セル内の数字を並び替えることは可能なのでしょうか?
Ex.(セルC1)=(2354) → (セルC1)=(5432)
むちゃいわないでください。 VBAくまなければできません。 (kazu)
セル内で数値を組替える場合の ルールを 説明できる範囲説明ください 何らかの法則(約束事)が有るのであれば 無理かもしれませんが 考えられるかもしれませんよ 現状の説明では 無理っぽいですね それとも ただ入力があれば ランダムな数値を返すだけであれば 行けそうですが?
Function Isrt(Targ As Variant) As String Dim I, J As Integer, Targ2, T As String Targ2 = Left(Targ, 1) For I = 2 To Len(Targ) T = Mid(Targ, I, 1) For J = 1 To Len(Targ2) If T > Mid(Targ2, J, 1) Then Targ2 = Left(Targ2, J - 1) & T & Mid(Targ2, J, 33000) T = "" Exit For End If Next If T <> "" Then Targ2 = Targ2 & T End If Next Isrt = Targ2 End Function
確認する時間がなくてアイデアだけですが、 1)桁数を決める 2)作業セルを使う 3)並べ替え結果を他のセルに表示する なら、関数でできそうな気がします。
元の数字が4桁固定と仮定し、以下の表を考えます。 C D E F G 1 1 2 3 4 2 2354 =VALUE(MID($C$2,D1,1)) =VALUE(MID($C$2,E1,1)) =VALUE(MID($C$2,F1,1)) =VALUE(MID($C$2,G1,1))
このとき、 =LARGE($D$2:$G$2,1)&LARGE($D$2:$G$2,2)&LARGE($D$2:$G$2,3)&LARGE($D$2:$G$2,4) とすれば、ソートされた結果が出ると思います。 桁数が不定の時はこれに加え、エラー判定判定などの配慮が必要になります。 方針としていかがでしょうか? あと、結果のセルを、マクロでコピー&形式を指定して貼り付けで、C1セルに 値貼り付けするという手もあると思います。 (ちゅうねん)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.