最近では、Excelで会員名簿や商品リストなどの一覧表を作ることが多くなりました。一覧表を作ると、例えば会員名簿の場合は退会や休会、商品の場合は生産中止や販売終了、得意先一覧の場合は取引中止のように一覧表から削除しなければならないことがあります。このとき、誤って削除して上書き保存をしてしまうと、削除してしまったデータを復元することができず大変なことになります。
初心者のなかには、誤ってデータを削除するのを避けるため、行全体をグレーで塗りつぶしたり、行を非表示にしたりと、とんでもない方法で管理している人がいるようです。おそらく正しい削除の方法が分かっていないのではないかと思われます。
そこで、今回は、誤った削除の方法の例、論理削除と物理削除の違い、Excelで削除フラグを用いて管理する方法とそのメリット・デメリットについて解説します。
目次
- 1.勝手に削除してはいけない
- 2.書式で削除を表現するのは絶対禁止!
- 3.削除フラグのメリット
- 4.補足:入力フォームの場合
- 5.片付けできないからゴミがたまる問題
- 6.常にフラグを意識しなければならない問題
- 7.最終的な処理方法を事前に決めておくこと
- 8.さいごに:フラグの是非よりフラグを知ることが大事
1.勝手に削除してはいけない
問題
次の会員名簿で、諸事情により4行目の会員(会員番号1003)が退会することになったたので、何も確認せずに行を削除しようとしている。この問題点を述べなさい。
解説
会員名簿に載っている会員の情報が不要になった場合は削除すればよいですが、すぐに削除するのは間違いです。退会を「検討しているだけ」の場合や退会しようとしたが取り消したい場合、会員データを削除してはいけませんが、誤って削除して上書き保存をしてしまうと復元することは原則として不可能です。少し時間をおいてから削除するべきです。
また、何も確認せずに削除するのも間違いです。例えば、会員番号と氏名をコピーして、別のシートにリンク貼り付けをします。
元のシートの会員情報のセルを参照する計算式が入力されます(参考:【Excel関数】シート間の参照、複数シートの計算と串刺し、3D集計)。
元の会員名簿で行削除します。
参照元を削除したので、計算式は参照のエラー「#REF!」となります。
同様に、VLOOKUP関数等を用いて、この会員名簿のデータを検索しながら表を作成していた場合は、過去の記録がエラーで見れなくなってしまいます。
特に他の人と共有して使うExcelファイルで安易にデータを削除すると、他のデータに影響が出るだけでなく、第三者に多大な迷惑をかけるおそれがありますので、十分注意しなければなりません。
行を削除するときには次の点を確認してから行うようにし、できるだけ行削除しないで済む方法を考えるべきです。
- 退会者が復活する可能性が絶対に無いといえるか
- 退会者を過去の記録(アーカイブ)として残す必要が無いか
- 他のデータやExcelファイル等に影響が出ないか
2.書式で削除を表現するのは絶対禁止!
正しい削除の方法を知らないと、自分勝手な「削除」の表現をしてしまいます。勝手に削除のルールを作って、間違った方法を他人に強制するのはもってのほかです。
(1)色を変えてはいけない
問題
次の会員名簿で、4行目の会員(会員番号1003)が退会したので行全体をグレーで塗りつぶした。この問題点を述べなさい。
解説
色を変えてもデータがあるので件数を求めると色を塗ったデータも含まれます。
- =COUNT(A:A)
Excelのセルはデータと書式を別々に管理しており、条件付き書式を設定しない限り、原則としてデータと書式は無関係です(データと書式の分離の原則、参考:【Excel】セルにはデータと書式の2つの情報が別々に保存されている)。退会したという情報(データ)を、塗りつぶしの色を変えること(書式)によって表現するのは、データと書式の分離の原則に反しており、間違いです。
セルの塗りつぶしのほか、取り消し線、文字を薄くするなど、書式でデータの状態(有無)を表現してはいけません。データはデータ、書式は書式であることをしっかりと理解しましょう(参考:【Excel初心者】セルの色やフォントに「意味」を持たせるのは間違いです)。
(2)行を非表示にしてはいけない
問題
次の会員名簿で、4行目の会員(会員番号1003)が退会したので行を非表示にした。
さらに、非表示にした理由を明記し、再表示しないように周知徹底した。この問題点を述べなさい。
解説
非表示をした行は、再表示することが可能です。
非表示(Hidden)は行に対する書式の一種です。根拠となるデータが無いのに、書式だけを用いて特別な意味を表現してはいけません(参考:【Excel初心者】セルの色やフォントに「意味」を持たせるのは間違いです)。非表示によってデータは隠れたように見えますが、これを用いて「退会」を表現するのは間違いです。
また、コメントを付けて退会を表すのは問題外です。
リスト形式の表は行単位でデータを管理するものです(参考:【神Excel】8個の基本パターンで完全習得「リスト形式」の教科書)。退会の事実は、該当する行内のいずれかのセルに直接記述しなければなりません。
(3)図形で表現してはいけない
問題
次の会員名簿で、4行目の会員(会員番号1003)が退会したので直線を引いた。この問題点を述べなさい。
解説
直線は自由に移動することが可能です。
シートと図形は重なっているように見えますが、離れています。図形を描いてもシート上のデータは変わりません。集計や分析をするときに図形は一切関係ありません。むしろ、図形があったら邪魔です。
(4)見たら分かるというのは間違い
グレーにする、非表示にする、または直線を引くなど、見た目で何らかの意味を表すのはデータの集計または分析の妨げとなるため、絶対にやってはいけません。「見れば分かる」という考え方は迷惑行為以外の何物でもありません。
3.削除フラグのメリット
(1)削除=1とする
問題
次の会員名簿で、4行目の会員(会員番号1003)が退会したことを表すにはどのように入力すればよいか。また、退会者以外の会員を抽出しなさい。
解説
削除の列を設けます(通常は左端または右端にする)。
いったんすべての人について「0」と入力し、退会者に「1」を入力します。
すべての人を空欄にして、退会者に1と入力するだけでも良いです。
オートフィルタを設定して、削除の列で0または空白の人を抽出すれば、退会者以外の会員を抽出することができます(参考:【Excel】オートフィルタの設定と解除、条件にあう行を抽出する方法の総復習)。
Excelでは、YES・NOを、1と0の数値で表します。1を入力することを「フラグを立てる」といい、特に削除を表すフラグのことを「削除フラグ」(Deletion Flag)といいます。
削除フラグは削除する行を1とし、それ以外の行を0または空欄にします。
退会者だけの一覧(削除データの一覧)を抽出することも可能です。
また、SUM関数で合計をすると削除件数を求めることができます。
- =SUM(F:F)
*補足*
ちなみに、通常の非表示とフィルタによる非表示は性質が異なります。詳しくはこちらの記事をご覧ください。
(2)物理削除と論理削除の違い
問題
不要になった行を削除するのと、不要になった行のデータを残しながら削除フラグを立てるのでは何が違うか述べなさい。
解説
前述のように、不要になった行を削除して上書き保存をしてしまうと、削除したデータを再度復活させることができません。このように完全にデータを消去することを「物理削除」または物理的な削除といいます。この場合の「物理的」というのは実際に表からデータが取り除かれているという意味です。
これに対して、削除フラグを立てることによって、削除対象の行であることを表す削除の方法を「論理削除」または論理的な削除といいます。この場合の「論理的」というのは表からデータを取り除かず、「削除対象」というマークを付けることによって削除されたものとみなすという意味です。
*どうしても分からない人のための補足*
出席していない学生は「物理的な欠席」です。物理的に出席していても、授業中に寝ている学生を欠席扱いにするのは「論理的な欠席」です。欠席の事実は無いけど欠席と同等のものとみなして評価しているからです。
論理削除の場合、実際には削除していないので、フラグを変えるだけで復活させることができます。簡単に言えば「仮の削除」です。せっかく入力したデータを削除してしまうのはもったいないので、仮の削除で済ませてしまおうという考え方です。
特に、次のような場合には物理削除ではなく、論理削除をするべきです。ただし、個人情報保護法等の法令や規則によってデータを破棄する義務がある場合を除きます。
- データを復元する可能性がある場合
- 過去のデータを記録(アーカイブ)として残す場合
- 他のデータやExcelファイル等で利用している可能性がある場合
- 物理削除/論理削除のどちらが適切かが分からない場合
(3)抽出したデータのコピー
問題
オートフィルタを用いて、削除フラグが立っていないデータを抽出した。これをコピーして新規シートに貼り付けなさい。
解説
行を選択してコピーします。
退会者を除くデータで別の資料を作るときには、別のシートまたはブックに貼り付けます。オートフィルタの場合、非表示の行はコピーの対象にはなりません(参考:【Excel】オートフィルタモードの効果とコピー貼り付けとの関係)。
(4)条件付き書式
問題
削除フラグを立てた行に自動で色が付くように条件付き書式を設定しなさい。
解説
行を選択します。
削除の列が1のときにセルの塗りつぶしをします。列固定の複合参照にします。
- =$F2=1
削除フラグを立てると自動的にグレーになり、削除フラグを無くすと自動的に塗りつぶしがなくなります。前述のように、フラグを立てずに書式だけで削除を表すのは間違いですが、フラグを条件とする条件付き書式を設定するのは正しいです。
4.補足:入力フォームの場合
データベースシステムで、商品データや個人情報を入力する画面(入力フォーム)には、登録や削除ボタンのほかに、削除をする/しないを選択できることがあります。これも削除フラグです。
削除ボタンを使って削除するとデータベースシステムから完全にデータが消えてしまい、原則として復活することはできません(物理削除)。また、過去のデータが参照できなくなるおそれがあります。
これに対して、「削除する」を選択して上書き保存をすれば、集計からは除外されますが、データは残っているのでフラグを変えるだけで復活させることができます(論理削除)。
5.片付けできないからゴミがたまる問題
問題
次の商品一覧表は過去の販売実績と連携しているため、販売終了の商品を物理削除することができない。そこで、削除フラグを立てて管理している。この問題点を述べなさい。
解説
販売する商品の種類がそんなに変わらない場合は削除フラグを立てるだけで良いですが、商品の入れ替わりが激しい場合、販売終了する商品のデータがどんどんたまっていきます。そして、この管理を続けていくと、現在販売している商品の数よりも、削除フラグが立っている商品数のほうが多くなります。
現在の売上を分析するのに過去の商品のデータも参照しなければなりません。また、過去の商品と現在の商品が混ざっていて検索しにくくなります。これはゴミを片付けていない部屋と同じです。論理削除はあくまで「仮の削除」なので、このまま放置していいというわけではありません(詳しくは後述)。
*補足*
この点について、削除フラグ=ゴミ箱を絶対に用いるべきではないという極端な意見もあるようですが無理です。ゴミ箱が無いと不便な場合もあるのです。少なくともExcelの初心者にゴミ箱の完全撤去を求めるのは不可能です。削除データがごく少数でとりあえず削除しておけばOKという状況であれば、削除フラグを用いても差し支えありません。
6.常にフラグを意識しなければならない問題
問題
現在の会員のうち、生年月日が1980年以降の会員を抽出して、その人数を求めなさい。
解説
オートフィルタで生年月日が1980年1月1日以降の会員を抽出すると7名ですが、削除フラグが立っている会員が2名います。
削除フラグが立っていない現在の会員は5名です。
Excel関数の場合、1980年以降のデータを数えるにはCOUNTIF関数を用いて求めます。
- =COUNTIF(D2:D13,">=1980/1/1")
削除フラグが立っていない現在の会員だけをカウントするにはCOUNTIFS関数を使います。このように抽出や集計をする際には必ず削除フラグの有無を意識しなければなりません。
- =COUNTIFS(D2:D13,">=1980/1/1",F2:F13,"")
7.最終的な処理方法を事前に決めておくこと
(1)有効期限を決める
問題
次の商品一覧表を作成し、販売終了の商品には削除フラグを立てることにした。このときの注意点を述べなさい。また、このシートをコピーして、削除フラグを立てた行を物理的に削除しなさい。
解説
前述のとおり、論理削除は仮の削除なので、期限を決めて処理の仕方をあらかじめ決定しておきます。例えば、5年ごとに販売終了の商品データを削除する、もしくはアーカイブとして別のファイルへ移すなどの方法を決めておきます。複数の人と共有している場合は、最終的な処理方法について事前に検討して、文書で残しておきます。
シートをコピーします(参考:【Excel】シートの管理とズーム、ウィンドウ枠固定と解除、ウィンドウ分割)。削除フラグで抽出します。
行削除します。
フィルタをクリアします。これで片付けができました。
(2)フラグの代わりに日付を用いる
問題
次の会員名簿で、退会者をいったん論理削除し、退会後3年経過した者を別のシートに移動することにした。この削除フラグは適切と言えるか。
解説
削除フラグは原則として1と0で表すため、削除する・しないの2択しかありません。削除フラグを見ただけでは削除をした日が分からないので、3年前に退会したものだけを抽出することができません。
また、さきほどの売上一覧表の場合、販売終了の商品をすべてアーカイブにしてしまうと昨年、一昨年との売上比較等をするときに集計できなくなるおそれがあります。販売を終了しているからと言ってすぐに物理削除をしてしまうのは適切ではありません。
不要となったデータのうち、特に古いデータだけアーカイブとして別の場所に移したい場合、削除フラグを用いる代わりに削除日付を入力します。
退会日を入力しておけば、退会後3年経過した者を抽出することが可能となります。
(3)フラグの代わりにステータスを用いる
問題
次の会員名簿で、退会や休会、病気療養中の会員など実際に活動していない会員を論理的に削除している。この削除フラグは適切と言えるか。
解説
削除フラグを見ただけでは削除の理由が分かりません。項目名は削除ではなく「退会」のほうが分かりやすいです。
データを削除する場合、削除の理由が1つとは限りません。そこで、削除フラグを用いる代わりに、削除の理由やデータの状態を表す列を設けます。このようにデータの状態を表す項目のことをステータス(状態表示status)といいます。
削除をする理由を別表にして、削除区分コードを入力する方法もあります。
ステータスと日付を併用するのが最も良い方法ですが、単に削除フラグを立てるだけの作業と比較するとものすごく手間が増えるので、必要に応じて使い分けることが大事です。
8.さいごに:フラグの是非よりフラグを知ることが大事
削除フラグを使うべきかどうかについては賛否両論あります。しかし、Excelを業務で使用している人のなかで、「削除フラグ」を知っている人の割合はごくわずかです。多くの人は、削除フラグを知らないのです。
初心者が、Excelを使ってリストを管理するときは、まずフラグの立て方を勉強するべきです。そして、削除フラグのメリットとデメリットを知ったうえで、正しい削除の方法を検討するべきです。
解説は以上です。