人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelデータの並び替えの質問です。

列Aには、○○1丁目、○○2丁目という具合に、住所が2000件ほど「あいうえお順」に整列しています。

続いて、列Bには整列されていない住所が2000件あります。
内容はまったく同じなのですが、きちんと列Aと同じように整列していません。
列Bの並びを、列Aと同じようにしたいのです。

また、列C,D・・・以下には、丁目(列B)に付随したデータ(人口など)が入力されています。

何らかの関数かプログラムで、列B以下のデータを、列Aの並び方に合わせたいのです。
手動で並び替えるのに限界を感じています(笑)

うまくやる方法をご存知の方は、どなたか方法を教えていただけませんか?
VBAは経験がないのですが、ほかのプログラミング言語の経験が少しあります。


●質問者: southgate_01
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:Excel VBA あいうえお データ プログラミング言語
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● kn1967
●20ポイント

プログラムなど組まなくても通常操作だけで出来そうに思いますが、いかがでしょう?

■方法1 B列にもふりがなが存在する場合。

(並び替え1回)B列から一番右の列までを選択 → データ → 並び替え(最優先されるキーはA列) → オプション → フリガナを使う

■方法2 B列にはふりがなが存在しない場合。

(並び替え1回目)A列だけを選択 → データ → 並び替え → オプション → フリガナを使わない

(並び替え2回目)シート全体を選択 → データ → 並び替え(最優先されるキーはA列) → オプション → フリガナを使う

※ファイルをコピーして予備を残した状態でテストしてくださいね。

◎質問者からの返答

早速のコメントありがとうございます。

教えていただいたとおり、方法2で行ったのですが、思うとおりになりません。

AをBに合わせるのは出来るのですが、BをAに合わせることが出来ません。

どうも、漢字の音読み順に整列しているようです。


2 ● garyo
●20ポイント

>AをBに合わせるのは出来るのですが、BをAに合わせることが出来ません。

1. Aの左に列を挿入して1,2,3、・・・と連続データを入れておく

2. Aと左の列を一緒にして一度AをBにあわせる

3. Aの左の列とBとBの隣を選択して Aの左の列を使ってソートする

→これでAが元に戻る

4.Aの左の列を削除

1,DDD1丁目,AAA1丁目,1111

2,CCC1丁目,BBB1丁目,2222

3,BBB1丁目,CCC1丁目,3333

4,AAA1丁目,DDD1丁目,4444

4,AAA1丁目,AAA1丁目,1111

3,BBB1丁目,BBB1丁目,2222

2,CCC1丁目,CCC1丁目,3333

1,DDD1丁目,DDD1丁目,4444

1,DDD1丁目,DDD1丁目,4444

2,CCC1丁目,CCC1丁目,3333

3,BBB1丁目,BBB1丁目,2222

4,AAA1丁目,AAA1丁目,1111

◎質問者からの返答

具体的な手順をありがとうございます。

私の認識不足で、

「AをBに合わせるのは出来るのですが、BをAに合わせることが出来ません。」

ここが間違っていました、AをBに合わせることが出来ていませんでした。

前提が正しければこの方法で出来るはずなのですが、すいません・・


3 ● kn1967
●10ポイント

方法2はどちらか一方を行うのではなく、

1回目でA列とB列以下を同じ行に位置させ、

2回目でシート全体をA列のあいうえお順に並び替える

というのが手順になっているのですが順番に行いましたか?

もしかして、A列にふりがなが存在していないので元のあいうえお順にならないということでしたら方法3をお試しください。

■方法3 A列にもふりがなが存在していない場合。

(準備)A列の左側(あるいは右側)に1列挿入して上から順に1,2,3,・・・と連番を入れる。

(並び替え1回目)A列と連番を入れた列を選択 → データ → 並び替え → オプション → フリガナを使わない

(並び替え2回目)シート全体を選択 → データ → 並び替え(最優先されるキーは連番を入れた列) → オプション → フリガナを使う


4 ● Wildboar
●10ポイント

1番目の回答とコメントを読んで・・

A列をB列に合わせることができるのであれば、

まず、A列とB列の間に1列挿入して、そこに1から2000まで縦に連番で数字を入れてください。そして、A列と、あらたに挿入した列(B列になりますね)を選択して、上記方法2で、A列をキーにして並べ替えをします。

この段階で、A列とc列(もとのB列)以降が揃うはずですので、全体を選択して、B列をキーにして並べ替えます。

最後に、あらやに挿入したB列を削除すれば、お望みの表が完成するのではないでしょうか。


5 ● りくっち
●10ポイント

私だったら…まず列Aを正しい並び順のデータとして扱ってナンバリングし、

このデータを元にVLOOKUPを使って列Bの住所に列Aのナンバーをつけるという作業をしてから並び替えますね。

また、最終的には列Aは必要ないのではないですか?

(同じ住所データが二列並んでいる必要性はないような…)

なので、列Aを別シートに転記して利用するようにします。

以下手順です。


=VLOOKUP(B1,並び順,2,0)


列Aは並び替えが終わったら削除してもいいですし、列の非表示を使っても良いかと。




今後住所データの追加が生じるようなら、Sheet1のA列にデータを追記して、

A列のみ並べ替えた後、増分のナンバリングをし、

「挿入」→「名前」→「定義」の画面から参照範囲を訂正して追加をすれば数式はそのまま使えます。


また、漢字の音読み順になっているということですが、

既存の文字列のフリガナを取り出すという関数もあります。

A1に「東京都」と入っているとして、B1に

=PHONETIC(A1)

と入力するとB1には「トウキョウト」と表示されます。

これを一旦全て表示させてから正しい読みがなになおしてソートすれば正しい並び順になると思います。



以上ご参考まで。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ