• ベストアンサー

エクセルでの並び替えでひらがなの後にカタカナにするには

エクセルの並べ替えでは、ひらがなだけでの50音順、その後に、カタカナだけでの50音順、というような並べ替えをすることができないのでしょうか?ふりがなを使わない設定にしても文字コード順になるだけで解決できません。並べ替える方法があれば教えて頂けないでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • uk-016
  • ベストアンサー率33% (21/62)
回答No.2

自分も同じようなことで悩みました。それでひねり出した方法ですが・・・ 1、並び替えたい表の先頭にもう一つ列を加える。(自分は「優先順位」という名前にしています。) 2、ひらがなの前のセルには「1」を、ひらがなの前の列には「2」を入力。 3、並び替えの設定で、最優先させる列を今新たに作った列に指定し、2番目に優先させる列をひらがなカタカナ順にしたい列を指定する。 4、見た目が悪ければその列の幅を限りなく狭めればOKです。 本当はもっと専門的な方法があるのでしょうが、素人なのでこれ以上はわかりません。体裁や手間を気にしなければいけると思います。

takoniku
質問者

お礼

いやー同じことで悩んだ人がいるとなんか安心します。とても助かりました。 もうちょっと日本語にしっかりした対応をオフィスソフトやWindowsに求めたいですね。この程度の並べ替えですらこのような手段や、VBAを覚えなきゃいけないなんて・・・ ありがとうございました!

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

文字コードの順序に反したソートをしたければ、文字コードで修正コードを作らないとなりません。 一番楽なのは、#2のご回答にもある、ひらがなは0,カタカナは1を入れた1列増やすことです。その列を優先キーとしてソートすることです。1語句は、ひらがな、カタカナ混じりは無いとして、第1字目がひらがなか、カタカナかは =IF(CODE(LEFT(J1,1))<CODE("ァ"),1,0)などで判別できそうです。 アは小字のア。

takoniku
質問者

お礼

ありがとうございました。一度やってみます。

  • agricap
  • ベストアンサー率40% (79/195)
回答No.1

もっと簡単な方法もあるかもしれませんが、ここは少々強引に・・・ VBAを使います。まず標準モジュールに以下のコードを貼り付けます。 Function SortString(s As String)      If StrConv(Left(s, 1), vbKatakana) <> Left(s, 1) Then     '1文字目がひらがなの場合     SortString = "0" & s   Else     '1文字目がカタカナの場合     SortString = "1" & s   End If    End Function 並べ替える文字列がA列1行目からあるとすれば、セル1Bに、 =SortString(A1)として、これを2行目以降にもコピーします。 B列はソート用に作った文字列で、A列の文字列が平仮名ではじ まるなら前に0をつけ、カタカナではじまるなら前に1をつけた ものです。 次に、A列とB列を、B列をキーとして並べ替えます。 後はB列を消して完成です。

takoniku
質問者

お礼

ありがとうございます。 すいません。初心者なのでVBAはまだやったことがないのです。でも、近々やってみようと考えているので、そのときこの回答を生かしたいと思います。

関連するQ&A