目次
はじめに
これまで住所録などの「個人情報」を活用する方法について、いくつかご紹介してきました。
外部関係者による個人情報流出が相次いでいることや、経費削減のために、自分達でそれらを加工しようと思われている方もいらっしゃることかと思います。
その中で、面倒な作業の一つに「Excelデータの精査」、その手の業界用語でいうところの「クリーニング」があります。
専用ソフトを使用したり、複雑なマクロを組んだりするのがいいというのは誰でもわかりますが、そこまで「Excel力」がない!という方も多いのではないでしょうか。
「住所録活用」という視点で、今回から3回ほどを目安に(あくまでも目安ですので、場合によっては前後してしまいますので、その点はご了承ください)、「初心者向け」の「Excel関数を利用したクリーニング」をご紹介していきたいと思います。
まず第1回となる今回は、「余分なスペースの削除」について、解説いたします。
他のシステムから生成したExcelデータには「余分なモノ」がいっぱい?
各種データベースや筆まめなどの年賀状作成ソフト等々、他のシステムを利用して作成した住所録を、ExcelやCSVなどで書き出したとき、思いもしなかったものがデータの中に隠れていることが多々あります。
例えば、データベースから書き出されたこのようなExcelデータを支給されたとします。
一見すると、とくにこれといった特徴のない、普通のExcelデータのように見えますが……。
まず、赤で色づけしたところに、余分なスペースが含まれています。
これらのものをそのままでデータを利用しようとすると、見た目が悪くなったり、肝心の部分が表示範囲内に収まらなくなるなどのトラブルの元にもなりかねません。
余分な部分がどこにあるのかは、そのセルにカーソルを合わせてダブルクリックしてみれば、わかりますが、しかし数十件程度ならともかく、これが何百、何千ともなり、さらにそれぞれのセルに対して行っていかなければ発見できないとなると、非常に面倒で非効率です。
そこで、効率的に作業するために登場するツールが「関数」というものです。
これを対象となる部分に作用するようにすることで、自動的にデータを加工することができます。
「スペース」を削除する関数「TRIM」とは?
今回は余分スペースを取り除いてみましょう。
ここでは「TRIM」という関数を使用します。
単語と単語の間にあるスペースを1つだけ残して、後は削除する働きを持っています。
文字間のスペースについては、全角2個以上の場合は全角1個を、半角2個以上の場合は半角1個を残します。
全角・半角混じりの場合は、半角1個を残すようになっています。
では、先ほどのデータを実際に加工してみましょう。
まず、関数の効果を作用させる隣の列に加工用の列を増やします。
C列を選んで、右クリック→挿入を行えば簡単に増やせます。
C1にはタイトルを入れますが、とりあえず「姓2」とでもしておきます。
この新たにつくったC列に「TRIM」を設定します。
C2にカーソルをあわせ、「数式」タブ→文字列操作のプルダウンメニューから「TRIM」を選びます。
「関数の引数」というウィンドウが表示されますので、B2をクリックします。
B2と同じ内容が表示されます。
C2のセルにはTRIM関数の数式が置かれているというわけです。
C2の関数をB列のデータ分だけコピーします。
そのままドラッグしていけば簡単にコピーできます。
「姓」部分のスペースは一目ではわからないので、同じ内容が2列にわたりできたように見えます。
引き続き、「名」など、他の部分にもTRIM関数を適用させていきます。
「姓」で行ったのと同様に、隣に1列増やしてそこに関数を設定していきます。
このままだと紛らわしいので関数適用前の元列は削除しますが、ちょっと待ってください!
もし、このまま元列を削除してしまったら、現在適用されている関数のリンクが外れてしまい、「♯REF!」というエラー表示が列全体に出て、使い物にならないデータとなってしまいます。
このあと、他のアプリケーションで使用するためにも、関数の数式が設定されている列全体を「文字データ化」してあげる必要があります。
対象となる列をドラッグで選択し、右クリック→コピー
選択部分が点滅する点線で囲まれますので、再度右クリック→貼付オプション「値」を選びます。
こうすることで、関数の数式が文字列に上書きされます。
これまで「=trim(列)」が表示されていた数式バーに、「文字」が表示されているのがわかるでしょうか。
他の関数を使うときでも、適用された後には必ずこの操作を行わなければならないので、覚えておいてください。
他の列にも同じようにこの操作を行い、さらに不必要になった元列は削除します。
とりあえず元列との区別のためにつけておいた表題は元のものに入力し直しておいた方がいいでしょう(むろん、そのままでも構いませんが、後で他のアプリケーションで利用するときに不便なことが多いと思います)。
意外にバカにできない「余分スペース削除」
簡単な関数で行うことができる「余分スペースの削除」作業ですが、意外にこれがバカにできない作業なのです。
このExcelデータは実際に起こった事例を再現していますが、これらの中に「余分スペース」が隠れています。
どこかというと……。
A2のセルのところで、黒くなっているところは全てスペースです。
「3-2-1」以下から「小松ハイツ201」まで、「改行」も含まれていますが延々とスペースが連なっています。
このデータからそのまま宛名印字などを行おうとしたら、文字数の関係から住所の一部がオーバーフローして表示されない危険性も出てきます。
普通にデータを目視するだけだとこのようなものを見逃してしまいがちですので、簡単な関数ではありますが、処理を行うことが重要だということがおわかりいただけたのではないでしょうか。
ただ、この例ですと不要な「改行」も含まれています。
この「改行を削除」するためには、別の関数をもう少し高度に活用しなければなりません。
これについては次回解説したいと思います。
おわりに
今回のポイントは
- 他のシステムから生成したExcelデータには「余分なモノ」がある。
- 余分なスペースを削除するには「TRIM」を使う。
- 関数を適用したら、最後に必ず「文字データ化」する。
の3つになります。
次回は「改行の削除」を通じて、もう少し高度な関数の活用について解説いたします。