この記事では、数式・計算式が入力されているレコードを抽出する方法を補助列を使って解説します。
サンプル表の確認
以下のような価格表(A1:D28)があるとします。
書籍番号 | 書名 | 現価格 | 新価格 |
---|---|---|---|
1001 | ケーススタディ民法 | 1400 | 1600 |
1002 | 交通六法 | 2700 | 2700 |
1003 | 法人税法の基礎 | 2700 | 2900 |
1004 | 会社法 | 2800 | 2800 |
1005 | 民法総則 | 2700 | 3000 |
1006 | 判例六法 | 2400 | 2700 |
1007 | 基礎法入門 | 2500 | 2500 |
1008 | やさしい経済法 | 2500 | 2500 |
1009 | 刑法各論 | 2100 | 2100 |
1010 | 現近代民法 | 1400 | 1400 |
1011 | 会社法概論 | 2000 | 2000 |
1012 | 商法総則 | 1900 | 2100 |
1013 | 憲法 | 2500 | 2500 |
1014 | 商行為法 | 1600 | 1600 |
1015 | 倒産法入門 | 2300 | 2600 |
1016 | 破産法 | 1200 | 1200 |
1017 | 法社会学 | 1500 | 1900 |
1018 | 民事訴訟法学 | 2800 | 3100 |
1019 | 法学入門 | 2500 | 2500 |
1020 | 労働法の要点 | 2400 | 2700 |
1021 | はやわかり刑法 | 3000 | 3000 |
1022 | 講義式憲法 | 3000 | 3100 |
1023 | 刑法講義 | 2600 | 2900 |
1024 | 会社法 | 1300 | 1400 |
1025 | 民法事例集 | 1200 | 1400 |
1026 | 六法全書 | 2300 | 2500 |
1027 | 労働法実務辞典 | 2700 | 3000 |
D列には=ROUNDUP(C2*1.1,-2)
のような計算式、もしくは数値が入力されているとします。このうち、計算式のものだけを抽出、もしくは非表示にする方法を解説します。
数式セル発見の準備
ステップ1: 補助列の準備
まず、データが入っている列の隣に新しい列を追加します。これが「補助列」となり、数式の有無を示す役割を果たします。
ステップ2: 補助列に数式を入力
補助列の各セルに以下の数式を入力します:
=ISFORMULA(対象セル)
ISFORMULA関数は引数内が数式である場合にTRUEを返します。数式以外の場合にはFALSEを返します。
例えば、新価格が「D列」に入力されている場合、補助列が「E列」と仮定すると、E2セルには =ISFORMULA(D2)
と入力します。これを行に沿って下にコピーしていきます。
ステップ3: フィルタリング
補助列に入力された数式がTRUEまたはFALSEを返します。TRUEはそのセルに数式が含まれていることを意味し、FALSEは含まれていないことを意味します。Excelのフィルタ機能を使用して、TRUEのみを表示するように設定します。
ステップ4: 数式の内容を表示:FORMULATEXT・IFERROR関数の利用
さらに、数式の内容が見たい場合は、もう一つの補助列を追加し、以下の数式を入力します:
=IFERROR(FORMULATEXT(対象セル), "数式なし")
これにより、数式があるセルではその内容が表示され、ない場合は「数式なし」と表示されます。例えばE2セルへ
=IFERROR(FORMULATEXT(D2),"数式なし")
として下へコピーします。このFORMULATEXT関数とIFERROR関数の意味は次に解説します。
FORMULATEXT 関数の基本
FORMULATEXT 関数は指定されたセルに入力されている数式をテキストとして返します。この関数を使用すると、セルに直接入力された数式がどのようなものかを確認することができます。例えば、FORMULATEXT(D2)
は、D2セルに入力されている数式を文字列として表示します。
IFERROR 関数の利用
FORMULATEXT 関数はセルに数式がない場合、#N/A
エラーを返します。このエラーは、数式が存在しないことを意味しますが、報告書やデータ表でこのエラーが表示されると見た目が悪くなることがあります。IFERROR 関数を使用すると、このエラーをより読みやすい形式でカスタマイズすることができます。
IFERROR 関数は、第一引数で指定された式がエラーを返した場合に、第二引数で指定された値を返します。この場合、「FORMULATEXT(対象セル)
」がエラー(数式がない場合の#N/A
)を返したら、「”数式なし”」というテキストを返すように設定されています。
数式の有無の確認
=IFERROR(FORMULATEXT(対象セル), "数式なし")
の全体のロジックは、セルに数式があればその数式をテキストとして表示し、数式がなければ “数式なし” と表示するというものです。これにより、Excelシートを見た人は、どのセルが数式を含んでいて、どのセルが単なる値であるかを一目で理解することができます。
注意点
- 数式を使用する際には、適切な列を参照しているか確認してください。
- データが更新されると、補助列も更新が必要になる場合がありますので、常に最新の情報が表示されるように注意しましょう。
コメント