この人頭いいなと思ったエピソード

Excelで、行に複数の数字が入力されているセルが複数の列存在し、行を跨いでセル内の数値を並び替える方法はありますでしょうか
1行目(1 2 6 4)
2行目(3 5 8 7)
を1行目に1234
2行目に5678と並べたいといった具合です。

A 回答 (5件)

A~D列の各セルに数値が入っているなら


表示させたいセルへ次の数式を入力し右へ3個、下へ1個コピペ

=IFERROR(AGGREGATE(15,6,$A$1:$D$2,COLUMN(A1)+4*(ROW($A1)-1)),"")
    • good
    • 0

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …

Sub try()
Dim DataList As Object
Dim n As Long, nr As Long, nc As Long
Dim i As Long, j As Long

Set DataList = CreateObject("System.Collections.SortedList")

With Range("A1").CurrentRegion
nr = .Rows.Count
nc = .Columns.Count


For i = 1 To nr
For j = 1 To nc
DataList.Add .Cells(i, j).Value, ""
Next
Next

.ClearContents

n = 0

For i = 1 To nr
For j = 1 To nc
.Cells(i, j).Value = DataList.GetKey(n): n = n + 1
Next
Next

End With

Set DataList = Nothing

End Sub

もし動かない場合は、
https://www.fenet.jp/dotnet/column/dot-net/325/
    • good
    • 0

その数字が並んでいるセルの範囲は、どうなっていますか。


具体的に提示してください。
A1:D2 でしょうか?
    • good
    • 0

こんばんは



1列に並んでいるデータであれば、基本機能の「並び替え」で簡単にできますけれど、そうではないようですので・・・

ご提示のように、ある「セル範囲」であれば関数でも並び替えることは可能です。
ただし、関数等の場合は、元のセルの内容を書き換えることはできませんので、別のセルに並べ替えた結果を表示することになります。

同じセルに上書きなさりたいのであれば、VBAを用いることになりますが、なさりたい内容に応じたコードを作成することが必要になります。
    • good
    • 0

>1行目(1 2 6 4)


このセルに入力されている数値は1264、という数値です。
セルの表示形式を文字にしているなら入力されている数値というより数字は1・2・6・4、ということになるのかな?。
>2行目に5678と並べたいといった具合です。
何を根拠にその順番になるのか?不明です、何の根拠もなくそうしたいのであれば、手で入力すればよいだけです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報