Excel。VBA。CSVファイルを追加した後に並び替えをしてみたら、並ばない?
<VBA フリガナ PHONETIC関数>
日々の売上データなどをコピーして、
マスターファイルに貼り付ける作業をしているそうなのですが、
ちょっと困ったことがあるとのこと。
なんでも、そのマスターファイルを使って店舗ごとの売上集計をしたいので、
小計を行うには、キーとなるフィールド。
つまり店舗ごとに並び替えをおこなってから、小計を行う必要があるのですが、
なぜか、昇順でも、降順でも、並び替えをしても、うまく並んでくれなくて、
小計をするのが大変で困っているとのこと。
次のようなデータがあります。
では、実際に確認してみましょう。
CSVファイルのデータをコピーして、Excelファイルに貼り付けます。
問題なく貼り付きましたね。
それでは、Noを振りなおして、店舗名を昇順で並び替えをしてみましょう。
なんと、大阪がひとつにまとまっておりません。
なぜ、このようなことになってしまうのかというと、
H列にフリガナという列を作ってみると原因がわかるようになります。
では、H2にPHONETIC関数ダイアログボックスを表示しましょう。
参照は、C2 を入力して、OKボタンをクリックしましょう。
その後、オートフィルで数式をコピーします。
なお、数式は、
=PHONETIC(C2)
フリガナが表示されましたが、どうなりましたでしょうか?
なんと、オオサカとフリガナが表示されているものと、
大阪となっているものに分かれていますよね。
原因は、先ほどのCSVファイルのデータ。
Excelは、入力するとその入力の際の情報を保持するようになっているので、
PHONETIC関数を使うと、その入力情報を表示するのですが、
CSVファイルなど、入力していない場合は、基本的に入力情報を持っておりません。
そのため、このようなことが起こってしまったわけです。
ですから、並び替えをしたときに、大阪はひとつに集まらないので、
小計が出来ないということになったわけです。
このような場合は、各店舗の小計を求めたい場合には、ピボットテーブルを使うと、
こんなことも気にしないで、算出することが出来ますよ。
ということでもいいのですが、小計はともかく、並び替えをしたい場合は、
フリガナを振らなければ、並び替えが出来ません。
ふりがなの編集で、一つずつ入力していては、時間が掛かりすぎます。
そこで、VBAを使って解決して行きます。
開発タブのVisual Basicをクリックしましょう。
新しいモジュールの▼をクリックして、その中にある、
「標準モジュール」をクリックして、エディタを表示します。
Sub ふりがな()
Range("c2:c42").SetPhonetic
End Sub
と入力し、VBAを閉じます。
Rangeは、範囲選択ですね。
SetPhoneticは、その範囲にフリガナ情報を設定します。
では、マクロを実行してみましょう。
H列をみると、なんと、大阪だったものが、オオサカに変わっています。
つまり、フリガナを振りなおすことが出来たのです。
このように、ちょっと、VBA知っておくと便利ですね。