前回前々回の連載で、住所を「都道府県」と「それ以降の住所」に分割する方法を紹介した。この場合、参照元の住所データは不要になるが、これを安易に削除するとエラーが発生してしまう。かといって、不要なデータをいつまでも表示しておくのは非効率的だ。そこで今回は「不要になった列をどう処理するか?」について紹介していこう。

関数や数式が参照しているデータは削除できない

関数や数式を使って文字列を処理した結果、「参照元の列」が不要になるケースもある。このような場合に「列の非表示」や「値の貼り付け」を活用すると、無駄なデータを表示しておく必要がなくなり、限られた画面サイズを有効に活用できる。今回は、その具体的な操作手順を紹介していこう。

  • 「列の非表示」と「値の貼り付け」の活用方法

前回と前々回の連載では、住所から「都道府県」と「それ以降の住所」を抽出する方法を紹介した。具体的な処理手順をいくつか紹介したが、その結果はいずれも以下の図のようになる。この場合、C列とD~E列に住所が重複して表示されるため、「もうC列は必要ない」と考える方もいるだろう。

  • 住所を「都道府県」と「それ以降」に分割した表

ということで、試しにC列を削除してみよう。C列の列番号を右クックして「削除」を選択する。

  • 関数や数式が参照する列を削除すると・・・

すると、以下の図のように「#REF!」のエラーが発生してしまう。

  • 「#REF!」のエラーが発生する

数式や関数の仕組みを理解している方なら、このエラーの理由を容易に想像できるだろう。「都道府県」と「それ以降の住所」は、削除する前のC列を参照して作成されている。よって、C列を削除すると「参照元のセル」がなくなってしまうため、「#REF!」のエラーが発生する。

要するに、C列を削除することはできない訳だ。エラー状態から復旧するには、「Ctrl」+「Z」キーを押して「C列を削除する操作」を取り消しておく必要がある。

  • C列を復旧した表

これでエラーを解消できたが、やはり住所を2回も表示しておくのは非効率的だ。限られた画面サイズを有効活用するためにも、無駄なデータは排除しておくべきである。その方法を2つ紹介していこう。

(1)「列の非表示」により対応する方法

ひとつ目の方法は、「列の非表示」によりC列を見えなくしてしまう方法だ。この操作は、C列の列番号を右クリックして「非表示」を選択すると実行できる。

  • 列を非表示にする操作

すると、C列が表示されなくなり、住所の重複表示を回避できるようになる。ちなみに、この操作はC列を削除するものではなく、一時的に「非表示」にする操作となる。これは、列番号がA、B、D、E、・・・とC列を抜かして表示されていることからも確認できるだろう。

  • C列を非表示にしたワークシート

C列は見えないだけでデータ的には実在しているため、数式や関数は問題なく「C列のデータ」を参照できる。よって、エラーは発生しない。このように「列の非表示」で問題を解決することも可能であるが、この方法にはデメリットが存在することに注意しなければならない。

たとえば、このデータ表をExcelの初心者と共有したとしよう。初心者の方は「列の非表示」という機能があることすら知らないケースが多いので、住所の変更があった際に「都道府県」や「それ以降の住所」を直接修正してしまうかもしれない。

  • データを直接修正する操作

このような作業が繰り返されると、D列・E列は「関数が入力されているセル」と「データが直接入力されているセル」が混在する状況になる。これが後々、大きなトラブルを引き起こす可能性は十分にある得る。

本来であれば、C列で住所を修正し、そこから関数で「都道府県」と「それ以降の住所」を自動抽出する、という形にしなければならない。そのためにはC列を再表示して作業を進める必要がある。

念のため、C列を再表示するときの操作手順を紹介しておこう。「非表示にした列」を再表示するときは、その列を含むように列を選択し、右クリックメニューから「再表示」を選択する。

  • 「非表示にした列」を再表示する操作(1)

もしくは、B列とD列の間にある二重線のうち「右側の縦線」を右方向へドラッグしても構わない。

  • 「非表示にした列」を再表示する操作(2)

すると、C列が再表示され、もとの住所データを修正できるようになる。

  • 再表示した列でデータを修正

このように住所を変更するときは、もとの住所データ(C列)を再表示し、そこでデータを修正するのが基本となる。「都道府県」や「それ以降の住所」は、C列の内容に応じて自動的に新しいデータに更新される、というのが本来のあるべき姿だ。

でも、このような仕組みをExcelの初心者に教える作業そのものが「面倒な作業」になってしまうかもしれない。そればかりか、列を非表示にしていることを忘れてしまい、自分でも同様のミスを犯してしまう可能性すらある。

このように考えると、「列の非表示」はトラブルの原因になりやすい対処方法といえる。

(2)「値の貼り付け」により対応する方法

続いては、コピー&ペーストにより「関数」を「単なるデータ」に上書きする方法を紹介していこう。ただし、普通にコピー&ペーストすると、関数は関数のままコピーされてしまう。よって、少しだけ特殊なコピー&ペーストを行う必要がある。

まずは、関数(数式)が入力されている列全体を選択し、「Ctrl」+「C」キーでコピーする。今回は、関数により「都道府県」を抽出している列(D列)をコピーした。

  • 関数(数式)が入力されている列を「Ctrl」+「C」キーでコピー

続いて、D列全体を選択した状態のまま、「貼り付け」コマンドにある「値」を選択する。

  • 「貼り付け」コマンドの「値」でデータを貼り付け

すると、関数(数式)の「結果」だけがD列に上書きされる。この時点で、D列に入力されている内容は「関数」ではなく、単なる「文字列データ」に置き換えられる。試しに適当なセルを選択してみると、数式バーに「文字列データ」がそのまま表示されるのを確認できるだろう。

  • 関数(数式)の結果がデータとして貼り付けられる

同様の作業を「それ以降の住所」を抽出するE列でも実行する。これで「それ以降の住所」を抽出する関数を、単なる「文字列データ」に上書きすることができる。

  • 同様に「値の貼り付け」でコピー&ペーストする

あとは、普通にC列を削除するだけ。D列、E列は関数ではなく、単なる「文字列データ」に置き換わっているので、C列を削除してもエラーは発生しない。

  • 不要になった列の削除

  • 不要な列を削除した表

このような方法で不要になった「参照元の列」を削除することも可能だ。この場合は単なる「文字列データ」の羅列になるため、初心者でも扱いやすい、シンプルなExcelファイルになる。

ただし、抽出元のデータが完全に削除されてしまうことに注意しなければならない。イレギュラーな住所などが原因で「都道府県」や「それ以降の住所」を正しく取得できていなかった場合、「間違って取得したデータ」もしくは「エラー」がそのままコピーされてしまう。さらに「もとの住所データは削除済み」という状況に陥ってしまう。

この場合、その人の住所データを損失してしまう恐れがある。先ほど紹介した「列の非表示」の場合、関数の処理に何らかのミスがあったとしても、もとの住所(C列)が残っているためトラブルに対応することが可能だ。一方、もとの住所(C列)を削除してしまった場合は、データがExcel内に存在しなくなってしまうため、トラブルに対応する方法がなくなってしまう可能性がある。

よって、「関数の結果」だけをコピー&ペーストして「参照元のデータ」を削除するときは、全データを正しく取得できていることを十分に確認しておく必要がある。この確認ができていれば、「列の非表示」よりも使い勝手のよい表に仕上げられるだろう。

今回、紹介した2つの手法を利用するときは、それぞれのメリットとデメリットを十分に把握したうえで最適な手法を採用する必要がある。これらのポイントを把握しておくことが重要だ。