• ベストアンサー

EXCELふりがな、並び替えでなく順位表示

EXCELで氏名データがあります。 このデータを氏名順に並び替えるのではなく、 例えば 安藤さん・・・1 渡辺さん・・・4 田中さん・・・3 石川さん・・・2 と、ふりがなで見たあいうえお順の順位で表示させる事は 可能でしょうか? 案外需要がありそうな事例ですが、調べてもふりがな順に並び替える やり方しかヒットしませんでした。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.7

A1からA4に安藤から石川まで記入済みとして。 各セルにはちゃんと振り仮名がある前提で。(キチンと振り仮名を表示して確認すること) B1に =SUMPRODUCT((PHONETIC(INDIRECT("A"&ROW($A$1:$A$4)))<PHONETIC(A1))*1)+1 以下コピー。

july-seven
質問者

お礼

すごい!すごすぎる!! これほどのスッキリとした式で ふりがなデータを持った漢字の場合はもとより ふりがなそのものの場合でも、希望通りの結果を得ることが出来ました。 私から補足するのはおこがましいですが、念のため。 データがB列の場合は、 ・$A$1:$A$4 ・A1 を直すのはもちろんですが、 INDIRECT("A"→"B" というふうにすればOKですね。 keithinさん、ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (6)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

文字コード順なら以下のような関数で簡単に文字コードの順を表示できますが、ふりがな情報となると(PHONETIC関数は特殊な関数で配列数式にできないので)直接順位を表示することはできません。 =COUNTIF($A$2:$A$100,"<="&A2) 氏名データがA2以下に並んでいる場合、それらの氏名のフリガナをB列に「=PHONETIC(A2)」と入力しておき、C2セルに以下の数式を入力すればその順位を表示させることができます。 =COUNTIF($B$2:$B100,"<="&B2)

すると、全ての回答が全文表示されます。
  • chonami
  • ベストアンサー率43% (448/1036)
回答No.5

No.2です。 すみません、間違えちゃった。 ショートカットはAlt+Shift+↑キーです。 これを押すとフリガナ情報のない文字にもとりあえずのフリガナが振られます。

すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 先程の回答No.3において書き忘れていた事が御座いましたので > 但し、氏名がコピー&貼り付けで入力されている場合(添付画像における6行目の例)には、フリガナのデータが最初から存在しておりませんから、フリガナではなく、元の漢字表記が現れます。 の後に、次の文面を追加させて頂きます。  ですから、もし、PHONETIC関数でフリガナが表示されなかった場合には、その行のA列に入力されている氏名を、キーボートを使って打ち直す様にして下さい。(或いは、B列にフリガナを直接入力してしまうのも良いかも知れません)

すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 回答No.2様の仰る様に氏名が手入力されている場合以外は、氏名の情報だけでふりがな順を決める事は無理です。  おそらくVBAを使ったとしても同様ではないかと思います。  例えば、「河野」は「こうの」と「かわの」という複数の読み方で読む事が出来ますから、例えば「河野」と「木下」の両方が並んでいた場合、どちらを順位が上とすれば良いのか判らない事になります。  ですから、例えば次の様にされては如何でしょうか?  今仮に、氏名データがA2以下に並んでいて、それらの氏名のフリガナをB列に全角のカタカナで入力しておき、その順位をC列に表示させるものとします。  まず、C2セルに次の様な関数を入力して下さい。 =IF(INDEX($B:$B,ROW())="","",IF(OR(INDEX($B:$B,ROW())<"ア",INDEX($B:$B,ROW())>"ン"),"?",COUNTIF($B:$B,"<"&INDEX($B:$B,ROW()))+1-(INDEX($B:$B,ROW())>$B$1)*($B$1<"ア")-COUNTIF($B:$B,"<ア")))  そして、C2セルをコピーして、C3以下に貼り付けて下さい。  これで、"B列にフリガナが全角のカタカナで入力されている場合に限り"フリガナの順番で数えた順位がC列に表示されます。  因みに、A列に入力されている氏名が、もし手入力されているものである場合(コピーで入力されたものは不可)には、B列のセルに次の関数を入力しておきますと、フリガナが自動的に表示されます。 =PHONETIC(INDEX($A:$A,ROW()))  但し、氏名がコピー&貼り付けで入力されている場合(添付画像における6行目の例)には、フリガナのデータが最初から存在しておりませんから、フリガナではなく、元の漢字表記が現れます。

すると、全ての回答が全文表示されます。
  • chonami
  • ベストアンサー率43% (448/1036)
回答No.2

ひょっとして、どこかからコピーしてきたデータでフリガナ情報がないという事でしょうか? それでしたら、手動でフリガナをつけるか、VBAでつけるか、となりますかね。 また、該当セルを選択してAlt+↑(矢印キー)を押すとフリガナが出ますがその場合望んでいる読みでつくとは限りませんので修正が必要になります。(VBAの場合も同様)

すると、全ての回答が全文表示されます。
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

言っておられることがよくわかりませんが、入力した文字にふりがな情報があれば、ふりがな順になります。 手入力したものはふりがな情報も含んで入力されるので、ふりがな情報があるかどうかは、手入力したものか、なにか他のアプリケーションからコピーしてものかで変わります。 並べ替え時にふりがなを使うかどうかは、並べ替えダイアログのオプションより設定できます。

すると、全ての回答が全文表示されます。

関連するQ&A