第1章:なぜデータ整形が面倒なのか?業務の課題を洗い出す
みなさん、こんな経験はありませんか?
- 毎月、取引先から届くExcelファイルのフォーマットが微妙に違って、コピペや列の並び替えに時間がかかる
- 売上データをまとめるたびに同じ数式をいちいち入力している
- 不要な行や空白列を手作業で削除することに疲れている
IT業界に限らず、営業や事務、企画職などさまざまな業種で「データ整形」という作業は日常的に行われています。特にExcelを使った業務が多い20代のサラリーマンなら、その機会は週に数回、もしくは毎日あるかもしれません。しかしこの「データ整形」、実は思っている以上に時間とエネルギーを奪っています。
データ整形とは?
「データ整形」とは、次の分析や報告などに使いやすくするために、データの形式や構造を整理・加工する作業のことを指します。具体的には、以下のような作業が含まれます。
- 文字列の統一(例:「東京本社」と「東京 HQ」を同義として統一)
- 列や行の順序入れ替え・削除
- 不要な空白や文字の除去
- 日付形式の変換(例:「2024/03/01」→「2024年3月1日」)
- 複数シートやファイルの結合
これらは一見単純そうに見えますが、件数やパターンが多くなると一気に複雑さが増し、手作業で処理するには非常に面倒です。
作業が面倒な理由
データ整形が面倒になる主な理由は以下の通りです。
- 繰り返し作業が多い:毎月・毎週のルーチンワークで、同じような処理を何度も行っている
- ミスが発生しやすい:手作業では、コピペミスやフィルタ漏れなど人為的なミスが避けられない
- 標準化されていない:データのフォーマットがバラバラで、その都度調整が必要
- 複雑なルールがある:部署によって異なる整形ルールがあり、判断に迷うことがある
このように、簡単そうに見えるデータ整形が実は業務のボトルネックになっているのです。そしてその非効率さは、知らず知らずのうちに日々のパフォーマンスを下げてしまっています。
自動化の第一歩は「気づく」ことから
まずは、あなた自身の業務の中で「これは毎回手作業でやってるな」とか「同じコピペを繰り返してる」と感じるポイントを洗い出してみましょう。そういった「手間がかかるのが当たり前」になっている作業こそ、真っ先に自動化のチャンスがあります。
次章では、Excelの関数を使って、どこまでデータ整形が自動化できるのかを一緒にチェックしていきましょう。まずは身近な関数から始めて、大きな成果を得られる方法をご紹介します!
第2章:関数でここまでできる!エクセルでの基本的な自動化
データ整形の面倒さに気づいたら、次のステップは自動化です。そして、最も手軽に始められる自動化方法が、Excelの「関数」の活用です。関数は、一度覚えてしまえば何度でも使える便利な仕組み。ここでは、業務でよく使われる代表的な関数と、その活用シーンをわかりやすく解説します。
1. IF関数:条件によってデータを分類
「A列の値が“○○”ならB列に“対象”と表示させる」といった処理に使えるのがIF関数です。手作業でフィルタして書き換える必要がなくなり、分類作業が一気に楽になります。
=IF(A2="東京本社","本社","支社")
このように、テキストの統一や、条件付きフォーマットの下処理にも最適です。
2. VLOOKUP関数:別シートやファイルからデータを参照
「別のExcelファイルにあるマスタ表から情報を取り出したい」ときはVLOOKUP関数が活躍します。複数のファイルを見比べながらコピペしていた作業も、これで一発です。
=VLOOKUP(A2,商品マスタ!A:B,2,FALSE)
例えば商品コードから商品名を取得したり、部署コードから部署名を表示したりといった場面で役立ちます。
3. TEXT関数とDATE関数:見やすい日付や数値表記に整える
日付が「2024/03/01」のように表示されていると、報告書には使いづらい…そんなときはTEXT関数でフォーマットを整えましょう。
=TEXT(A2,"yyyy年m月d日")
同様に、金額にカンマ区切りを入れたいときは =TEXT(A2,"#,##0") のように書けるので、見栄えを整えるのにも便利です。
4. TRIM関数・CLEAN関数・SUBSTITUTE関数:意外と面倒な文字列整形に
コピペで取り込んだデータに空白や不要な文字が混じっている…そんな「地味に手間な処理」も関数で自動化できます。
- TRIM: 余分な空白を削除
- CLEAN: 制御文字(改行や特殊記号など)を除去
- SUBSTITUTE: 特定の文字列を置換
=SUBSTITUTE(TRIM(CLEAN(A2))," ","")
これで、「東京 HQ」や「 東京\n本社 」といったデータも整った形に変換できます。
5. 関数の組み合わせがカギ
1つの関数だけでは解決できないことも、複数の関数を組み合わせることで、より柔軟な自動化が可能になります。上記の例のように、TRIM・CLEAN・SUBSTITUTEを組み合わせたり、IF関数の中にVLOOKUPを組み込むことで、より複雑なデータ整形にも対応できます。
こうした関数は、スキマ時間で少しずつ学べば無理なく覚えられますし、何より繰り返し使える「業務の武器」になります。最初から完璧を目指す必要はありません。あなたの業務で「毎回やってるな」と思う作業の一部分だけでも、自動化に置き換えていくことが大切です。
次章につづく:関数では解決できない整形とは?
ここまでで、関数だけでもかなりの範囲をカバーできることがわかりましたね。ただし、複雑なルールやイレギュラーなパターンには対応しきれない場面も出てきます。次章では、そんな「関数ではちょっと厳しい」課題に対応するための、マクロ(VBA)の使いどころをわかりやすく紹介していきます。
第3章:関数では届かない!マクロの力を借りるシーンとは
前章では、Excelの関数を使ったデータ整形の自動化方法を紹介しました。しかし実際の業務では、関数だけではうまく対応できないケースも少なくありません。特に、毎回ルールが微妙に違う、複数の条件をまたぐような処理、大量の手順を毎回繰り返すような場面では、力不足を感じることもあるでしょう。そんなときこそ登場するのがマクロ(VBA)です。
こんなときはマクロで解決!
以下のような場面では、関数では対応が難しく、マクロの出番になります。
- ファイルを開くだけで、特定のセルを自動整形したいとき
- コピペ+フィルタ+並べ替え+条件抽出など複数の操作をまとめて自動化したいとき
- データの並び順が毎回異なるけれど、それでも一定のルールで整形したいとき
- 複数のファイルを一括で読み込んで、1つの集計表にまとめたいとき
マクロとは、Excel上で一連の操作を記録して再生できる機能のこと。中でも「VBA(Visual Basic for Applications)」という簡易プログラミング言語で書かれたコードを使えば、非常に柔軟な処理が可能になります。
関数とマクロの違いって?
ここで一度、関数とマクロの違いを簡単に整理しておきましょう。
| 項目 | 関数 | マクロ(VBA) |
|---|---|---|
| 適している作業 | 単純・定型的な整形 | 複雑・繰り返し・非定型な整形 |
| 実行方法 | セルに数式を入力 | ボタンやイベントで実行 |
| 操作対象 | セル内のデータ | 行列の追加削除、他ファイルとの連携など広範囲 |
マクロの最大の魅力は、処理の自動化だけでなく、「操作そのもの」を再現できる点です。関数では「操作」は変えられませんが、マクロなら「フィルタをかけたあとにセルを削除する」といった複数工程を、まるごとボタン1つで実行できます。
具体例:月次レポートデータを一発整形
たとえば、営業部門から毎月送られてくる売上表。以下のような作業が毎回必要なら、その一連をマクロで自動化することが可能です。
- タイトル行を削除
- 空白列を非表示
- 列Cを基準に昇順ソート
- 売上が0の行を削除
- 出力フォルダにCSV形式で保存
これらを人の手で毎回やるのは正直しんどいですよね。マクロなら、これらの処理を一度だけ記録したり、VBAで書き起こせば、次回からはボタン1つで一気に実行できます。
最初は難しい?いいえ、記録機能から始めればOK
「マクロ=プログラミング=難しそう」と思って敬遠していませんか?安心してください。Excelには「マクロの記録」機能があり、実際に行った操作をそのままコード化してくれます。
つまり、VBAをイチから書けなくても、まずは記録したマクロを実行してみることから始められます。編集せずそのまま使うだけでも十分便利ですし、徐々に慣れてきたらコードの一部を書き換えることで、さらに業務にフィットさせていけるようになります。
まとめ:関数で足りなければ、迷わずマクロを
関数は非常にパワフルですが、限界があるのも事実です。業務で出てくる“複雑すぎる整形”や“そもそもルールが曖昧なケース”こそ、マクロの出番です。そして、マクロは誰でも使える武器になります。完璧なコードを書けなくてもOK、まずは記録機能を活用して「面倒な作業をボタンひとつで終わらせる快感」をぜひ体験してみてください。
次章では、マクロを実際に記録・作成する方法と、よく使われるコードパターンをご紹介します。ここからは、あなたの業務にすぐ活かせる実践フェーズに入っていきましょう!
第4章:マクロの作り方入門とよく使うお役立ちコード集
「マクロって興味はあるけど、なんだか難しそう…」「VBAなんて触ったこともない」。そんな方でも大丈夫!この章では、マクロ初心者でも無理なくスタートできるように、マクロの記録機能の使い方から、一歩進んだシンプルなVBAコードの例まで、丁寧にご紹介していきます。
まずはコレ!マクロの記録機能で第一歩
VBAをいきなり書く必要はありません。Excelには、「マクロの記録」という超便利な機能があります。これは、あなたが実際に行った操作をVBAコードとして自動記録してくれるもので、初心者のマクロ入門に最適です。
【マクロの記録手順】
- Excelを開いた状態で、[表示]タブ → [マクロ] → [マクロの記録] をクリック。
- マクロ名を入力(例:「データ整形1」など)して「OK」を押すと、記録が開始されます。
- 普段通りの操作(列の削除、並べ替え、セルの色を変えるなど)を実行します。
- 操作が終わったら、[マクロ] → [記録終了]をクリックして記録を停止します。
これだけで、あなたの操作が裏でコード化され、マクロとして保存されます。次回からは、そのマクロをボタン1つで再生するだけで、同じ作業を一瞬で実行できます。
記録したマクロを見てみよう
一度マクロを記録したら、[Alt] + [F11]キーを押してVBAエディターを開いてみましょう。記録された内容がVBAコードの形で表示されます。初めて見ると少し驚くかもしれませんが、実際は「選択」「削除」「フィルター」といった操作が、わかりやすく並んでいるだけです。
たとえば、列Aを削除する操作を記録すると、こんなコードが出てきます。
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
このように、VBAは「英語っぽいExcel操作」がそのままコードになっていることが多く、慣れてくると意味もつかみやすくなります。
よく使う!お役立ちVBAコード例
ここでは、実務ですぐに使えるシンプルなVBAコードをいくつか紹介します。記録しなくても貼り付けて実行するだけで使えますよ。
- 1. 空白行を削除する
Sub DeleteEmptyRows()
Dim LastRow As Long
Dim i As Long
LastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For i = LastRow To 1 Step -1
If WorksheetFunction.CountA(Rows(i)) = 0 Then
Rows(i).Delete
End If
Next i
End Sub
- 2. ワークシート上のフィルターをすべてクリア
Sub ClearAllFilters()
If ActiveSheet.AutoFilterMode Then
ActiveSheet.AutoFilterMode = False
End If
End Sub
- 3. 指定フォルダにCSV形式で保存
Sub SaveAsCSV()
ThisWorkbook.Sheets(1).Copy
ActiveWorkbook.SaveAs Filename:="C:\Users\Username\Desktop\output.csv", FileFormat:=xlCSV
ActiveWorkbook.Close False
End Sub
上記のコードはあくまで一例ですが、繰り返し使う整形処理をマクロにすれば、作業時間が数分〜数十分単位で短縮されることもざらにあります。
マクロは自分用の「業務アシスタント」
マクロの良いところは、「あなたの業務に完全にフィットする自動化ツールを自分で作れる」ところです。市販のツールやAIよりも柔軟に、そしてピンポイントで業務課題に対応できます。
最初は「記録して、実行する」だけで十分です。そこに少しずつコードを加えたり、コピーしたVBAを貼り付けて試すことで、気づけば手放せないスキルになっています。
次章では、関数とマクロをうまく組み合わせて、実際の業務をどこまで自動化できるか、具体的な事例とともに解説していきます。ぜひここまでの知識を総動員して、現場での「自動化の威力」を体感してください!
第5章:関数×マクロで業務はここまで自動化できる!実践事例
ここまで、Excelの関数とマクロ(VBA)を使ったデータ整形の自動化方法を段階的に紹介してきました。この章では、実際の業務フローにおいて、それらの技術を組み合わせて使うことでどこまで効率化できるのか、実践的な事例をもとに紹介します。
ケーススタディ:営業部の月次報告プロセスを自動化
企業の営業部門では、毎月の売上データをもとに、報告書用の資料を作成するのが一般的です。その中には、さまざまな部署から集めたフォーマットバラバラなデータが含まれていて、毎回整形に時間がかかるという課題があります。
その業務フローは以下のようなステップです。
- 複数のExcelファイル(各営業拠点ごと)をマージ
- 表タイトルや不要な行・列の削除
- 日付の形式をレポート用に統一(例:2024/4/1 → 2024年4月1日)
- 商品コードから商品名を自動入力
- 売上ゼロの行を削除
- 報告用にCSVで出力
この作業、一つひとつは簡単そうに見えて、毎月手作業でやるとなると1~2時間かかることも。ただし、このフローは関数とマクロの組み合わせで劇的に効率化できます。
Step1:関数で”中の整形”を自動に
例えば、「商品コードから商品名を取得」する部分は、VLOOKUP関数を使えば一発で解決します。また、TEXT関数を使えば、日付のフォーマット変換も簡単です。
=VLOOKUP(A2,商品マスタ!A:B,2,FALSE)
=TEXT(B2,"yyyy年m月d日")
これにより、データの内容統一や体裁を整える「内面的な整形」は、関数で完全に自動化されます。
Step2:マクロで”外の処理”をまとめて自動に
一方で、「ファイルの結合」「空白行の削除」「CSVへの保存」など、関数では対処しきれない操作はマクロが得意とするところです。
例えば以下のようなマクロを用意しておきましょう:
- 複数ファイルのデータを1シートに統合する
- 空白行/不要な列の削除
- CSVとして保存
Sub ExportReport()
' データをソートし、空白行削除
Call DeleteEmptyRows
' CSV形式で保存
ActiveWorkbook.SaveAs Filename:="C:\Reports\MonthlyReport.csv", FileFormat:=xlCSV
End Sub
このように、マクロは「クリック1つで一連の処理を全部実行」してくれるため、時間だけでなく人的ミスも激減します。
組み合わせるメリットとは?
関数でセル内の処理を、マクロで操作全体の自動化を担うことで、それぞれの欠点を補完し合いながら、最大限の効率化が可能になります。
具体的には…
- 関数でデータが整えば、その結果をマクロで処理・保存するだけなので、エラーが出にくい
- 条件がころころ変わっても、関数を変えるだけでマクロ側はそのまま使い続けられる
- マクロ時短 + 関数でデータ精度向上 → 二重の効果でパフォーマンスUP!
はじめの一歩は「1作業=1自動化」から
いきなりすべての工程を一括で自動化するのはハードルが高いかもしれません。最初は、いつもやっている1つの作業を、関数やマクロで置き換えてみることから始めましょう。
例えば、「毎回入力している数式を関数にする」でもいいですし、「空白行を自動で消すマクロ」を作ってみるというのも立派な第一歩です。
まとめ:自動化は現場の味方になる
業務にかかる作業時間を減らし、ミスをなくし、より分析や提案など価値ある部分に時間を割けるようにする——それが自動化の目的です。
関数とマクロは、どちらか一方だけでも強力なツールですが、組み合わせることで本当の効果が発揮されます。あなたの業務の中にも、きっと「もっとラクにできる工程」があるはず。この記事をきっかけに、ぜひ一つでも自動化を取り入れてみてください。
最初は小さな一歩でも、それが未来の大幅な時短と働き方改革につながるかもしれませんよ。


コメント