• ベストアンサー

名字と名前の間にあるスペースを無視して並び替えしたい

例えばフリガナが1つの列に オカ タロウ オカ ハナコ オカノ タロウ オカノ ハナコ と打ってあって並び替えた時 オカ タロウ オカノ タロウ オカノ ハナコ オカ ハナコ というふうにスペースを無視して並び替えしてほしいのですが実際は オカ タロウ オカ ハナコ オカノ タロウ オカノ ハナコ となってしまいます。 スペースを消した作業列を別に作れば並び替え出来るのですが 作業列を使わず 並び替える方法は無いものでしょうか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

>作業列を使わず並び替える方・・ エクセルに限らず、どんなソフトでもソートをするときは、メモリにある「値」で、コンピュターの内部コード順にソートするのです、それも機械語レベルでは昇順しかできなかったはずです。スペースを省いたり、降順でソートができるとすれば、そのソフトがそういうプログラムを組んだり、ビット反転修正データを作っています。その場合かならず、元のデータを修正したデータをメモリ内に 作ります。 エクセルの場合も途中のスペースを無いものとして、ソートするサービスは提供してくれてません。将来のバージョンではわかりませんが。そのサービスが取り上げられた場合は、内部メモリで修正データ が一時的に作られるはずです。 ですから現在は、作業列を使わないと、できません。 VBAでやれば、配列という一時的メモリに修正キー(並べ替えの元になる文字列)を作って、ソートできますので、ソートが終われば、配列データは捨てるので、セルのデータとしては見せません。しかし 作業メモリを使うことは確実です。 そういう理由があり、 (1)操作レベルでは無理 (2)プログラムを組めばできる。ただし作業域をシート上に見せないようにできるだけ。

nadasosou
質問者

お礼

まとめてお礼を言わせていただきます。 無理ということがわかっただけでも良かったです。作業列を作って並び替えしたいと思います。 ありがとうございました

その他の回答 (2)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

Office XP ですが・・・。 フリガナ機能を使って、行えば何とかなりますが列を増やすより、難しいですよ。 どうしてもなら、検討してみてください。 並び替えを実行する前にフリガナの組換えをVBAで行った方が楽かな?

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 >作業列を使わず並び替える方法は無いものでしょうか? VABでしかないと思います。しかし、仮に、VBAでも、どこかで、補助列を作って、ワークシートの機能を使って並べ替えするのが一般的です。純粋に作業列を使わず、メモリの中で処理するとなったら、なかなかむつかしいものだと思います。 補助列を使ってはならない理由が、どのような理由によるものか明らかにしたほうが、よりご希望に沿えるのではないかと思います。

関連するQ&A

専門家に質問してみよう