アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2010を使っております。
VlOOKUP関数をベースにした数式で市町村名を取得した列(D列です)があるのですが、その列で五十音順のソートをかけると所々、デタラメな順番になってしまいます。
取得する元の市町村名のデータにはフリガナが入っているのですが、ソートができない理由を確認するためにPHONETIC関数でD列のフリガナを取得しようとしたところ、何も値が取得できませんでした。

どのようにすれば、D列で五十音順のソートができるのか、ご教示願います。

A 回答 (6件)

今、思いついたのですが、こんな方法でできます。


VLOOKUPの代わりに、INDEX関数を使えばよいのです。

例えば、
A1 に検索値があるものとし、Sheet2 に郵便番号から住所データがあるとします。

=PHONETIC(INDEX(Sheet2!$A$1:$F$300,MATCH(A1,Sheet2!$A$1:$A$300,0),5))
    • good
    • 1
この回答へのお礼

ありがとうございます。
さすが!という感じの回答ですが、その方法だとやはり別に列が必要になるんですよね。。
こういう場面にぴったりの関数はないということですね。

お礼日時:2017/06/02 17:34

だいぶ時間が経過しているので、すでに自己解決していそうな気がするのですが・・・。



そもそもVLOOKUP関数では、ふりがな情報は取得できません。よって、市区町村名(D列)には、ふりがな情報が無いので、純粋に漢字コード順で並び替えられてしまいます。

やり方はいろいろあると思いますが、ふりがなの列を作って、その列で並び替えるのが一番簡単なような気がします。
ふりがなの情報が明示されることにより、例えば「キタウミミチ(北海道)」のように間違った読みが設定されている箇所を見つけることもできるし…。
    • good
    • 0
この回答へのお礼

ありがとうございます。
やはりそれが普通の処理方法なんですね。

文字を数字に変換する関数などもあるので、officeのバージョンが上がれば数式で入った戻り値をテキストにする関数ができるかもしれませんね。

お礼日時:2017/06/02 17:27

割り込みします。


数式のままからでは出来ません。

数式で、漢字が出ていれば、それは一旦テキストにして、ふりがなの文字列を改めて取ればよいです。100%完全にふりがなが取れているとは限りませんが、並べ替えぐらいには適用するはずです。

'//
Sub PutinPhoneticInText()
Dim c As Range
For Each c In Selection 'マウスで範囲を選択
 '一旦数式を文字列に変えてしまうのです。
 c.Value = c.Text
 c.SetPhonetic
'' 確認するためには、Phonetic 関数で出せます。
' 'c.Offset(, 1).FormulaLocal = "=PHONETIC(RC[-1])"
Next
End Sub

これで、まったく取り出せない場合は、また別な方法があります。

また、もし、厳密に元の通りにする場合は、VLOOKUP関数を使わないで、マクロでD列に貼り付けたほうが早いです。
    • good
    • 0
この回答へのお礼

遅くなってしまい申し訳ありません。
コードを作っていただきありがとうございます。

お礼日時:2017/06/02 17:24

No.2ですが、先程のURLだけでは情報が不足していましたので、もう少し丁寧に書きます。



(1) マクロ作成
VBEを起動し、
挿入→標準モジュールで、

sub フリガナ()
Selection.SetPhonetic
End Sub

という簡潔なコードを記述。

(2) マクロ実行
ふりがなを設定したい漢字のセルを全て選択して、作成したマクロを実行(Alt+F8を押して、ウィンドウからマクロを選びます)

以上。
「開発」ウィンドウの出し方等は、分からなければ、ご自身でお調べください。

マクロが不要なブックなら、保存して閉じるときに警告が出るかもしれませんが、無視してOKです。
焦って不十分な情報を出しまして、すみませんでした。
    • good
    • 0
この回答へのお礼

ありがとうございます。
よくわかりませんが、ここで質問させていただく前にもphoneticでフリガナ情報を取得しようとしたのですが、何も取得できませんでした。(phontic関数を入れたセルは空白になっています)
なのでVBAでも取得できないのではないでしょうか。

お礼日時:2017/05/24 20:38

今のままではPHONETIC関数が効かないので、やり方はコチラ↓



https://oshiete.goo.ne.jp/qa/4429031.html

あとはNo.1さんと同じ回答です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
しかし、今回は、関数式の入った列について五十音順でソートしようとしているので、質問に対する回答としては少し違うように思います。

お礼日時:2017/05/24 20:35

漢字でソートしようとしているなら、読みでのソートにはなりません。

フリガナも明記しましょう。
カナであれば、五十音順になります。これは、文字コードでソートしているからです。
カナの場合は、順序は五十音順と一致しているので可能です。
    • good
    • 0
この回答へのお礼

漢字で入力された列でもフリガナの情報を持っている場合は、ソートが可能です。
多くの場合は、表示されていないだけでフリガナ情報を持っていると思います。

お礼日時:2017/05/24 20:32

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