わえなび ワード&エクセル問題集

当サイトはWordとExcelの実力を鍛える最高水準の特訓問題集です。リンクを張るのは自由です。みんなで勉強しましょう!

初心者がExcelで「削除フラグ」のメリットとデメリットを本気で学ぶための勉強会資料

最近では、Excelで会員名簿や商品リストなどの一覧表を作ることが多くなりました。一覧表を作ると、例えば会員名簿の場合は退会や休会、商品の場合は生産中止や販売終了、得意先一覧の場合は取引中止のように一覧表から削除しなければならないことがあります。このとき、誤って削除して上書き保存をしてしまうと、削除してしまったデータを復元することができず大変なことになります。

初心者のなかには、誤ってデータを削除するのを避けるため、行全体をグレーで塗りつぶしたり、行を非表示にしたりと、とんでもない方法で管理している人がいるようです。おそらく正しい削除の方法が分かっていないのではないかと思われます。

そこで、今回は、誤った削除の方法の例、論理削除と物理削除の違い、Excelで削除フラグを用いて管理する方法とそのメリット・デメリットについて解説します。

目次

1.勝手に削除してはいけない

問題

次の会員名簿で、諸事情により4行目の会員(会員番号1003)が退会することになったたので、何も確認せずに行を削除しようとしている。この問題点を述べなさい。

f:id:waenavi:20200315102810j:plain

 

解説

会員名簿に載っている会員の情報が不要になった場合は削除すればよいですが、すぐに削除するのは間違いです。退会を「検討しているだけ」の場合や退会しようとしたが取り消したい場合、会員データを削除してはいけませんが、誤って削除して上書き保存をしてしまうと復元することは原則として不可能です。少し時間をおいてから削除するべきです。

f:id:waenavi:20200315102904j:plain

 

また、何も確認せずに削除するのも間違いです。例えば、会員番号と氏名をコピーして、別のシートにリンク貼り付けをします。

f:id:waenavi:20200315103721j:plain

f:id:waenavi:20200315103813j:plain

 

元のシートの会員情報のセルを参照する計算式が入力されます(参考:【Excel関数】シート間の参照、複数シートの計算と串刺し、3D集計)。

f:id:waenavi:20200315103915j:plain

 

元の会員名簿で行削除します。

f:id:waenavi:20200315103942j:plain

 

参照元を削除したので、計算式は参照のエラー「#REF!」となります。

f:id:waenavi:20200315104018j:plain

 

同様に、VLOOKUP関数等を用いて、この会員名簿のデータを検索しながら表を作成していた場合は、過去の記録がエラーで見れなくなってしまいます。

f:id:waenavi:20200315104057j:plain

 

特に他の人と共有して使うExcelファイルで安易にデータを削除すると、他のデータに影響が出るだけでなく、第三者に多大な迷惑をかけるおそれがありますので、十分注意しなければなりません。

f:id:waenavi:20200315104220j:plain

 

行を削除するときには次の点を確認してから行うようにし、できるだけ行削除しないで済む方法を考えるべきです。

  • 退会者が復活する可能性が絶対に無いといえるか
  • 退会者を過去の記録(アーカイブ)として残す必要が無いか
  • 他のデータやExcelファイル等に影響が出ないか

 

2.書式で削除を表現するのは絶対禁止!

正しい削除の方法を知らないと、自分勝手な「削除」の表現をしてしまいます。勝手に削除のルールを作って、間違った方法を他人に強制するのはもってのほかです。

(1)色を変えてはいけない

問題

次の会員名簿で、4行目の会員(会員番号1003)が退会したので行全体をグレーで塗りつぶした。この問題点を述べなさい。

f:id:waenavi:20200315105252j:plain

 

解説

色を変えてもデータがあるので件数を求めると色を塗ったデータも含まれます。

  • =COUNT(A:A)

f:id:waenavi:20200315104454j:plain

 

Excelのセルはデータと書式を別々に管理しており、条件付き書式を設定しない限り、原則としてデータと書式は無関係です(データと書式の分離の原則、参考:【Excel】セルにはデータと書式の2つの情報が別々に保存されている)。退会したという情報(データ)を、塗りつぶしの色を変えること(書式)によって表現するのは、データと書式の分離の原則に反しており、間違いです。

f:id:waenavi:20200315104852j:plain

 

セルの塗りつぶしのほか、取り消し線、文字を薄くするなど、書式でデータの状態(有無)を表現してはいけません。データはデータ、書式は書式であることをしっかりと理解しましょう(参考:【Excel初心者】セルの色やフォントに「意味」を持たせるのは間違いです)。

f:id:waenavi:20200315105113j:plain

 

(2)行を非表示にしてはいけない

問題

次の会員名簿で、4行目の会員(会員番号1003)が退会したので行を非表示にした。

f:id:waenavi:20200315105206j:plain

 

さらに、非表示にした理由を明記し、再表示しないように周知徹底した。この問題点を述べなさい。

f:id:waenavi:20200315105404j:plain

 

解説

非表示をした行は、再表示することが可能です。

f:id:waenavi:20200315105529j:plain

 

非表示(Hidden)は行に対する書式の一種です。根拠となるデータが無いのに、書式だけを用いて特別な意味を表現してはいけません(参考:【Excel初心者】セルの色やフォントに「意味」を持たせるのは間違いです)。非表示によってデータは隠れたように見えますが、これを用いて「退会」を表現するのは間違いです。

f:id:waenavi:20200315105653j:plain

 

また、コメントを付けて退会を表すのは問題外です。

リスト形式の表は行単位でデータを管理するものです(参考:【神Excel】8個の基本パターンで完全習得「リスト形式」の教科書)。退会の事実は、該当する行内のいずれかのセルに直接記述しなければなりません。

f:id:waenavi:20200315105902j:plain

 

(3)図形で表現してはいけない

問題

次の会員名簿で、4行目の会員(会員番号1003)が退会したので直線を引いた。この問題点を述べなさい。

f:id:waenavi:20200315110137j:plain

 

解説

直線は自由に移動することが可能です。

f:id:waenavi:20200315110311j:plain

 

シートと図形は重なっているように見えますが、離れています。図形を描いてもシート上のデータは変わりません。集計や分析をするときに図形は一切関係ありません。むしろ、図形があったら邪魔です。

f:id:waenavi:20200315110343j:plain

 

(4)見たら分かるというのは間違い

グレーにする、非表示にする、または直線を引くなど、見た目で何らかの意味を表すのはデータの集計または分析の妨げとなるため、絶対にやってはいけません。「見れば分かる」という考え方は迷惑行為以外の何物でもありません。

f:id:waenavi:20200315110616j:plain

 

3.削除フラグのメリット

(1)削除=1とする

問題

次の会員名簿で、4行目の会員(会員番号1003)が退会したことを表すにはどのように入力すればよいか。また、退会者以外の会員を抽出しなさい。

f:id:waenavi:20200315111007j:plain

 

解説

削除の列を設けます(通常は左端または右端にする)。

f:id:waenavi:20200315113454j:plain

 

いったんすべての人について「0」と入力し、退会者に「1」を入力します。

f:id:waenavi:20200315113645j:plain

 

すべての人を空欄にして、退会者に1と入力するだけでも良いです。

f:id:waenavi:20200315113708j:plain

 

オートフィルタを設定して、削除の列で0または空白の人を抽出すれば、退会者以外の会員を抽出することができます(参考:【Excel】オートフィルタの設定と解除、条件にあう行を抽出する方法の総復習)。

f:id:waenavi:20200315113807j:plain

 

Excelでは、YES・NOを、1と0の数値で表します。1を入力することを「フラグを立てる」といい、特に削除を表すフラグのことを「削除フラグ」(Deletion Flag)といいます。

削除フラグは削除する行を1とし、それ以外の行を0または空欄にします。

f:id:waenavi:20200315113900j:plain

 

退会者だけの一覧(削除データの一覧)を抽出することも可能です。

f:id:waenavi:20200315114118j:plain

 

また、SUM関数で合計をすると削除件数を求めることができます。

  • =SUM(F:F)

f:id:waenavi:20200315114144j:plain

 

*補足*

ちなみに、通常の非表示とフィルタによる非表示は性質が異なります。詳しくはこちらの記事をご覧ください。

 

(2)物理削除と論理削除の違い

問題

不要になった行を削除するのと、不要になった行のデータを残しながら削除フラグを立てるのでは何が違うか述べなさい。

解説

前述のように、不要になった行を削除して上書き保存をしてしまうと、削除したデータを再度復活させることができません。このように完全にデータを消去することを「物理削除」または物理的な削除といいます。この場合の「物理的」というのは実際に表からデータが取り除かれているという意味です。

f:id:waenavi:20200315114449j:plain

 

これに対して、削除フラグを立てることによって、削除対象の行であることを表す削除の方法を「論理削除」または論理的な削除といいます。この場合の「論理的」というのは表からデータを取り除かず、「削除対象」というマークを付けることによって削除されたものとみなすという意味です。

f:id:waenavi:20200315114545j:plain

 

*どうしても分からない人のための補足*

出席していない学生は「物理的な欠席」です。物理的に出席していても、授業中に寝ている学生を欠席扱いにするのは「論理的な欠席」です。欠席の事実は無いけど欠席と同等のものとみなして評価しているからです。

f:id:waenavi:20200315122438j:plain

 

論理削除の場合、実際には削除していないので、フラグを変えるだけで復活させることができます。簡単に言えば「仮の削除」です。せっかく入力したデータを削除してしまうのはもったいないので、仮の削除で済ませてしまおうという考え方です。

f:id:waenavi:20200315115036j:plain

 

特に、次のような場合には物理削除ではなく、論理削除をするべきです。ただし、個人情報保護法等の法令や規則によってデータを破棄する義務がある場合を除きます。

  • データを復元する可能性がある場合
  • 過去のデータを記録(アーカイブ)として残す場合
  • 他のデータやExcelファイル等で利用している可能性がある場合
  • 物理削除/論理削除のどちらが適切かが分からない場合

 

(3)抽出したデータのコピー

問題

オートフィルタを用いて、削除フラグが立っていないデータを抽出した。これをコピーして新規シートに貼り付けなさい。

f:id:waenavi:20200315115232j:plain

 

解説

行を選択してコピーします。

f:id:waenavi:20200315115327j:plain

 

退会者を除くデータで別の資料を作るときには、別のシートまたはブックに貼り付けます。オートフィルタの場合、非表示の行はコピーの対象にはなりません(参考:【Excel】オートフィルタモードの効果とコピー貼り付けとの関係)。

f:id:waenavi:20200315115442j:plain

 

(4)条件付き書式

問題

削除フラグを立てた行に自動で色が付くように条件付き書式を設定しなさい。

f:id:waenavi:20200315115755j:plain

 

解説

行を選択します。

f:id:waenavi:20200315115622j:plain

 

削除の列が1のときにセルの塗りつぶしをします。列固定の複合参照にします。

  • =$F2=1

f:id:waenavi:20200315115720j:plain

 

削除フラグを立てると自動的にグレーになり、削除フラグを無くすと自動的に塗りつぶしがなくなります。前述のように、フラグを立てずに書式だけで削除を表すのは間違いですが、フラグを条件とする条件付き書式を設定するのは正しいです。

f:id:waenavi:20200315115911j:plain

 

4.補足:入力フォームの場合

データベースシステムで、商品データや個人情報を入力する画面(入力フォーム)には、登録や削除ボタンのほかに、削除をする/しないを選択できることがあります。これも削除フラグです。

f:id:waenavi:20200315120013j:plain

 

削除ボタンを使って削除するとデータベースシステムから完全にデータが消えてしまい、原則として復活することはできません(物理削除)。また、過去のデータが参照できなくなるおそれがあります。

f:id:waenavi:20200315120056j:plain

 

これに対して、「削除する」を選択して上書き保存をすれば、集計からは除外されますが、データは残っているのでフラグを変えるだけで復活させることができます(論理削除)。

f:id:waenavi:20200315120137j:plain

 

5.片付けできないからゴミがたまる問題

問題

次の商品一覧表は過去の販売実績と連携しているため、販売終了の商品を物理削除することができない。そこで、削除フラグを立てて管理している。この問題点を述べなさい。

f:id:waenavi:20200315120548j:plain

 

解説

販売する商品の種類がそんなに変わらない場合は削除フラグを立てるだけで良いですが、商品の入れ替わりが激しい場合、販売終了する商品のデータがどんどんたまっていきます。そして、この管理を続けていくと、現在販売している商品の数よりも、削除フラグが立っている商品数のほうが多くなります。

f:id:waenavi:20200315120703j:plain

 

現在の売上を分析するのに過去の商品のデータも参照しなければなりません。また、過去の商品と現在の商品が混ざっていて検索しにくくなります。これはゴミを片付けていない部屋と同じです。論理削除はあくまで「仮の削除」なので、このまま放置していいというわけではありません(詳しくは後述)。

f:id:waenavi:20200315120733j:plain

 

*補足*

この点について、削除フラグ=ゴミ箱を絶対に用いるべきではないという極端な意見もあるようですが無理です。ゴミ箱が無いと不便な場合もあるのです。少なくともExcelの初心者にゴミ箱の完全撤去を求めるのは不可能です。削除データがごく少数でとりあえず削除しておけばOKという状況であれば、削除フラグを用いても差し支えありません。

 

6.常にフラグを意識しなければならない問題

問題

現在の会員のうち、生年月日が1980年以降の会員を抽出して、その人数を求めなさい。

f:id:waenavi:20200315121031j:plain

 

解説

オートフィルタで生年月日が1980年1月1日以降の会員を抽出すると7名ですが、削除フラグが立っている会員が2名います。

f:id:waenavi:20200315121642j:plain

 

削除フラグが立っていない現在の会員は5名です。

f:id:waenavi:20200315121723j:plain

 

Excel関数の場合、1980年以降のデータを数えるにはCOUNTIF関数を用いて求めます。

  • =COUNTIF(D2:D13,">=1980/1/1")

f:id:waenavi:20200315121753j:plain

 

削除フラグが立っていない現在の会員だけをカウントするにはCOUNTIFS関数を使います。このように抽出や集計をする際には必ず削除フラグの有無を意識しなければなりません。

  • =COUNTIFS(D2:D13,">=1980/1/1",F2:F13,"")

f:id:waenavi:20200315121844j:plain

 

7.最終的な処理方法を事前に決めておくこと

(1)有効期限を決める

問題

次の商品一覧表を作成し、販売終了の商品には削除フラグを立てることにした。このときの注意点を述べなさい。また、このシートをコピーして、削除フラグを立てた行を物理的に削除しなさい。

f:id:waenavi:20200315123335j:plain

 

解説

前述のとおり、論理削除は仮の削除なので、期限を決めて処理の仕方をあらかじめ決定しておきます。例えば、5年ごとに販売終了の商品データを削除する、もしくはアーカイブとして別のファイルへ移すなどの方法を決めておきます。複数の人と共有している場合は、最終的な処理方法について事前に検討して、文書で残しておきます。

シートをコピーします(参考:【Excel】シートの管理とズーム、ウィンドウ枠固定と解除、ウィンドウ分割)。削除フラグで抽出します。

f:id:waenavi:20200315124813j:plain

 

行削除します。

f:id:waenavi:20200315124900j:plain

 

フィルタをクリアします。これで片付けができました。

f:id:waenavi:20200315124934j:plain

 

(2)フラグの代わりに日付を用いる

問題

次の会員名簿で、退会者をいったん論理削除し、退会後3年経過した者を別のシートに移動することにした。この削除フラグは適切と言えるか。

f:id:waenavi:20200315125132j:plain

 

解説

削除フラグは原則として1と0で表すため、削除する・しないの2択しかありません。削除フラグを見ただけでは削除をした日が分からないので、3年前に退会したものだけを抽出することができません。

f:id:waenavi:20200315125326j:plain

 

また、さきほどの売上一覧表の場合、販売終了の商品をすべてアーカイブにしてしまうと昨年、一昨年との売上比較等をするときに集計できなくなるおそれがあります。販売を終了しているからと言ってすぐに物理削除をしてしまうのは適切ではありません。

f:id:waenavi:20200315131443j:plain

 

不要となったデータのうち、特に古いデータだけアーカイブとして別の場所に移したい場合、削除フラグを用いる代わりに削除日付を入力します。

f:id:waenavi:20200315132608j:plain

 

退会日を入力しておけば、退会後3年経過した者を抽出することが可能となります。

f:id:waenavi:20200315130649j:plain

 

(3)フラグの代わりにステータスを用いる

問題

次の会員名簿で、退会や休会、病気療養中の会員など実際に活動していない会員を論理的に削除している。この削除フラグは適切と言えるか。

f:id:waenavi:20200315125132j:plain

 

解説

削除フラグを見ただけでは削除の理由が分かりません。項目名は削除ではなく「退会」のほうが分かりやすいです。

f:id:waenavi:20200315131027j:plain

 

データを削除する場合、削除の理由が1つとは限りません。そこで、削除フラグを用いる代わりに、削除の理由やデータの状態を表す列を設けます。このようにデータの状態を表す項目のことをステータス(状態表示status)といいます。

f:id:waenavi:20200315131846j:plain

 

削除をする理由を別表にして、削除区分コードを入力する方法もあります。

f:id:waenavi:20200315132000j:plain

f:id:waenavi:20200315132058j:plain

 

ステータスと日付を併用するのが最も良い方法ですが、単に削除フラグを立てるだけの作業と比較するとものすごく手間が増えるので、必要に応じて使い分けることが大事です。

f:id:waenavi:20200315132321j:plain

 

8.さいごに:フラグの是非よりフラグを知ることが大事

削除フラグを使うべきかどうかについては賛否両論あります。しかし、Excelを業務で使用している人のなかで、「削除フラグ」を知っている人の割合はごくわずかです。多くの人は、削除フラグを知らないのです。

初心者が、Excelを使ってリストを管理するときは、まずフラグの立て方を勉強するべきです。そして、削除フラグのメリットとデメリットを知ったうえで、正しい削除の方法を検討するべきです。

 


解説は以上です。


 


Copyright(C)2018-2020 waenavi, All rights reserved. [www.waenavi.com 定礎 平成三十年八月]
Youtube | 公式サイト | twitter | 著作権 | 運営者情報 | お問い合わせ