プロが教えるわが家の防犯対策術!

データの中に
●漢字
●アルファベット
●ひらがな
●記号
などがあり、読み方順に降順・昇順表記をしたいと思っています。

例えば、
【アルファベットなら】
「ABC」を『えーびーしー』

【漢字なら】
「田中」を「たなか」

【記号なら】
「@」を「あっと」

として、データを並べ替えたいと思っています。

理想は、ランダムなデータを


いろは
ABC
田中

のように出来ないのでしょうか?

出来るとすれば、どの様な設定をすればよろしいのでしょうか?

教えてください。

A 回答 (2件)

(1) 「ふりがなの表示」ボタンでルビを表示させます。


(2) ルビが希望通りでないところは、「ふりがなの編集」で手作業で修正します。
(3) ルビ表示が邪魔なら、「ふりがなの表示」ボタンを再度押します。

以上で、ルビによるソートができるようになります。
    • good
    • 0

こんばんは!



単純な並び替えでなく、読みでの並び替えとなるとかなり厄介です。
表示に関してはVBAになりますが、一例です。

↓の画像のようにSheet2に対応表を作成しておきます。
A列は記号・アルファベットを、B列にはその読みを「ひらがな」で作成しておきます。
この下準備ができた上で、
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から
Dim i As Long, k As Long, c As Range, str As String, wS As Worksheet
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
.Range("B:B").ClearContents
For i = 1 To .Cells(Rows.Count, "A").End(xlUp).Row
If Left(.Cells(i, "A"), 1) Like "[一-黑]" Then
.Cells(i, "B") = StrConv(WorksheetFunction.Phonetic(.Cells(i, "A")), vbHiragana)
ElseIf Left(.Cells(i, "A"), 1) Like "[あ-ん]" Then
.Cells(i, "B") = .Cells(i, "A")
Else
For k = 1 To Len(.Cells(i, "A"))
str = Mid(StrConv(.Cells(i, "A"), vbNarrow), k, 1)
Set c = wS.Range("A:A").Find(what:=str, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
.Cells(i, "B") = .Cells(i, "B") & c.Offset(, 1)
End If
Next k
End If
Next i
End With
End Sub 'この行まで

マクロを実行すると、Sheet1のB列に画像のような表示となります。
これでB列をキーとして、並び替えが可能になります。

※ 漢字に関しては直接入力したデータでないとちゃんと読みが表示されません。
(別ファイル等からコピー&ペーストした場合は音読みになる場合がある)

※ 1セル内には「ひらがな」「漢字」「アルファベット」などは混在しないで、1種類だけとします。
仮に「ひらがな」や「アルファベット」内に漢字が混在しているとそれこそ面倒なことになります。

とりあえずはこの程度で・・・m(_ _)m
「Excelで降順、昇順表記」の回答画像2
    • good
    • 0

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