文字列操作関数③(TRIM・CLEAN・TEXT)
文字列操作の第三弾は、TRIM・CLEAN・TEXT です。
これまでの LEFT・MID は「切り出す」、FIND・SUBSTITUTE は「探す・置き換える」関数でした。今回は データを整える・見せる 関数たちを紹介します。
- TRIM :余計な 空白(スペース) を取り除く
- CLEAN :改行などの印刷不可文字 を取り除く
- TEXT :数値や日付を、指定した 書式の文字列 に変える
実務で「他システムからインポートしたデータが汚い」「日付を文字列として連結したい」── そんなときに頼りになる関数たちです。

TRIM関数の構文
=TRIM(文字列)
引数は1つだけ。余計なスペースをまとめて削除する 関数です。
ここでいう「余計なスペース」は、
- 文字列の 先頭と末尾 にあるスペース → すべて削除
- 文字列の 途中 にある複数の連続スペース → 1個に圧縮
という動きをします。「単語と単語の間の1個のスペース」は残してくれる のがポイントです。

TRIM関数を使ってみる
他システムから貼り付けたデータに、見えない空白が混じっていることがあります。
:::excel
A1=社員名
A2= 山田 太郎
A3=鈴木 一郎
A4= 佐藤 花子
A5=高橋 二郎
:::
(前後やセル内に余分な空白が紛れ込んでいるイメージです)
B2セルに、
=TRIM(A2)
結果:山田 太郎(前後の空白は消え、間の空白は1つだけ残る)

「見た目は同じなのに、VLOOKUP で一致しない」── 実はセルの末尾に半角スペースが入っていた、というのは Excel あるあるです。
マスタとの照合前に TRIM で整える ことで、こうしたトラブルを未然に防げます。
TRIM の弱点:全角スペース
ただし、注意点が1つ。TRIMは「半角スペース」と「全角スペース」を区別します。
- 文字列の 先頭・末尾 の 全角スペース → 削除されない
- 文字列の 途中 の 連続する全角スペース → 1個には圧縮されない
たとえば、
=TRIM(" 山田 太郎 ") → 山田 太郎 (変化なし)
全角スペースも一掃したいときは、前回紹介した SUBSTITUTE との合わせ技が定番です。
=TRIM(SUBSTITUTE(A2, " ", " "))
「全角スペース → 半角スペースに変換 → TRIM 」という流れで、全角・半角どちらも処理できます。
CLEAN関数の構文
=CLEAN(文字列)
これも引数は1つだけ。印刷できない制御文字(改行など)を取り除く 関数です。
「印刷できない文字」と言われても、ちょっとピンと来ないかもしれません。具体的には、
- セル内改行(Alt+Enter で入る改行)
- タブ文字
- その他の制御コード(外部システムからの取り込み時に混入することがある)
こういった「目に見えにくい厄介者」をまとめて消去するのが CLEAN の役割です。

CLEAN関数を使ってみる
セル内改行が含まれている住所データを想定します。
:::excel
A1=住所
A2=東京都千代田区
丸の内1-1-1
A3=大阪府大阪市北区
梅田2-2-2
:::
(A2 と A3 のセル内には Alt+Enter による改行が入っているイメージです)
B2セルに、
=CLEAN(A2)
結果:東京都千代田区丸の内1-1-1(改行が消える)

CSVファイルを Excel にインポートしたとき、見えない改行が紛れ込むことがよくあります。
そのままだと VLOOKUP や FIND がうまく動かない原因になるので、CLEAN で一度きれいにする 習慣を持っておくと安心です。
TRIM と CLEAN のセット使い
実務では、TRIM と CLEAN は同時に使う ことが多いです。
=TRIM(CLEAN(A2))
「まず CLEAN で改行などの制御文字を消し → 次に TRIM で空白を整える」という二段構え。データクレンジングの黄金パターン として覚えておいてください。
TEXT関数の構文
=TEXT(値, 表示形式)
- 値 :変換したい数値や日付
- 表示形式 :どんな書式で表示するか("yyyy/mm/dd" など)
「数値や日付を、指定した書式の文字列に変える」関数です。書式設定(セルの表示形式)と似ていますが、TEXT は結果が「文字列」になる のが大きな違いです。

TEXT関数を使ってみる:日付の整形
:::excel
A1=日付
A2=2026/5/23
A3=2026/12/1
A4=2027/1/15
:::
B2セルに、
=TEXT(A2, "yyyy年m月d日")
結果:2026年5月23日

書式コードはセルの表示形式と同じものが使えます。よく使うパターンは、
| 書式コード | 結果(例:2026/5/23 の場合) |
|---|---|
| yyyy/mm/dd | 2026/05/23 |
| yyyy年m月d日 | 2026年5月23日 |
| yyyy年m月d日(aaa) | 2026年5月23日(土) |
| ggge年m月d日 | 令和8年5月23日 |
「aaa で曜日を1文字(土)」「aaaa で曜日を3文字(土曜日)」「ggg で和暦」── 知っているとちょっと得をする小ネタです。
TEXT関数を使ってみる:数値の整形
数値もTEXT関数で整形できます。
=TEXT(1234567, "#,##0") → 1,234,567
=TEXT(1234567, "#,##0円") → 1,234,567円
=TEXT(0.85, "0.0%") → 85.0%
=TEXT(7, "0000") → 0007(4桁0埋め)
「0007」のような 0埋め(ゼロパディング) は、商品コードや伝票番号を整える際に重宝します。
なぜわざわざ文字列にするのか
「セルの表示形式でやればいいのでは?」と感じるかもしれません。確かにセル単体で見るぶんには、表示形式で十分です。
TEXT関数の本領は、他の文字列と連結する ときに発揮されます。たとえば、
="本日は " & TEXT(TODAY(), "yyyy年m月d日(aaa)") & " です。"
結果:本日は 2026年5月23日(土) です。
セル参照で TODAY() の結果をそのまま「&」で連結すると、シリアル値(数字)がそのまま出てしまいます。
="本日は " & TODAY() & " です。"
→ 本日は 46164 です。
これでは意味が分かりません。TEXT で書式を指定してから連結 することで、人間が読める文章になります。文字列連結時の「最後の仕上げ役」 が TEXT 関数だと覚えておいてください。
まとめ
- TRIM:先頭・末尾の空白を すべて削除、間の連続空白は 1個に圧縮(全角スペースは対象外)
- CLEAN:改行などの 印刷不可文字 を取り除く
- TEXT:数値・日付を 指定書式の文字列 に変える
=TRIM(CLEAN(A2))でデータクレンジングの黄金コンビ- TEXT は 文字列連結時の書式整形 で本領発揮
次回はいよいよ LEVEL 7 の締めくくり、文字列操作関数の組み合わせ。
氏名分割やメール分割など、実務でよくある「ちょっと面倒なデータ整形」を、これまで学んだ関数で一気に解決 していきます!
ショートカット
※このレッスンに対応するショートカットはありません。