Excel(エクセル)でデータを整理しているとき、「最後の何文字かを削除したい」と思ったことはありませんか?
よくある文字削除の場面
データ処理作業でこんな状況に遭遇することがよくあります:
商品・在庫管理
- 商品コード:「ABC-001-JP」から「-JP」部分を削除したい
- 品番データ:「PART123-V2」から「-V2」を除去したい
- 在庫番号:「INV2024001」から末尾の数字3桁を削除
- カテゴリコード:「CAT-ELECTRONICS-001」から「-001」を除去
データクリーニング
- インポートデータ:CSVから取り込んだデータの末尾に不要な文字
- Webスクレイピング:取得したデータに含まれる余分な記号
- システム連携:他システムからのデータに付いている識別子
- ファイル名処理:拡張子や連番を除去したい
文書・テキスト処理
- 住所データ:「東京都新宿区-101」から「-101」を削除
- メールアドレス:ドメイン部分の一部を除去
- URL処理:パラメータ部分の削除
- 日付フォーマット:「2024/03/15-MON」から「-MON」を除去
右から文字を削除するメリット
効率的な文字削除処理により:
作業時間の大幅短縮
- 手作業の排除:一つずつ編集する必要がない
- 一括処理:数百・数千行のデータを瞬時に処理
- ミスの防止:手動編集による入力ミスを回避
データの標準化
- フォーマット統一:データ形式を揃える
- システム連携:他システムとの互換性向上
- 分析準備:データ分析用の前処理として活用
この記事で学べること
この記事では、以下について詳しく解説します:
- LEFT関数を使った基本的な右端文字削除
- 実際のビジネスシーンでの活用例
- 複雑な条件に対応した応用テクニック
- よくあるトラブルとその解決方法
- 効率化のための便利な組み合わせ技
最後まで読めば、Excelでの文字削除処理を完全にマスターできるようになります。
基本的な右端文字削除の方法

LEFT関数の基本概念
Excelには「右から削除する」専用の関数はありませんが、LEFT関数とLEN関数を組み合わせることで同じ効果を得られます。
LEFT関数の構文
=LEFT(文字列, 文字数)
パラメータ | 意味 | 例 |
---|---|---|
文字列 | 対象となるセルまたは文字列 | A1 |
文字数 | 左から取得したい文字数 | 5 |
LEN関数の構文
=LEN(文字列)
文字列の総文字数を返します。
基本的な削除の仕組み
考え方
「右から3文字削除」= 「左から(総文字数-3)文字を取得」
具体例
元のデータ:「ABC1234」(7文字)
- 右から3文字削除したい
- 必要な文字数:7 – 3 = 4文字
- 結果:「ABC1」
基本的な数式
=LEFT(A1, LEN(A1) - 3)
実際の使用例
例1:商品コードの処理
データ例
A列(元データ) | B列(処理後) | 数式 |
---|---|---|
PROD-001-JP | PROD-001 | =LEFT(A2, LEN(A2) – 3) |
PROD-002-JP | PROD-002 | =LEFT(A3, LEN(A3) – 3) |
PROD-003-JP | PROD-003 | =LEFT(A4, LEN(A4) – 3) |
例2:ファイル名から拡張子を削除
データ例
A列(ファイル名) | B列(拡張子なし) | 数式 |
---|---|---|
document.pdf | document | =LEFT(A2, LEN(A2) – 4) |
image.jpg | image | =LEFT(A3, LEN(A3) – 4) |
report.xlsx | report | =LEFT(A4, LEN(A4) – 5) |
例3:日付形式の調整
データ例
A列(元データ) | B列(処理後) | 数式 |
---|---|---|
2024/03/15-001 | 2024/03/15 | =LEFT(A2, LEN(A2) – 4) |
2024/03/16-002 | 2024/03/16 | =LEFT(A3, LEN(A3) – 4) |
可変的な文字数削除
セル参照による削除文字数の指定
=LEFT(A1, LEN(A1) - C1)
C1セルに削除したい文字数を入力することで、柔軟に対応できます。
条件による削除文字数の変更
=LEFT(A1, LEN(A1) - IF(RIGHT(A1,2)="JP", 3, 2))
末尾が「JP」なら3文字、それ以外なら2文字削除する例。
実際のビジネスシーンでの活用例
在庫管理システムでの活用
商品コードの標準化
課題
- 複数の仕入先から異なる形式の商品コード
- システム登録のため統一したい
解決方法
仕入先A | 仕入先B | 統一後 |
---|---|---|
ABC123-A | ABC123-SUPPLIER-B | ABC123 |
DEF456-A | DEF456-SUPPLIER-B | DEF456 |
使用する数式
# 仕入先Aの場合(末尾2文字削除)
=LEFT(A2, LEN(A2) - 2)
# 仕入先Bの場合(末尾12文字削除)
=LEFT(B2, LEN(B2) - 12)
顧客管理での活用
電話番号の形式統一
課題
- 入力された電話番号の形式がバラバラ
- 分析用に統一したい
データ例
入力データ | 統一後 | 数式 |
---|---|---|
03-1234-5678-EXT | 03-1234-5678 | =LEFT(A2, LEN(A2) – 4) |
090-1234-5678-M | 090-1234-5678 | =LEFT(A3, LEN(A3) – 2) |
売上分析での活用
取引番号の処理
課題
- 取引番号に含まれる処理状況コードを除去
- 基本的な取引番号のみ抽出したい
例
元データ | 処理後 | 数式 |
---|---|---|
TXN240315001-COMP | TXN240315001 | =LEFT(A2, LEN(A2) – 5) |
TXN240315002-PEND | TXN240315002 | =LEFT(A3, LEN(A3) – 5) |
ファイル管理での活用
ドキュメント名の整理
課題
- ファイル名に付いているバージョン番号を削除
- 基本名のみで管理したい
例
元ファイル名 | 基本名 | 数式 |
---|---|---|
企画書_v1.2.docx | 企画書 | =LEFT(A2, LEN(A2) – 10) |
報告書_final.pdf | 報告書 | =LEFT(A3, LEN(A3) – 10) |
応用テクニックと組み合わせ技

条件付きの文字削除
IF関数との組み合わせ
特定の条件でのみ削除
=IF(RIGHT(A1,3)="-JP", LEFT(A1, LEN(A1) - 3), A1)
末尾が「-JP」の場合のみ3文字削除、それ以外はそのまま。
複数条件への対応
=IF(RIGHT(A1,3)="-JP", LEFT(A1, LEN(A1) - 3),
IF(RIGHT(A1,3)="-US", LEFT(A1, LEN(A1) - 3),
IF(RIGHT(A1,3)="-UK", LEFT(A1, LEN(A1) - 3), A1)))
特定文字での削除
FIND関数との組み合わせ
最後のハイフンより右を削除
=LEFT(A1, FIND("#", SUBSTITUTE(A1, "-", "#", LEN(A1) - LEN(SUBSTITUTE(A1, "-", "")))) - 1)
より簡単な方法
=LEFT(A1, FIND("~", SUBSTITUTE(A1, "-", "~", LEN(A1) - LEN(SUBSTITUTE(A1, "-", ""))))-1)
正規表現的な処理
数字のみ削除
末尾の数字をすべて削除
=TRIM(LEFT(SUBSTITUTE(A1&REPT(" ",100), "0", REPT(" ",100)), 100))
より実用的な方法:
=IF(ISNUMBER(VALUE(RIGHT(A1,1))),
LEFT(A1, LEN(A1) - LEN(A1) + FIND(TRUE, ISNUMBER(VALUE(MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1))) = FALSE) - 1),
A1)
配列数式の活用
一括処理用の配列数式
=LEFT(A1:A100, LEN(A1:A100) - 3)
Excel 365では動的配列として動作します。
よくあるトラブルと解決方法
エラーが発生する場合
#VALUE! エラー
原因1:削除文字数が総文字数を超えている
症状
=LEFT("ABC", LEN("ABC") - 5) # エラー
解決方法
=IF(LEN(A1) > 3, LEFT(A1, LEN(A1) - 3), A1)
原因2:空白セルの処理
症状
- 空白セルに対して関数を適用するとエラー
解決方法
=IF(A1="", "", LEFT(A1, LEN(A1) - 3))
想定と異なる結果
全角・半角の混在
問題
- 全角文字が含まれると文字数の計算が複雑
解決方法
=LEFT(A1, LENB(A1) - LENB(RIGHT(A1, 3)))
LENB関数を使用してバイト数で計算。
改行文字の存在
問題
- セル内改行があると予期しない結果
解決方法
=LEFT(SUBSTITUTE(A1, CHAR(10), ""), LEN(SUBSTITUTE(A1, CHAR(10), "")) - 3)
改行文字を除去してから処理。
パフォーマンスの問題
大量データでの処理速度
問題
- 数万行のデータで処理が遅い
解決方法
- 計算方法を手動に変更
- 数式 → 計算オプション → 手動
- 配列数式の活用
=LEFT(範囲, LEN(範囲) - 3)
- VBAによる高速処理
For Each cell In Range("A1:A1000") cell.Offset(0, 1).Value = Left(cell.Value, Len(cell.Value) - 3) Next
高度な活用方法

Power Queryでの処理
大量データの効率的処理
- データ → データの取得
- Power Queryエディターで列変換
- カスタム列で処理
Text.Start([元の列], Text.Length([元の列]) - 3)
VBAマクロでの自動化
右端文字削除の自動化
Sub 右端文字削除()
Dim cell As Range
Dim deleteCount As Integer
deleteCount = InputBox("削除する文字数を入力してください")
For Each cell In Selection
If Len(cell.Value) > deleteCount Then
cell.Value = Left(cell.Value, Len(cell.Value) - deleteCount)
End If
Next cell
End Sub
より高度な処理
Sub 条件付き文字削除()
Dim cell As Range
For Each cell In Selection
If Right(cell.Value, 3) = "-JP" Then
cell.Value = Left(cell.Value, Len(cell.Value) - 3)
ElseIf Right(cell.Value, 3) = "-US" Then
cell.Value = Left(cell.Value, Len(cell.Value) - 3)
End If
Next cell
End Sub
正規表現による高度な処理
VBAでの正規表現活用
Function 正規表現削除(inputText As String, pattern As String) As String
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = pattern
regex.Global = True
正規表現削除 = regex.Replace(inputText, "")
End Function
使用例:
=正規表現削除(A1, "-[A-Z]{2}$") # 末尾の「-英字2文字」を削除
効率化のためのコツとベストプラクティス
作業の標準化
テンプレートの作成
標準的な処理パターン
- 固定文字数削除:
=LEFT(A1, LEN(A1) - 3)
- 条件付き削除:
=IF(条件, LEFT(A1, LEN(A1) - 3), A1)
- 特定文字以降削除:FIND関数との組み合わせ
関数の命名規則
セル名前定義の活用
削除文字数 = 3
=LEFT(A1, LEN(A1) - 削除文字数)
データ検証の重要性
処理前のチェック
- データ型の確認
=IF(ISTEXT(A1), LEFT(A1, LEN(A1) - 3), A1)
- 文字数の事前確認
=IF(LEN(A1) >= 3, LEFT(A1, LEN(A1) - 3), A1)
- 結果の妥当性確認
- 処理前後の文字数比較
- サンプルデータでの動作確認
エラーハンドリング
包括的なエラー対応
=IFERROR(
IF(LEN(A1) > 3,
LEFT(A1, LEN(A1) - 3),
A1
),
A1
)
この数式により、あらゆるエラーケースに対応できます。
まとめ
Excelで右から何文字かを削除する方法について、重要なポイントをまとめます:
基本的な方法
LEFT関数とLEN関数の組み合わせ
=LEFT(セル, LEN(セル) - 削除したい文字数)
エラー対応版
=IF(LEN(セル) > 削除文字数, LEFT(セル, LEN(セル) - 削除文字数), セル)
実用的な活用場面
ビジネスでの応用
- 商品コード・品番の標準化
- 顧客データの形式統一
- ファイル名・URL の整理
- システム連携用データの前処理
効率化のメリット
- 大量データの一括処理
- 手作業ミスの排除
- 処理時間の大幅短縮
高度なテクニック
条件付き処理
- IF関数との組み合わせ
- 複数条件への対応
- 正規表現的な処理
自動化
- VBAマクロによる処理
- Power Queryでの大量データ処理
- 配列数式による一括処理
コメント