- ベストアンサー
エクセルで並べ替え:空白を先頭にできませんか
- EXCEL2002で住所録を作っています。データの中には番地2と番地3がない(空白)もの、または番地3のみない(空白)ものがあります。空白のあるデータが下段になるため、空白のあるデータを上段に持ってきたいと思います。
- 番地が23番地の12の203などとなりますが、これを3つのセルに分けて入力してあります。番地1が23、番地2が12、番地3が203です。番地順に並べ替えを実施すると、空白のあるデータが下段になります。
- エクセル初心者ですが、マクロなどの解決策があれば教えていただきたいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
住所列として G2: =C2&TEXT(D2,"00")&TEXT(E2,"-0;;;")&TEXT(F2,"-0;;;") のように数式を追加して下向けにコピー,この列の昇順で全体を並べ替えてみます。 実際にあるデータに応じて,少し数式をチューニングした方がベターと思います。
その他の回答 (4)
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばD列に番地1が、Eセルに番地2が、F列に番地3があるとしたら作業列としてG2セルには次の式を入力して下方にオートフィルドラッグします。その上でG列を選択して昇順で並べ替えをすればよいでしょう。 =IF(D1="","",D1+E1/MAX(E:E)/1000+F1/MAX(F:F)/1000000)
お礼
希望通りの並べ替えができました。 1行目がタイトルだったので、はじめは与えられた式をそのままコピーして エラーがでました。D1をD2などと修正してうまくいきました。 番地2と番地3を”小数点化”して、番地1のあとにくっつけるというもの のようですが、関数式の内容はまだ十分理解できていません。 ありがとうございました。 みなさん、色々な回答をすばやくお寄せいただきビックリしています。 それぞれなるほどと大変参考になりました。 どうもありがとうございました。
- MackyNo1
- ベストアンサー率53% (1521/2850)
添付画像のレイアウトなら、例えば補助列のG列(G2セル)に以下の式を入力し、下方向にオートフィルし、この列を基準に昇順に並べ替えてみてください。 =TEXT(D2,"000")&TEXT(E2,"000")&TEXT(F2,"000")
お礼
うまく並べ替えができました。 番地1から番地3のそれぞれを3文字のテキストに変換し、 それらをつなげて9文字とするわけですね。 並べ替え実施の時、「・・・ テキスト形式の数値が含まれて・・・」云々 のダイアログが出て、少しとまどいますが、結果はOKでした。 アドバイスしていただいたこの考え方はいろいろ応用できそうです。 どうもありがとうございました。
- nattocurry
- ベストアンサー率31% (587/1853)
本来空白であるべきところに0を入力し、0を表示させないようにするのはどうでしょう? http://www.google.co.jp/search?num=100&hl=ja&rlz=1R2GGLL_jaJP388&q=excel+0%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%AA%E3%81%84&aq=0&aqi=g5g-r5&aql=&oq=excel+0%E3%82%92
お礼
NO.1の方と同様の考え方ということですが、いろいろな方法があるのですね。 勉強になります。ご紹介くださり、どうもありがとうございます。
- hatiboo
- ベストアンサー率42% (257/602)
空白が後になるみたいですね とりあえず簡単な方法として 白色文字で「0」を入力する方法は如何ですか?
お礼
まったく思いつかなかった発想で、びっくりしました。早速テストしました。うまくいきました。 なおこの住所録のデータを使ってハガキにWORDで差し込み印刷をします。そのテスト印刷を したところ、ゼロが印字されてしまいました。EXCELでの文字の色情報はWORDには渡されない のですね。残念です。なにか方法はないのでしょうか? エレガントな回答をいただきありがとうございました。
お礼
うまくいきました。 ”住所列”として町名から番地3までをつなげた文字列(松井23-12-101)を作るわけですね。 文字列にすると、並べ替えの序列は空白の方が文字より上位に来るということですか。 じつはこのデータからWORDへの差し込み印刷をしています。 その時この文字列をそのまま使うことができます。 ありがとうございました。