LEVEL 7 文字列・データ加工の匠 上級
Lesson 066

文字列操作関数の組み合わせ

練習用Excelファイル lesson066-practice.xlsx

練習用ファイルは、パソコンからダウンロードしてください。

文字列操作関数の組み合わせ

LEVEL 7 の締めくくりは、これまで学んだ関数を組み合わせて、実務でよくある厄介なデータを整形する 回です。

ここまでで、

  • 切り出す ── LEFT・RIGHT・MID
  • 数える・探す・置き換える ── LEN・FIND・SUBSTITUTE
  • 整える・書式を変える ── TRIM・CLEAN・TEXT

という、文字列操作の 9つの道具 が揃いました。今回は、それらを 掛け合わせて使う実例 を4つ紹介します。

1つの関数では解決できないが、組み合わせれば解決できる」── これが Excel の数式の醍醐味です。1つひとつの関数を覚えるよりも、組み合わせのパターンを身につける ことが、実務の現場ではずっと役に立ちます。


ケース①:氏名を「姓」と「名」に分ける

山田 太郎」のように、姓と名の間に 全角スペース がある氏名データ。これを2列に分けたいケースです。

:::excel
A1=氏名
A2=山田 太郎
A3=鈴木 一郎
A4=佐藤 花子
A5=高橋 二郎
:::

姓と名の長さは、人によってバラバラです。ここで活躍するのが、FIND関数で「区切り位置」を動的に探す という発想。

姓(B列)を取り出す数式:

=LEFT(A2, FIND(" ", A2) - 1)

  • FIND で全角スペースの位置を探す(山田 太郎 なら3)
  • そこから -1 した文字数(=2文字)を LEFT で取り出す
  • → 結果:山田

姓を抜き出す
姓を抜き出す

名(C列)を取り出す数式:

=MID(A2, FIND(" ", A2) + 1, LEN(A2))

  • FIND で全角スペースの位置を探し、+1 した位置から MID で取る
  • 取得する文字数は LEN(A2) と「多めに指定」しておけば、末尾までごっそり取れる
  • → 結果:太郎

名を抜き出す
名を抜き出す

FIND × LEFT・MID の王道パターン。「区切り文字の位置が動く」というケースは、ほぼこの形で対応できます。


ケース②:メールアドレスを「ユーザー名」と「ドメイン」に分ける

メールアドレスは「@マーク」を境に2分割するだけなので、ケース①と同じ発想が使えます。

:::excel
A1=メールアドレス
A2=yamada@example.com
A3=suzuki@transparently.jp
A4=sato@100excel.co.jp
:::

ユーザー名(B列):

=LEFT(A2, FIND("@", A2) - 1)

ドメイン(C列):

=MID(A2, FIND("@", A2) + 1, LEN(A2))

結果:

メールアドレスユーザー名ドメイン
yamada@example.comyamadaexample.com
suzuki@transparently.jpsuzukitransparently.jp
sato@100excel.co.jpsato100excel.co.jp

メールアドレスを分割
メールアドレスを分割

区切り文字を変えるだけで、同じパターンが使い回せる」── これが組み合わせの強みです。氏名でもメールでも、商品コードでも、「区切り文字を境に2分割」 という構造であれば、すべてこの形でいけます。


ケース③:コピペデータの一括クリーニング

社外システムから貼り付けたデータは、たいてい汚れています。前後の半角・全角スペース、セル内改行、見えないタブ文字 ──。

:::excel
A1=取り込み済みデータ
A2= 山田 太郎 
A3=
鈴木 一郎
A4=佐藤 花子 
:::

(A2は前後に半角スペース、A3は先頭に改行、A4は末尾に半角スペースが入っているイメージ)

これを一気にきれいにする呪文:

=TRIM(CLEAN(SUBSTITUTE(A2, " ", " ")))

処理の順番は、

  1. SUBSTITUTE で全角スペースを半角スペースに統一
  2. CLEAN で改行・タブを除去
  3. TRIM で前後と連続空白を整える

→ 結果:山田 太郎(前後の空白なし、間は半角スペース1個)

3関数の組み合わせでクリーニング
3関数の組み合わせでクリーニング

Ctrl+H の置換機能でも近いことはできる」と思うかもしれません。が、置換は元データを書き換えてしまうのに対し、この数式は元データを残しつつ別セルに整形版を作る ことができます。

取り込み列 → クリーニング列 → 分析列」と段階的にデータを整える設計が、後から見直したときに分かりやすく、ミスも減ります。


ケース④:請求書の表題を動的に作る

最後は、TEXT関数 × 文字列連結 の応用です。

請求書や報告書の表題で、「2026年5月分 ご請求書(株式会社○○ 御中)」のような文章を、セルの値から動的に組み立てる ケースを考えます。

:::excel
A1=請求月
A2=2026/5/1
A3=顧客名
A4=株式会社サンプル
:::

C1セルに、

=TEXT(A2, "yyyy年m月") & "分 ご請求書(" & A4 & " 御中)"

→ 結果:2026年5月分 ご請求書(株式会社サンプル 御中)

TEXT関数で動的タイトルを作る
TEXT関数で動的タイトルを作る

ここで TEXT を挟まないと、

=A2 & "分 ご請求書(" & A4 & " 御中)"
→ 46143分 ご請求書(株式会社サンプル 御中)

と、シリアル値(数字)がそのまま出てしまいます。日付や数値を文章に組み込むときは、必ず TEXT で書式を指定する ── この一手間が、見やすい資料の差になります。

請求月のセル A2 を翌月に変えるだけで、表題も自動で更新されます。雛形を作っておけば、毎月のルーチン作業がぐっと楽になる 一例です。


組み合わせを使いこなすコツ

最後に、関数を組み合わせるときのコツを3つ。

① 内側から考える

=TRIM(CLEAN(SUBSTITUTE(A2, " ", " "))) のような入れ子は、いちばん内側の SUBSTITUTE から順に組み立てる と迷いません。途中の式を別セルで一度動かしてみて、結果を確認しながら組み合わせていくと安全です。

② 1つの数式に詰め込みすぎない

3つ4つの関数を重ねた数式は、強力な反面、読みづらく、エラー時の原因が特定しにくい という弱点があります。慣れないうちは、1ステップずつ別の列に展開 していくのもおすすめです。

A列(元)B列(SUBSTITUTE後)C列(CLEAN後)D列(TRIM後・完成)

このように分けておけば、どの段階で意図しない結果になっているかが一目で分かります。

③ 引数の意味を毎回確認する

LEFT・MID・FIND ── どれも引数の使い方が微妙に違います。慣れるまでは、数式バーをクリックしたときに表示される関数ヒント を見ながら入力するクセをつけてください。

何文字目から、何文字分」を間違えると、結果がまるごとズレます。


LEVEL 7 を終えて

文字列操作関数は、地味ですが実務で最も使う関数群 のひとつです。

  • 取り込みデータの整形
  • 名簿の分割
  • 表題やコメントの自動生成
  • 入力チェック

──こうした 「データの前処理」 ができるかどうかで、Excel 作業の効率は何倍にも変わります。

LEVEL 7 で身についたのは、

  • 切り出す(LEFT・RIGHT・MID)
  • 数える・探す(LEN・FIND)
  • 置き換える(SUBSTITUTE)
  • 整える(TRIM・CLEAN)
  • 書式を変える(TEXT)
  • これらを 組み合わせて、実務の課題を解決 する力

これらを応用すれば、ちょっとした「データ整形系のお願いごと」は、ほぼすべて関数で対応できるようになります。

「手作業でコツコツやっていた整形が、数式1本で終わる」 ── そんな体験を、ぜひ業務の中で味わってみてください。

もちろん生成AIを使えば、いまは一瞬でクレンジング処理ができるでしょう。けれども、データクレンジングが手動でできる人材ほど、データの扱いに長けているというものです。

次の LEVEL では、テーブルとデータベース的思考 に進みます。文字列で整えたデータを、いよいよ「しっかりした表として扱う」段階です。


まとめ

  • FIND × LEFT・MID で「区切り文字が動くデータ」も切り出せる
  • TRIM(CLEAN(SUBSTITUTE(…))) がデータクリーニングの黄金パターン
  • TEXT × & で、日付・数値を含んだ動的な文章を作れる
  • 組み合わせは 内側から組み立て、1ステップずつ展開する と迷わない
  • 文字列操作は「データの前処理力」── 実務でいちばん効くスキル

ショートカット

※このレッスンに対応するショートカットはありません。

次のLessonへ Lesson 067 フィルターについて①