複数の値を持つセルをカンマで区切ったExcelファイルがあります。例えば、ニューヨーク、シカゴ、ロサンゼルス。シカゴ、ロサンゼルス、ニューヨークのようにアルファベット順にこのセルを並べ替えることにしました。これを行う簡単な方法はありますか?複数の値をアルファベット順に並べ替え[Excel]
答えて
これを試してください。次のコードは列A
の値を読み取り、列B
に希望の結果を与えます。
Sub SortString()
Dim MyArray As Variant, varSwap As Variant
Dim i As Long, min As Long, max As Long, LastRow As Long
Dim str As String
Dim MyRange As Range
Dim IsSwapped As Boolean
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set MyRange = Range("A1:A" & LastRow)
For Each cell In MyRange
MyArray = Split(cell.Value, ",")
min = LBound(MyArray)
max = UBound(MyArray) - 1
Do
IsSwapped = False
For i = min To max
If MyArray(i) > MyArray(i + 1) Then
varSwap = MyArray(i)
MyArray(i) = MyArray(i + 1)
MyArray(i + 1) = varSwap
IsSwapped = True
End If
Next
max = max - 1
Loop Until Not IsSwapped
For i = LBound(MyArray) To UBound(MyArray)
Debug.Print MyArray(i)
If str = "" Then
str = Trim(MyArray(i))
Else
str = str & ", " & Trim(MyArray(i))
End If
Next i
cell.Offset(0, 1).Value = str
str = ""
Next cell
End Sub
ありがとう。これは、セルの最初の値が常に最後に格納されることを除いて、ほとんど機能します。 a、b、f、l、o、u、i、z、x、yはb、f、i、l、o、u、x、y、zを与えます – user30058
@ user30058 - 私にしましょうチェック。 – Mrig
@ user30058 - If If Trim(MyArray(i))> Trim(MyArray(i + 1))Then Thenを使用して、If If MyArray(i)> MyArray(i + 1)Then'の行を置き換えます。スペースで問題が発生している可能性があります。そのことが今働いているかどうかを教えてください。 – Mrig
データがA1にあると仮定して、区切り幅の列にテキストを使用し、区切り記号としてカンマを選択します。セルが分割されたら、それらをすべて選択し、アルファベット順に並べ替えます。次に、別のセルの使用で、
=A1 & ", " & B1 & ", " C1
などです。これをVBAで(あなたのタグごとに)したいのであれば、マクロを記録しながら、あなたの必要に応じて編集するのが良い出発点になります。
EDIT
これはかなりされるものではないが、その出発点は、各行を実行するVBAを使用します。
Dim i As Integer, lastRow As Integer, curRng As Range
lastRow = Range("A10000").End(xlUp).Row
For i = 1 To lastRow
Cells(i, 1).Select
Set curRng = Range(ActiveCell, ActiveCell.End(xlToRight))
curRng.Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=curRng, _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange curRng
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
Next i
どのように私は、列ごとにアルファベット順に並べ替えるのですか?この例ではB1がニューヨークになり、C1 ChicacoとD1 Los Angelesになります。 B1 Chicago、C1 LA、D1 NYになるにはどうすればいいですか?私は450.000の行を持っていて、セルにはそれぞれ1〜4の値を持つセルがあります。私は行ごとに並べ替えが必要です – user30058
再度カンマ区切りリストを作成するには、JOIN機能を使用し、その後、あなたが望む任意の方法で配列をソート、配列の最初の店にあなたのカンマ区切りリストをSPLIT関数を使用します。例えば
:あなたが関数にセルから値の文字列を保存し、コンマのリスト分割をループする必要が
myArray = SPLIT(Cell.Value, ",")
Call SomeSortFunction(myArray)
myString = JOIN(myArray, ",")
Cell.Value = myString
:
Array = Split(yourString, ",")
次にそれをループ:
For i = 0 To UBound(Array)
各値の最初の文字は、
Left(Array(i), Len(Array(i)) - 1)
アルファベット順に並べ替えることができます。値を交換するにはSUBSTITUTE()関数を使用できます。
- 1. Excelのアルファベット順の並べ替え
- 2. アルファベット順に並べ替え
- 3. アルファベット順に並べ替え
- 4. アルファベット順に並べ替え
- 5. アルファベット順の並べ替え
- 6. アラビア語をアルファベット順に並べ替え
- 7. JTreeノードをアルファベット順に並べ替え
- 8. JSONをアルファベット順に並べ替え
- 9. アルファベット順にバックボーンコレクションを並べ替える
- 10. アルファベット順にタクソン(ブランド)を並べ替え
- 11. 角度マルチセレクトドロップダウン|アルファベット順に並べ替え
- 12. アルファベット順に並べ替えるC++
- 13. javascriptでアルファベット順に並べ替え
- 14. Javaでアルファベット順に並べ替え
- 15. BFSでアルファベット順に並べ替え
- 16. アルファベット順にアルファベット順に並べ替えます。
- 17. ドロップダウンリストのアルファベット順の並べ替え
- 18. アルファベット順の辞書の並べ替え
- 19. ルア - アルファベット順のテーブルの並べ替え
- 20. アルファベット順の配列の並べ替え
- 21. アルファベット順の配列の並べ替え
- 22. アルファベット順のチェックボックスリストの並べ替え
- 23. NSSortDescriptorアルファベット順の並べ替え
- 24. アルファベット順のC#並べ替えリスト
- 25. PHP:アルファベット順のZIP並べ替え
- 26. アルファベット順と姓でアルファベット順に並べ替える方法
- 27. 文字列のアルファベット順とアルファベット順の並べ替え '
- 28. アルファベット順、大文字で並べ替え
- 29. 2番目の列に従って数値順とアルファベット順に並べ替え
- 30. テーブルのセル値を取得し、アルファベット順に並べ替え
は明らかにあなたが要求するものを行うマクロのために、この記事を参照してください:https://www.reddit.com/r/excel/comments/3okezz/sorting_words_in_an_excel_cell_by_alphabetical/ –