まず押さえる!Excel「自動化」の考え方と関数でできること
「Excelで自動化」と聞くと、マクロやVBAを思い浮かべる人も多いはず。でも20代のサラリーマンが日々の業務でまず狙うべきは、関数で“手作業の判断”を置き換えることです。なぜなら、関数は導入が速い・共有しやすい・壊れにくい。同僚が開いても動きやすく、引き継ぎにも強い。つまり「自動化のコスパ」が高いんです。
自動化の本質はシンプルで、次の3ステップに分解できます。
- 入力(データを集める):売上、勤怠、案件、経費など
- 処理(ルールで変換・判定する):集計、分類、成形、突合
- 出力(見せる・渡す):レポート、一覧、アラート、提出用
関数が得意なのは真ん中の「処理」です。特に強いのは、次のような“人が毎回考えてやっている作業”の置き換え。
- 条件で足す/数える(例:部署別の合計、未対応件数)
- 別表から探して持ってくる(例:社員番号→氏名、商品コード→単価)
- 表記ゆれを整える(例:全角半角、スペース除去、日付形式統一)
- ミスを事前に見つける(例:未入力、範囲外、参照先なしを検知)
ここで重要なのが、「自動化=一発で全部やる」ではなく、“繰り返し発生する手作業を1個ずつ減らす”発想。例えば、毎月の集計でやりがちな作業を思い出してみてください。
- フィルターして、目視で合計を確認する
- 別シートを開いて、コピペで名前や単価を引っ張る
- 提出用に書式を整えるために、手で置換・分割する
これらは関数で「データを入れれば結果が更新される状態」にできます。ポイントは、作業を“イベント”ではなく“仕組み”に変えること。データが追加されたら、集計も参照も整形も勝手に追従する――この状態が作れると、業務時間は目に見えて減ります。
また、自動化を進めるときは次の2つの思想を押さえると失敗しにくいです。
① まず「1つの正しい元データ」を作る
関数は元データがきれいだと爆発的に効きます。逆に、同じ意味の列が複数あったり、手入力が混ざっていたりすると破綻しがち。最初に「この表だけを更新すればOK」という唯一の入力場所を決めるのが近道です。
② “見た目”と“計算”を分ける
提出用にセル結合や手打ちメモが増えると、途端に自動化しづらくなります。おすすめは、計算用シート(元データ+関数)と、提出用シート(表示だけ)を分離する運用。こうすると、関数を壊さずに見た目だけ整えられます。
このあと紹介する「ベスト20関数」は、まさにこの“処理の自動化”に直結するものを厳選しています。まずは集計(SUM/IF系)と検索(XLOOKUP/INDEX系)の2本柱を固めるだけで、日々のコピペと目視確認は一気に減ります。次章から、最短で効果が出る鉄板関数に入っていきましょう。
集計が爆速になる!合計・条件集計(SUM/IF系)鉄板関数
業務で一番時間を食うのは、「フィルターして合計」「条件に合う行だけ拾って計算」みたいな手作業の集計です。ここを関数で仕組み化できると、元データが増えても結果が自動更新されるので、月次・週次の集計が一気にラクになります。
まず押さえるのはこの3兄弟。
- SUM:単純な合計
- SUMIF:条件が1つの合計
- SUMIFS:条件が複数の合計(実務の主役)
例えば「営業部の売上合計」を出すなら、次のイメージです。
=SUMIF(部署列,"営業",売上列)
さらに実務で多い「営業部かつ4月の売上合計」ならSUMIFS。
=SUMIFS(売上列,部署列,"営業",月列,"4月")
ポイントは、合計したい範囲を先頭に置くこと。SUMIFSは「何を合計?」「どんな条件?」が読みやすく、引き継ぎにも強いです。条件が増えても後ろに追加するだけなので、“集計表を育てる”運用ができます。
次に「件数」を数えるCOUNTIF/COUNTIFS。未対応件数、遅延件数、入力漏れ件数など、アラート系の集計に直結します。
=COUNTIFS(ステータス列,"未対応",担当列,"田中")
そして地味に効くのがAVERAGEIF/AVERAGEIFS。例えば「部署別の平均残業時間」「案件種別ごとの平均単価」のように、合計だけでは見えない“傾向”を一発で出せます。
「条件で集計」はIFでも作れます。たとえば、条件に合うものだけ足したいときに、データの横に判定列を作って合計する方法です。
=IF(部署="営業",売上,0)
この判定列を用意しておくと、後でピボットやフィルターに回しやすいのがメリット。ただし、集計だけが目的ならSUMIFSのほうが速くて管理がラクです。
最後に、集計の精度を上げる小ワザを2つ。
- 条件セル参照にする:文字を直書きせず「条件入力セル」を作ると、集計表が“操作できるダッシュボード”になります。
- 範囲のズレを防ぐ:条件範囲と合計範囲は必ず同じ行数に。ズレると結果が静かに間違います。
ここまでのSUM/IF系を固めるだけで、「フィルター→手計算→転記」の往復はほぼ不要になります。次章では、集計と並ぶもう一つの柱――別表から正しい値を引っ張ってくる検索・参照(XLOOKUP/INDEX系)に進みます。
ミスを減らす!検索・参照で“引っ張ってくる”関数(XLOOKUP/INDEX系)
集計と同じくらい工数を食うのが、「別シートを開いてコピペ」「コード表から単価を目視で拾う」といった参照作業です。ここはミスが起きやすく、しかも気づきにくい。だからこそ、検索・参照関数で“引っ張ってくる仕組み”を作るだけで、作業時間もヒューマンエラーも一気に減ります。
まず実務の主役はXLOOKUP。社員番号→氏名、商品コード→単価など「キーを元に別表から値を取得する」用途に強いです。
=XLOOKUP(A2, マスタ!A:A, マスタ!B:B, "該当なし")
- A2:探したい値(社員番号など)
- マスタ!A:A:検索する列(キー列)
- マスタ!B:B:返したい列(名前など)
- “該当なし”:見つからないときの表示(空欄でもOK)
ポイントは、「見つからない」を無視しないこと。未登録コードが混ざるのは日常茶飯事なので、最後の引数で文字を返す/後述のIFERRORで吸収するなど、運用上の事故を止められます。
次に押さえたいのが、いまだ現場で多いVLOOKUP。既存ファイルの保守で避けられないこともあります。
=VLOOKUP(A2, マスタ!A:D, 3, FALSE)
ただし弱点も明確で、「左端列でしか検索できない」「列番号がズレると壊れる」のが痛いところ。列追加・並べ替えが起きるマスタだと、数字の「3」が静かに地雷になります。新規で作るならXLOOKUPを基本にしつつ、既存のVLOOKUPは列追加の影響を受けない形に作り替えるのが安全です。
そこで登場するのがINDEX+MATCH(またはXMATCH)。列番号ではなく「見出し」や「位置」で引けるので、表が育っても壊れにくいのが強みです。
=INDEX(マスタ!C:C, MATCH(A2, マスタ!A:A, 0))
「A列で社員番号を探し、その行のC列(部署など)を返す」という意味。VLOOKUPより式は長いですが、マスタの列構成が変わっても耐えるので、運用が長い業務ほど効きます。
さらに実務で効く小技が2つあります。
- 参照先を“マスタ化”する:コード表は別シートに固定し、そこだけ更新すれば全表が追従する状態にする
- キー列の表記ゆれを潰す:社員番号の前後スペース等で一致しない事故が多いので、必要ならTRIM等で整える(整形は次章で詳しく)
検索・参照関数を入れるだけで、「正しい値を毎回コピペしてくる仕事」は終わります。あとは元データを更新するだけで、氏名も単価も部署も自動で埋まる。次章では、その自動化をもう一段進めるために、文字列・日付・データ整形(TEXT/DATE系)の便利関数で“手作業ゼロ”に近づけていきます。
手作業ゼロへ!文字列・日付・データ整形の便利関数(TEXT/DATE系)
集計や参照で仕組み化できても、最後に立ちはだかるのが「データの汚さ」です。全角半角の混在、謎のスペース、日付が文字列になっている、コードの桁が揃っていない……。ここを放置すると、SUMIFSもXLOOKUPも静かにコケます。だから4章は、あなたの手作業(置換・切り貼り・手入力)を関数で潰すための整形セットをまとめます。
まずは文字列の掃除。王道はこの3つです。
- TRIM:余計なスペース除去(先頭・末尾+連続スペース)
- CLEAN:見えない制御文字を削除(コピペ由来の事故対策)
- SUBSTITUTE:特定文字を置換(ハイフン違い、全角記号など)
=TRIM(CLEAN(A2))
これだけで「見た目は同じなのに一致しない」系の事故が激減します。さらに電話番号の「-」を消したいなら、
=SUBSTITUTE(A2,"-","")
次に分割・結合。氏名を「姓・名」に分ける、住所から都道府県だけ抜く、コードを組み立てる――この辺の手作業は確実に関数化できます。
- LEFT / RIGHT / MID:左・右・途中を抜き出す
- FIND:区切り文字の位置を探す(スペースや「/」など)
- TEXTJOIN / &:結合(空欄を無視してつなげるのがTEXTJOIN)
=LEFT(A2, FIND(" ",A2)-1) // スペース前=姓
=TEXTJOIN("-",TRUE,B2:D2) // 空欄を無視して結合
そして日付・表示形式。実務で多いのが「2026/2/1」が文字列で入っていて集計できない問題。ここはDATE系で“日付として作り直す”のが安全です。
- DATE:年・月・日から正しい日付を生成
- YEAR / MONTH / DAY:日付を分解
- EOMONTH:月末日(締め処理で大活躍)
- TEXT:表示を整える(提出用の見た目担当)
例えば「年月日が別列」のデータを日付にするなら、
=DATE(年セル,月セル,日セル)
月次の締日(当月末)を自動で出すなら、
=EOMONTH(基準日,0)
「2026年02月」表記で出したいなど、“見た目”だけ揃えたいときはTEXTが便利です。
=TEXT(A2,"yyyy年mm月")
ただし注意点として、TEXTは結果が文字列になります。計算・集計に使う列はDATE等で日付のまま持ち、TEXTは提出用シートで使う(1章の「見た目と計算を分ける」)のが鉄則です。
最後に、整形は「都度その場で直す」より、元データの横に“整形列”を作って固定化するのが運用に強いです。例えばキー列は
=TRIM(CLEAN(SUBSTITUTE(A2," "," ")))
のように“検索に耐える形”を一つ決め、XLOOKUPやSUMIFSはその整形列を参照する。これで、データが増えても追加分が勝手に整います。
整形ができると、集計・参照の精度が一段上がり、「最後に手で直す」時間が消えます。次章では、さらに実務運用に効くエラー処理や最新の動的配列関数で、仕組みを止めずに回す方法へ進みましょう。
仕上げに効く!エラー処理・統合・最新関数で運用を回す(IFERROR/UNIQUE系)
ここまでで「集計」「参照」「整形」の土台は完成。でも実務では、作って終わりではなく、データが増える・欠ける・揺れる中でも止まらず回ることが大事です。5章はそのための仕上げとして、エラーを吸収する・表を統合して扱いやすくする・最新の動的配列関数で更新を自動追従する、の3点を押さえます。
1) エラー処理:赤い「#N/A」で思考停止しない
XLOOKUPや割り算、日付変換ではエラーが出がち。そこで使うのがIFERRORです。
=IFERROR(XLOOKUP(A2,マスタ!A:A,マスタ!B:B),"未登録")
これで「未登録コード」を見える化しつつ、表全体の見た目が崩れません。さらに「空欄なら空欄」で返した方が運用がラクな場合も多いです。
=IFERROR(XLOOKUP(A2,マスタ!A:A,マスタ!B:B),"")
また、単価÷数量などの計算でゼロ割が起きるなら、次のように最初から条件で潰すのもあり。
=IF(B2=0,"",A2/B2)
2) 統合:バラバラの表を「1つの入力口」に寄せる
月別シート、部署別ファイルなど、元が分かれていると集計が面倒になります。Power Queryが強い領域ですが、関数でもまずはVSTACK/HSTACKで統合できます(Excelの新しめ環境)。
=VSTACK(1月!A:D,2月!A:D,3月!A:D)
「統合した一覧」を作っておけば、あとはその一覧に対してSUMIFSやピボットを当てるだけ。集計ロジックを一本化でき、月が増えても“式を直す”作業が減ります。
3) 最新関数(動的配列):更新に強いリストを自動生成する
運用で効くのがUNIQUEとFILTER。例えば、元データから「担当者リスト」を自動生成して、集計表の軸に使えます。
=UNIQUE(担当列)
未対応だけの一覧を作りたいならFILTER。
=FILTER(A:D, ステータス列="未対応","該当なし")
さらに「複数条件」は掛け算(AND)でまとめられます。
=FILTER(A:D, (部署列="営業")*(ステータス列="未対応"),"該当なし")
そして地味に便利なのがSORT。提出用に並び替えが必要なら、手でソートするより安全です。
=SORT(FILTER(A:D,ステータス列="未対応"),1,1)
まとめると、IFERRORで止めない、VSTACKで一本化、UNIQUE/FILTERで更新に追従。この3つを入れるだけで、Excelは「毎回手で整える道具」から「データを入れれば勝手に回る仕組み」に近づきます。仕上げの関数こそ、あなたの“残業を減らす最後の一手”になります。


コメント