【経営効率化の必須テクニック】中小企業・個人事業主のためのExcel関数マニュアル
行政書士米田耕太郎事務所 Administrative scrivener Komeda Kotaro Office
中小企業や個人事業主の皆様にとって、Excelは単なる表計算ソフトではありません。「売上管理」「顧客名簿」「経費精算」を正確かつ迅速に行うための、最も身近な業務効率化ツールです。
本記事では、日常業務の生産性を劇的に高める「目的別Excel関数一覧」を、「関数名」「目的・用途」「書式」「使用例」「致命的なミスを防ぐための注意事項」の順で、すぐに役立つ実務テクニックとしてご紹介します。
目次
🔍 検索・参照・抽出:顧客情報や商品データを即座に見つける関数
膨大な名簿や商品コードから、必要な情報を一発で探し出すための「データベース検索」テクニックです。入力間違いの確認や、請求書作成の時短に直結します。
| 関数名 | 目的・用途(説明) | 書式(入力方法) | 使用例 | 注意事項 |
| VLOOKUP | 縦のリスト(商品リストや顧客名簿)から、指定したコードに対応する別の列の情報(単価や氏名)を取り出す。 | =VLOOKUP(検索値, 範囲, 列番号, 検索方法) | =VLOOKUP("A123", B5:E50, 4, FALSE) | 検索コードは必ず参照範囲の左端の列になければならない。完全一致には必ず FALSE (または 0) を指定する。近似一致検索(TRUEまたは省略)を使う際は、検索先の表(範囲)を必ず昇順に並び替える必要がある。 |
| XLOOKUP | VLOOKUP/HLOOKUP の上位互換。縦横の検索に加え、エラー時の処理や検索方向の指定が簡単で、VLOOKUPの多くの制限を解消できる。 | =XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合]) | =XLOOKUP(A2, 商品コード, 単価列, "在庫なし") | VLOOKUPと異なり、検索範囲と戻り範囲を別々に指定できる。古いExcelバージョンでは使えない(Microsoft 365, Excel 2021以降)。 |
| INDEX | 指定した行番号と列番号が交差する位置の値を取り出す。MATCHと組み合わせてVLOOKUP以上の柔軟な検索に使う。 | =INDEX(データの範囲, 行番号, [列番号]) | =INDEX(B:B, 5) | MATCH関数と組み合わせるのが基本。単独では行番号の指定が手動になるため、実用性は低い。 |
| MATCH | 指定した値がリストの何番目(相対的な位置)**にあるかを調べる。INDEXと組み合わせて使い、「〇番目の顧客」といった位置情報を特定する。 | =MATCH(検索値, 検索対象の範囲, 検索の種類) | =MATCH("田中商店", 顧客名簿, 0) | 検索の種類に 0 を指定すると完全一致検索になる。 |
| FILTER | 条件に一致するデータを抽出し、新しい一覧表として自動で作成する。特定の期間の売上や、未入金の顧客だけを抽出したい場合に便利。 | =FILTER(配列, 含む, [空の場合]) | =FILTER(A:C, (B:B="未入金")*(C:C>50000)) | 結果がスピル(溢れ出し)るため、出力先のセル範囲に他のデータがあると #SPILL! エラーが発生する。 |
🛠️ 応用テクニック:INDEX+MATCHでVLOOKUPの限界を超える
VLOOKUPの「左側検索ができない」という弱点を克服し、より高速かつ柔軟な検索を実現する、データ管理のプロ必須のテクニックです。
| 関数名 | 目的・用途(説明) | 書式(入力方法) | 使用例 | 注意事項 |
| INDEX+MATCH | VLOOKUPの弱点を克服し、検索対象の左側にある値や、複雑な条件での検索を実現する。 | =INDEX(データの範囲, MATCH(検索値, 検索対象の列, 0)) | =INDEX(B:B, MATCH("佐藤", A:A, 0)) | MATCHの検索種類を 0 にして完全一致検索にすること。データが大量になると計算負荷が高くなるため、パフォーマンスに注意が必要。 |
| (応用:左検索) | 顧客名(右側の列)から顧客ID(左側の列)を参照するなど、VLOOKUPでは不可能な検索を実現。 | =INDEX(B:B, MATCH(A2, C:C, 0)) | =INDEX(顧客ID列, MATCH("田中商店", 顧客名列, 0)) | VLOOKUPと違い、データの並び順に左右されないため、データの配置変更に強い。 |
| (応用:複数条件) | 複数の条件(例:A社かつ売上10万円以上)をすべて満たすデータを検索する。 | =INDEX(D:D, MATCH(1, (A:A="許可")*(B:B="IT"), 0)) | =INDEX(連絡先, MATCH(1, (業種="飲食")*(地域="新宿"), 0)) | 配列数式として入力する場合、Ctrl + Shift + Enter で確定が必要な場合がある。 |
➕ 集計・計算:正確な経費・売上分析のための関数
正確な月次決算や経費の集計、売上の傾向分析など、経営判断に直結する数値処理に必須です。
| 関数名 | 目的・用途(説明) | 書式(入力方法) | 使用例 | 注意事項 |
| SUM | 指定した範囲の合計を計算する。 | =SUM(数値1, [数値2], ...) | =SUM(D2:D100) | フィルターで非表示にした行の値も合計に含まれる。表示中のデータのみを集計したい場合は SUBTOTAL 関数を使う。 |
| SUBTOTAL | オートフィルターや非表示の行を無視し、表示されているセルだけを対象に集計(合計、平均など)を行う。 | =SUBTOTAL(集計方法, 範囲) | =SUBTOTAL(9, D2:D100) | 集計方法の番号(9:合計、1:平均など)の指定が必要。手動で非表示にした行は集計に含まれるため、アウトライン機能やフィルターと組み合わせて使う。 |
| SUMIF | 特定の条件(例:部門が「営業」)に一致するデータのみの合計を計算する。 | =SUMIF(条件範囲, 検索条件, [合計範囲]) | =SUMIF(A:A, "広告費", B:B) | 条件範囲と合計範囲の行数・列数を一致させる必要がある。 |
| SUMIFS | 複数の条件(例:部門が「営業」かつ費目が「交通費」)をすべて満たすデータのみの合計を計算する。 | =SUMIFS(合計対象範囲, 条件範囲1, 条件1, ...) | =SUMIFS(D:D, A:A, "大阪", B:B, ">20000") | SUMIFと引数の順番が異なる(合計対象が最初)ので注意。 |
| COUNTIF | 特定の条件(例:ステータスが「完了」)に一致するセルの個数を数える。 | =COUNTIF(範囲, 検索条件) | =COUNTIF(C:C, "未入金") | 処理件数の把握や、特定のステータスの件数確認に便利。 |
| COUNTIFS | 複数の条件をすべて満たすセルの個数を数える。 | =COUNTIFS(条件範囲1, 条件1, ...) | =COUNTIFS(B:B, "行政", C:C, "<10") | 複数の条件はすべてAND条件(同時に満たす)で処理される。OR条件は処理できない。 |
| AVERAGE | 指定した範囲の平均値を計算する。 | =AVERAGE(数値1, [数値2], ...) | =AVERAGE(E2:E50) | 範囲内に空白セルがあっても無視されるが、0 が入力されているセルは計算に含まれる。 |
| ROUND | 数値を指定した桁数に四捨五入する。端数処理や消費税計算の誤差防止に必須。 | =ROUND(数値, 桁数) | =ROUND(A2, 0) | 桁数に正の値を指定すると小数点以下、0 で整数、負の値を指定すると小数点以上(10の位、100の位など)で処理される。 |
💡 論理・判定:複雑なルール処理を自動化する関数
「もしAならばB、そうでなければC」といった業務フローや、自動メッセージ生成など、判断業務を自動化します。
| 関数名 | 目的・用途(説明) | 書式(入力方法) | 使用例 | 注意事項 |
| IF | 単一の条件を設定し、条件を満たす場合と満たさない場合で異なる処理や値を返す。 | =IF(論理式, 真の場合, 偽の場合) | =IF(B2>100000, "要確認", "通常処理") | 複雑な分岐には IFS を使用しないと、IF関数の入れ子が深くなり、式が非常に分かりにくい。 |
| IFS | 複数の条件を順に判定し、最初に真になった条件に対応する処理を返す。IFの入れ子構造を避けて、式をシンプルにする。 | =IFS(論理式1, 値1, [論理式2, 値2], ...) | =IFS(A2<30, "小口", A2<100, "中口", TRUE, "大口") | 条件を上から順に判定するため、条件の記述順序に注意が必要。最後の条件を TRUE にすると、すべての条件に当てはまらない場合の処理を指定できる。 |
| AND | すべての条件が満たされた場合に TRUE を返す。 | =AND(論理式1, [論理式2], ...) | =IF(AND(B2="新規", C2<30), "早期対応", "保留") | 通常は IF関数の論理式として使用する。 |
| OR | いずれかの条件が満たされた場合に TRUE を返す。 | =OR(論理式1, [論理式2], ...) | =IF(OR(D2="A", D2="B"), "特別対応", "通常") | 通常は IF関数の論理式として使用する。 |
| IFERROR | VLOOKUPなどが失敗し、計算式がエラー(#N/A、#DIV/0!など)になった場合に、指定した値(例:「データなし」)を表示する。 | =IFERROR(値, エラーの場合の値) | =IFERROR(VLOOKUP(A2, B:D, 3, 0), "コードなし") | どんな種類のエラーでもすべて同じ値を返すため、特定のエラーだけを区別したい場合は使えない。 |
📝 文字列・テキスト処理:データをクリーンアップ・整形する関数
顧客名簿のふりがな抽出、メールアドレスや住所のクリーンアップなど、データ入力のミスを修正し、正確性を高めます。
| 関数名 | 目的・用途(説明) | 書式(入力方法) | 使用例 | 注意事項 |
| PHONETIC | 指定したセルに入力されている漢字のふりがな情報(読み仮名)を別のセルに取り出す。名簿の並べ替えや銀行振込先の確認に利用。 | =PHONETIC(参照) | =PHONETIC(A2) | 抽出されるフリガナは、入力時にIMEが保持した情報に基づく。意図しない読みが表示された場合は、元の漢字のセルで「ふりがなの編集」を行い、修正する必要がある。 |
| TEXTJOIN | 区切り文字(例:カンマ、スペース)を指定して複数の文字列やセルを結合する。空白セルを無視できるため、住所結合などに便利。 | =TEXTJOIN(" ", TRUE, A2:A5) | =TEXTJOIN(" ", TRUE, A2:A5) | 複数のセル範囲をまとめて結合できるが、古いExcelバージョン(Excel 2019より前)では使えない。 |
| CONCAT | 複数の文字列やセルを結合する。TEXTJOINがないバージョンでのシンプルな結合に。 | =CONCAT(文字列1, [文字列2], ...) | =CONCAT(A2, " - ", B2) | セル範囲は結合できず、セルを一つずつ指定する必要がある(TEXTJOINの使用が推奨)。 |
| LEFT | 文字列の左端から指定した数の文字(例:郵便番号の上3桁)を取り出す。 | =LEFT(文字列, 文字数) | =LEFT(B2, 3) | 文字数指定を省略すると、既定値の 1 が返る。 |
| MID | 文字列の途中(指定した位置)から指定した数の文字を取り出す。 | =MID(文字列, 開始位置, 文字数) | =MID(A2, 5, 2) | 開始位置と文字数の指定ミスはエラーの原因となる。 |
| TRIM | 文字列の先頭・末尾・文字列間の余分なスペース(空白)を削除する。データ入力ミスによる検索エラーを防ぐ基本操作。 | =TRIM(文字列) | =TRIM(A2) | 全角スペースや改行コードは削除されない場合があるため、完璧なクリーンアップには CLEAN や SUBSTITUTE の併用が必要。 |
| CLEAN | データ内に紛れ込んだ印刷できない制御文字(改行コードなど)を削除し、データ検索や連携時のエラーを防ぐ。 | =CLEAN(文字列) | =CLEAN(A2) | 主に他のシステムからコピー&ペーストしたデータに含まれる、目に見えないゴミを除去する。全角/半角スペースは削除されない。 |
| SUBSTITUTE | 指定した文字列内の特定の文字(例:ハイフン、全角スペース)を別の文字に置き換える。データ形式の統一に必須 | =SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象]) | =SUBSTITUTE(A2, "-", "") | 置き換え対象の文字列は大文字・小文字を区別する。特定の何番目の文字列だけを置き換えたい場合は、最後の引数を使う。 |
| LEN | 文字列の文字数(長さ)を数える。 | =LEN(文字列) | =LEN(A2) | 全角文字、半角文字、スペース(空白)をすべて1文字として数える。パスワードや入力項目の文字数チェックに利用。 |
🗓️ 日付・時刻:正確なスケジュールと期限の管理
請求書の支払い期限、契約満了日までの日数計算、営業日ベースのスケジュール調整など、経営のカレンダー管理に必須です。
| 関数名 | 目的・用途(説明) | 書式(入力方法) | 使用例 | 注意事項 |
| NOW | ファイルを開いた時点の現在の日付と時刻を返す。作業開始時刻やデータの更新時刻を記録する際に使用。 | =NOW() | =NOW() | TODAY関数と同じく、ファイルを開くたび、または再計算のたびに日付と時刻が自動で更新される。値を固定したい場合は、Ctrl + ;(日付のみ)や Ctrl + :(時刻のみ)で入力する。 |
| TODAY | ファイルを開いた時点の今日の日付を返す。常に最新の日付で「残り日数」を自動計算する際に使う。 | =TODAY() | =B2 - TODAY() | NOW関数と異なり、時刻情報は含まれない。日付を固定したい場合は、Ctrl + ; で入力する。 |
| DATEDIF | 2つの日付間の期間(年、月、日)を計算する。従業員の勤続年数や、顧客との取引開始からの年数計算に便利。 | =DATEDIF(開始日, 終了日, 単位) | =DATEDIF(A2, TODAY(), "Y") | 関数が非公開のため、入力時にサジェストが表示されない。スペルミスがないように注意して手入力する必要がある。 |
| EOMONTH | 開始日から指定した月数後の月末日を求める。締め日から次の支払い期限の計算などに便利。 | =EOMONTH(開始日, 月数) | =EOMONTH(TODAY(), 3) | 戻り値はシリアル値(数値)なので、セルの表示形式を「日付」に変更しないと「45000」などの数字で表示される。 |
| NETWORKDAYS | 2つの日付間の営業日(土日を除く)を計算する。納期やプロジェクト期間を正確に把握できる。 | =NETWORKDAYS(開始日, 終了日, [祝日]) | =NETWORKDAYS(A2, B2, 祝日リスト) | 土日のみを休日と見なす。土日以外の休日を含める場合は NETWORKDAYS.INTL 関数を使う。 |
💡 まとめ:Excel関数で業務を「自動化」し、利益を生み出す時間を増やしましょう
本記事で紹介した関数は、中小企業や個人事業主の皆様が日常業務で直面する「データの検索」「集計」「期限管理」の課題を解決し、作業時間を大幅に短縮するために役立ちます。
特に以下の3つのポイントを押さえて、Excelを強力な経営ツールとして活用してください。
- 検索機能の強化:VLOOKUPだけでなく、XLOOKUPやINDEX+MATCHを習得することで、データ検索の柔軟性と正確性が格段に向上します。
- 集計・分析の自動化:SUMIFSやCOUNTIFSで必要なデータだけを正確に集計し、SUBTOTALでフィルターをかけた状態での正確な分析を可能にします。
- ミスの徹底排除:IFERRORで検索エラーを隠し、TRIMでデータ入力ミスによる無駄な時間を削減します。
これらの関数を積極的に活用することで、皆様が本当に利益を生み出す「考える時間」や「顧客に向き合う時間」を増やし、さらなる事業発展に繋がることを願っています。
今日から、使えそうな関数を一つだけ、自分の業務に組み込んでみましょう!
お問い合わせ
「うちの業務に最適化されたExcelツールを作ってほしい」「データ分析をもっと簡単にしたい」など、具体的なお悩みがあれば、まずはお気軽にご相談ください。


