こんにちは。
先日、Excelを受講中の生徒様からこんな質問をいただきました。
「表の[金額]列を降順に並べ替える練習をしていたら、
[金額]列だけが降順に並べ替わって、
他の列のデータがついてこなくてバラバラになってしまいました。
どうしてこうなるんですか?」
これはExcelでよく起こる“並べ替え事故”の典型例です。
■ なぜデータがバラバラになるのか?
生徒様は、[金額]列を降順にしたかったため、
•[金額]列だけを範囲選択
•その状態で[降順]をクリック
という操作をされていました。
一見正しそうですが、実はここが事故ポイントです。
Excelは「選択した範囲だけを並べ替える」という動作を優先します。
そのため、列全体を選択してしまうと、「この列だけ並べ替えたいんだな」 と判断し、他の列との関連性を無視してしまうのです。
■ 正しい並べ替えの方法
並べ替えを安全に行うには、次のどちらかの操作が必要です。
•[金額]列の セルを1つだけ選択 して[降順]をクリック
•表全体を範囲選択 して[並べ替え]から列と順序を指定する
このどちらかであれば、Excelは表全体をひとまとまりとして認識し、行単位で正しく並べ替えてくれます。
■ 「選択範囲を拡張しますか?」の意味
特定の列の範囲だけを選択して並べ替えようとすると、Excelは次のような警告を出します。
「選択範囲に隣接するセルにもデータが入力されています。 選択されていないデータは並べ替えられません。操作を選択してください。」
選択肢は2つ。
○ 選択範囲を拡張する
○ 現在選択されている範囲を並べ替える
ここで 「選択範囲を拡張する」 を選べば事故は防げます。
逆に 「現在選択されている範囲を並べ替える」 を選ぶと、列だけが動いてしまい、データが崩壊します。
生徒様いわく、
「この選択肢必要ですか?こんなの選んだら崩れるに決まってる!トラップとしか思えない!」
…確かにそう感じますよね。
■ なぜ“トラップ”のような仕様になっているのか?
私たちは「隣接しているデータ=表」と考えますが、Excelはそうではありません。
Excelの基本思想は、
•セルは独立している
•選択した範囲は独立した領域
•ユーザーの選択を優先する
というものです。
つまりExcelからすると、
「わざわざその範囲を選んだなら、その部分だけ操作したいのかもしれない」
という判断になるわけです。
もともとExcelはデータベースソフトではなく、 「計算用のマス目(スプレッドシート)」として作られた歴史があるため、 “表として扱う”という発想は後付けなのです。
■ 実務で並べ替え事故を防ぐ4つの方法
実務で安全に並べ替えを行うには、次の4つを覚えておけば十分です。
• 表全体を選択して並べ替える
• 並べ替えたい列の セル1つだけ を選択する
• 可能なら テーブル化 しておく
• 警告が出たら、基本的に 「選択範囲を拡張する」 を選ぶ
これでデータが崩れる事故はほぼ防げます。
■ 逆に「隣接列のデータはそのままに、特定の列だけ並べ替えたい」場合は?
もちろん、隣接していても関連性がなく、 「この列だけ並べ替えたい!」という珍しいケースもあるかもしれません。
その場合は、あえて列を範囲選択して並べ替えるという“トラップ”を逆手に取ればOKです。
並べ替えのやり方がわからない場合はスタッフにお気軽にお尋ねくださいね♪

