• ベストアンサー

Excelで五十音順に並べ替えたい

Excelで以下のような表がある場合に、五十音順に並べ替えをしたいのですがどのようなやり方で並べ替えすることができるのでしょうか? どなたかアドバイスよろしくお願いいたします。 -------------- 名称 -------------- (株)アイウエオ (株)イノウエ (株)ウラシマ (株)阿部商店 (株)石井商店 (有)アイウエオ -------------- このように文字コード順に並んでいます。これを -------------- 名称 -------------- (株)アイウエオ (有)アイウエオ (株)阿部商店 (株)石井商店 (株)イノウエ (株)ウラシマ -------------- このように”(株)”や”(有)”を抜かした五十音読み順にしたいのです。 自動ふりがな機能を使えれば簡単なのですが、データベースから貼り付けたデータなので、自動ふりがな機能は使えません。 また、諸事情でそのデータベースを操作することはできません。 Excelのバージョンは2002です。 よろしくお願いいたします。

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

  • ベストアンサー
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.9

Excel VBAなら、GetPhonetic メソッドという便利なものが あります。 これを使えば簡単にフリガナを取得できますよ。 ただし、全部が正確なフリガナを取得できるわけじゃありませんが、 手で入力するよりはよっぽど楽ですね。

XN12A
質問者

お礼

アドバイスありがとうございます。 以下のマクロを作成し、対処しました。 Sub 自動ふりがな()   With Range("M2:M4964")     .SetPhonetic     .Phonetics.Visible = True   End With End Sub

その他の回答 (8)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.8

No.7です。 前述のKAKASIを利用して、テキストファイルをひらがなに一括変換する手順を紹介します。 1) KAKASIをダウンロード、インストール KAKASI - 漢字→かな(ローマ字)変換プログラム http://kakasi.namazu.org/ の、「Win32用 バイナリパッケージ」「Web」から、 「kakasi-2.3.4.zip」をダウンロード、解凍し、 推奨設定の"C:\kakasi"に展開する。 C:\kakasi C:\kakasi\bin C:\kakasi\doc … また、「README-ja.win32」を参考に環境変数の設定を行う。 2) 読み込み用ファイル作成 Excelからコピペなり、csvなりしてtest.txtを作成。 -----test.txt----- (株)アイウエオ (株)イノウエ (株)ウラシマ (株)阿部商店 (株)石井商店 (有)アイウエオ ---------- c:\kakasi\bin にコピーする。 3) 変換処理 [スタート]-[プログラム]-[アクセサリ]-[コマンドプロンプト] cd c:\kakasi\bin でディレクトリ移動。 kakasi -KH -JH < test.txt > out.txt で変換したout.txtを作成。 変換結果 -----out.txt----- (かぶ)あいうえお (かぶ)いのうえ (かぶ)うらしま (かぶ)あべしょうてん (かぶ)いしいしょうてん (あり)あいうえお ---------- (株)(有)は外しておいた方が吉。 後はExcelに戻して並べ替えなど。

参考URL:
http://kakasi.namazu.org/
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.7

かなカナ漢字混じり文書→ローマ字、ひらがな のような処理は、テキストを音声読み上げさせるような処理で利用されます。 研究などの分野でよく利用されるものとして、以下のものがあります。 KAKASI - 漢字→かな(ローマ字)変換プログラムhttp://kakasi.namazu.org/ 少なくとも、コマンドプロンプトで、 阿部商店→アベショウテン 石井商店→イシイショウテン への変換はOKでした。 ただ、VBからですと利用するのが難しいです。 間にCで作成したライブラリなどを挟めば、何とかなる気もするのですが… -- こちらは結果的にファイルがやり取りできるような書き込みが禁止されています。 質問者さんにフリーのC開発環境をセットアップしてもらって、ソースを貼り付けて…ってのも果てしなく長い手順だし。

参考URL:
http://kakasi.namazu.org/
  • zinchan
  • ベストアンサー率49% (97/197)
回答No.6

 このご質問に対する対応の問題点は、漢字交じりの文字列を含めて、50音順に並べ替えしなければならないのですが、そのままでは、「=PHONETIC」関数を用いても、セルに元々ふりがな情報がふくまれていないので、ふりがなに変換できないことです。ふりがな情報を付与させれば可能になります。  とても面倒ですが方法はあります。ただし、この方法は、データ量が多いと泣けてくる方法です。  データのふりがなをつけ直し、並べ替える方法です。  まず、店舗名が入力されている列の、データが入ったセルにカーソルを置き、画面の、メニューやアイコンバーがある上部のセル内容が示されるところか、セル自体を、ダブルクリックして、ふりがなを表示したい漢字部分を反転させて選択します。  ふりがなを表示させたい部分を反転させたまま右クリックして、「ふりがなの編集(E)」をクリックします。  セルの上部に、ふりがなが表示されるので、合っていればそのままエンター、変更の必要があればふりがな部分をクリックして変更します。  ふりがなを付ける必要のあるセルを全て上記の操作でふりがな情報を付与させます。  このとき、(株)、(有)には、ふりがな情報をつけない方がいいでしょう。  上記作業が終わったら、作業列を2列用意します。  仮にA列の2行目から店舗名があるとしたら、B列の対応するセルに、=PHONETIC(A2)と入力します。ふりがなの店舗名が返ってきます。  C列に=REPLACE(B2,SEARCH("(",B2,1),SEARCH(")",B2,1),"")と入力して、(株)または(有)に含まれる、「(」から「)」までの文字列の位置を割り出し、その間の文字列を、空文字列で置き換えます。  これで、(株)や、(有)が、先頭だろうが最後だろうが、その文字を抜いたふりがなだけが抽出されます。  あとは、データの最終行まで、B2、C2の関数をコピーすれば、(株)や(有)を除いた店舗のふりがなだけがずらっと表示されますので、メニューのデータ→並べ替えで、C列を最優先されるキーに指定して、昇順でokをし、並べ替えさせれば、目的を達することができます。  データ数が多数ある場合、ふりがな情報を付与させるのが大変なので、マクロを作成可能であれば、思ったより早くできるかもしれません。

XN12A
質問者

お礼

長文ありがとうございます。 zinchanさんのやりかたですと、結局5000件のふりがなを入力しなければならないことは変わらないのでなんとかその手間を省けないかと思っております。

回答No.5

>手入力は約5000件あるので現実的に無理です。” (株)”や”(有)”を取り除いた後、テキストエディタ等に持って行って、「よみよみ」などのふりがな(読み仮名)作成ソフトにペーストすればふりがなは得られるのでは?

参考URL:
http://www.vector.co.jp/magazine/softnews/040303/n0403035.html
XN12A
質問者

お礼

アドバイスありがとうございます。 なるほどこのようなソフトがあるのですね! Excel関数で使えれば一番幸せなんですけどね。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

こんにちは。maruru01です。 No.2の方の方法で「(株)」などを取っても、おそらくダメでしょう。 なぜなら、例えば、「石井商店」を、「イシイショウテン」と読むかどうかなんて、Excelに分かるわけないからです。 No.1の方のように、ふりがな用の列を作成して、手で入力していくしかありません。 これ以上簡単な方法はないでしょう。

XN12A
質問者

お礼

アドバイスありがとうございます。 そうなんです(株)や(有)を取り除いたところで文字コード順にソートするので意味がないんですよね。 手入力は約5000件あるので現実的に無理です。

  • guruguru2
  • ベストアンサー率29% (39/132)
回答No.3

#1さんと似ているのですが、(株)と「アイウエオ」を別のセルにしたらどうでしょうか?2列を選択してソートをかければ出来ますよ(^^)。 ※ただし列を選択する時、会社名の入っている列から選択すること!!

回答No.2

作業列で処理しましょう。 A1がデータとしてB1が空いていればB1に =MID(A1,4,LEN(A1)-3)といれて、下までコピー これで(株)や(有)の4文字を抜かしたデータになりますので、B列をキーにして並べ替えます。

回答No.1

原始的な方法ですみません。 データの量にもよりますが 私は 手入力で アイウエオ ウラシマ イノウエ と入力するセルを作り、 それで並び換えをした後 入力したセルの幅を0にしています。