Excel でアルファベットと数字が混在した文字列からテキスト部分を抽出する方法は?
実際のExcel 業務では、セルに文字と数字が混在した「アルファベット数字混在文字列」が含まれるケースがよくあります。たとえば、「Order2058」や「User_15A」、「ID1234B」などのデータは、レポートのエクスポート、データベース出力、標準化コードなどにおいて頻繁に見られます。分析やレポート作成のために、数値要素をすべて除外し、テキスト部分のみを分離・抽出する必要がある場合も少なくありません。本記事では、Excel でアルファベット数字混在文字列から文字のみを効率的に抽出するための実用的な方法をいくつか紹介するとともに、典型的な使用シーンや注意点、トラブルシューティングのヒントもあわせて解説します。
➤ Excel のユーザー定義関数を使用して英数字文字列からテキストの抽出のみを抽出
➤ Kutools for Excel を使って英数字文字列からテキストの抽出のみを抽出
➤ Excel 数式を使用して英数字文字列からテキストの抽出のみを抽出

Excel でユーザー定義関数(UDF)を使用してアルファベット数字混在文字列からテキストの抽出する方法
概要
- メリット:大規模データセット全体から動的に抽出可能。複雑なワークシート数式よりもシンプルで使いやすい。どのワークブックでも再利用可能。
- 制限事項:マクロを有効にして、
.xlsm形式で保存する必要があります。カスタム関数は再計算されるため、非常に大きな範囲ではパフォーマンスに影響を与える可能性があります。
VBA に慣れていらっしゃるなら、カスタムのユーザー定義関数(UDF)を作成して、アルファベットと数字が混在した文字列から直接文字を抽出できます。これは、組み込み関数では対応しきれなかったり、極めて複雑になってしまったりする場合に特に役立ちます。
手順の概要:
1.抽出用の数式を入力したいセルを任意に選択し、Alt + F11キーを押してMicrosoft Visual Basic for Applicationsエディターを開きます。
2.VBA エディターで、挿入>標準モジュールをクリックして新しいモジュールを作成し、以下のコードを貼り付けてください。
VBA:文字のみを抽出(ASCII A–Z)
Function TextOnly(pWorkRng As Range) As String
'Updatebyextendoffice
Dim xValue As String
Dim OutValue As String
xValue = pWorkRng.Value
For xIndex = 1 To VBA.Len(xValue)
If Not VBA.IsNumeric(VBA.Mid(xValue, xIndex, 1)) Then
OutValue = OutValue & VBA.Mid(xValue, xIndex, 1)
End If
Next
TextOnly = OutValue
End Function
3.ワークシートに戻り、空白セルに=TextOnly(A1)と入力します()A1は対象セルに置き換えてください)。Enterキーを押してフィルハンドルをドラッグすると、列全体に適用され、各文字列から抽出された文字のみが表示されます。
この方法では元のデータが一切変更されず、出力結果は新しいセル/列に表示されるため、ソースデータをそのまま保持できます。
トラブルシューティングとヒント
- マクロを有効にしてファイル形式を保存:マクロが有効になっていることを確認し、UDF を永続化するためにファイルを
.xlsm形式で保存してください。 - 設計上、文字のみ抽出:この関数は数字・句読点・記号を削除します。スペースを保持するには、第2 引数に
TRUEを指定してください(例:=TextOnly(A1, TRUE))。 - アクセント付き文字や非 ASCII 文字:単純なパターン
[A-Za-z]では、é、üなどの文字は対象外となります。より広いアルファベット範囲が必要な場合は、RegExp のバージョンで文字範囲を拡張することを検討してください(例:[A-Za-zÀ-ÖØ-öø-ÿ])または、事前にテキストを正規化してください。 - 空白セル/エラーのあるセル:UDF は、空白セルやエラー値に対して空の文字列を返します。
- パフォーマンス:UDF はシートと連動して再計算されます。対象範囲が非常に大きい場合は、抽出後に結果を値として変換することをおすすめします。
アルファベット数字混在文字列からテキストの抽出する方法(Kutools for Excel 使用)
コードを書かずに素早く処理したいなら、Kutools for Excelを使えば、不要な数字や非文字をセルからカンタンに削除できます。この方法は、定期的にテキストのクリーニングを行う方、大量データを扱う方、または VBA を使いたくない方に最適です。
概要
- 機能概要:数字やその他の非文字をすべて削除し、文字だけを残します。
- 最適な用途:数式やマクロを使わずに、一回限りのクリーニング作業やバッチ処理に。
Kutools for Excelには、特定の文字を削除機能が搭載されており、選択したセルから非文字コンテンツを効率的に削除できます。
Kutools for Excelには300 種類以上の便利なExcel ツールが含まれており、業務効率化を強力にサポートします。30 日間は無制限で無料でお試しいただけます。今すぐ入手
文字のみを抽出する手順は以下の通りです:
1.処理したい英数字混在の文字列が含まれるセル範囲を選択します。
2.Kutools > テキスト > 特定の文字を削除をクリックします。ダイアログが表示されます(スクリーンショット参照)。

3.特定の文字を削除ダイアログで、文字のみを残す最も簡単な方法は、非アルファベット(場合によっては「非アルファ」と表示)にチェックを入れることです。これにより、A~Z 以外のすべての文字が削除されます。このオプションがご利用のバージョンにない場合は、数値および非表示文字にチェックを入れ、(必要に応じて)カスタムを使って削除したい記号を指定してください(スクリーンショット参照)。

4.OKをクリックすると、Kutools が選択範囲を処理し、非文字コンテンツをすべて削除して、選択したセルにテキスト部分のみを残します。
トラブルシューティングとヒント
- セルの上書き:この操作により、選択したセルの内容が上書きされます。元のデータを保持したい場合は、事前に別の場所にコピーしておいてください。
- 特定の文字を保持する方法:スペースや記号(ハイフンなど)を保持したい場合は、非アルファベットを避けて、代わりに数値、非表示文字、さらにカスタムを組み合わせて、きめ細かく制御してください。
Kutools の手法は、一回限りのクリーニング作業に最適で、小規模・大規模データセットのいずれにも対応します。動的(自動更新)な結果が必要な場合は、代わりに数式または VBA の UDF をご検討ください。
Excel の数式を使ってアルファベット数字混在文字列からテキストの抽出する方法
VBA やアドインを使わずに、ネイティブのExcel 数式だけでテキストを抽出する方法もあります。この解決策は、抽出結果を動的かつ数式駆動で維持したい場合や、環境上マクロやサードパーティ製ツールが使用できない場合に最適です。
配列数式を使った手順は以下の通りです:
1. 結果を表示したい空白セル(例:B1)を選択し、次の数式を入力します(A–Z の文字のみを保持):
=TEXTJOIN("",
TRUE,
IF(
(CODE(MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1))>=65)*
(CODE(MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1))<=90) +
(CODE(MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1))>=97)*
(CODE(MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1))<=122),
MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1),
""
)
) 2。 数式を入力したら、Ctrl+Shift+Enterを押してください(これにより配列数式になります)。ただし、これはExcel 2019 以前をご利用の場合のみです。Microsoft 365またはExcel 2021 以降をご利用の場合は、単にEnterキーを押すだけで構いません。これらのバージョンでは、動的配列数式がネイティブでサポートされています。
「A1」を、英数字を含むセルの参照に置き換えてください。この数式は、各文字列からアルファベット部分のみを抽出します。複数の行に数式を適用するには、B1 セルのフィルハンドルを下方向にドラッグしてください。
パラメーターの説明:
- MID 関数とROW(INDIRECT(...))を組み合わせて、対象セル内の文字を1 つずつ取り出します。
- CODEは、ASCII コード範囲 65–90(A–Z)および97–122(a–z)に該当する文字のみを保持し、それ以外を除外します。
- TEXTJOINを使って、保持された文字を1 つの文字列に連結します。
- 1 セルあたり1,000 文字未満の中程度の長さのテキストに最適です。非常に長いテキストでは、パフォーマンスが低下する可能性があります。
この方法では元のデータが保持され、追加のツールやマクロ設定も不要です。エラーが発生した場合は、セル参照と配列数式の入力方法を再度確認してください。
トラブルシューティングとまとめの提案
- エラー(例:
#VALUE!)が表示された場合は、Excel のバージョンと、2019 以前のバージョンでは配列入力にCtrl+Shift+Enterが必要であることをご確認ください。 - 抽出後は、結果に予期しないスペースや文字が含まれていないか確認し、必要に応じて調整してください。Kutools、VBA、数式のいずれを使うかは、ご自身のワークフローに基づいて選択してください。
関連記事:
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得