複数の値を持つセルをカンマで区切った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. JSONをアルファベット順に並べ替え
- 7. JTreeノードをアルファベット順に並べ替え
- 8. アルファベット順にタクソン(ブランド)を並べ替え
- 9. javascriptでアルファベット順に並べ替え
- 10. アルファベット順にアルファベット順に並べ替えます。
- 11. ルア - アルファベット順のテーブルの並べ替え
- 12. アルファベット順の配列の並べ替え
- 13. アルファベット順の配列の並べ替え
- 14. NSSortDescriptorアルファベット順の並べ替え
- 15. 2番目の列に従って数値順とアルファベット順に並べ替え
- 16. アルファベット順にコンボボックスの値を並べ替え
- 17. 複数の値を昇順と降順で並べ替える
- 18. MS Excelの式:長さとアルファベット順のデータの並べ替え(降順)
- 19. 配列を並べ替える、そのようにアルファベット順に
- 20. リストボックスの項目をアルファベット順に並べ替え
- 21. Netfix QueueSorter(chrome) - グループをアルファベット順に並べ替えるスクリプトのヘルプ
- 22. 配列の内容をアルファベット順に並べ替え
- 23. 複合数値の並べ替え
- 24. SHELL出力をアルファベット順に並べ替え
- 25. C#でアルファベット順に配列を並べ替える
- 26. 2d配列をJavaでアルファベット順に並べ替え
- 27. サブコレクションのレコード数順に並べ替え
- 28. jQuery/Tablesorter:二次アルファベット順の並べ替えを維持する
- 29. 挿入ソートアルゴリズムを使用したアルファベット順の並べ替えc#
- 30. アルファベット順に並べ替え、グループで表示
は明らかにあなたが要求するものを行うマクロのために、この記事を参照してください:https://www.reddit.com/r/excel/comments/3okezz/sorting_words_in_an_excel_cell_by_alphabetical/ –