[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セル内の数値の並べ替え』(初心者)
1,33,2,11,19
とセル内にあります。
1,2,11,19,33
と数字を小さい順にカンマとセル内で並び変えたいです。
よろしくお願いします。
< 使用 Excel:unknown、使用 OS:unknown >
(マナ) 2021/11/23(火) 18:27
ただ、わたしには無理なので
回答がつくまでのつなぎで
ユーザー定義関数(案)です。
A1: 1,33,2,11,19 B1; =NumSort(A1)
Function NumSort(s As String) Dim a As Object Dim e
Set a = CreateObject("system.collections.arraylist") For Each e In Split(s, ",") a.Add CLng(e) Next a.Sort s = Join(a.toarray, ", ")
NumSort = s
End Function
(マナ) 2021/11/23(火) 18:42
EXCELのバージョンを書いてくれ。 バージョンによって使える関数に違いがあるので。 (ねむねむ) 2021/11/24(水) 09:03
あと、作業セルを使っても構わないだろうか? (ねむねむ) 2021/11/24(水) 09:03
作業セルを使っても構わないだろうか?→出来るのであれば、構いません。
よろしくお願いします。
(初心者) 2021/11/24(水) 15:51
365であれば =TEXTJOIN(",",,SMALL(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",100)),ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1))*100-99,100))*1,ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1)))) で、できないだろうか? 現在365で確認できないためできなかったらすまない。 (ねむねむ) 2021/11/24(水) 15:56
念のため。 上記式でうまくいかなかった場合、式の入力時にShiftキーとCtrlキーを押しながらEnterキーで式を確定 (確定時に式が{}で囲まれればOK)も試してみてくれ。 (ねむねむ) 2021/11/24(水) 16:11
365で確認できた。 Shift+Ctrl+Enterなしで並べ替えられた。 (ねむねむ) 2021/11/24(水) 21:31
ご返事遅くなり誠に申し訳ございません。
思い通りにできました。
誠にありがとうございました。
(初心者) 2021/12/11(土) 19:05
ねむねむさんの式を参考に、SORT関数とSEQUENCE関数を使って作成してみました。
=TEXTJOIN(",",,SORT(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",100)),SEQUENCE(LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1,,1,100),100))*1))
文字列を分割する部分はすごいですね。私にはとても思いつかないです。 (hatena) 2021/12/11(土) 22:00
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.