Excel でセルを最初の数字で分割する方法は?
Excel を日常業務で活用する際、データをより効果的に整理・分析するために、セル内の内容を分割する必要が頻繁に生じます。従来、Excel ユーザーはカンマやスペースなどの区切り文字や、指定した固定幅を使ってテキストを分割してきました。しかし、テキスト文字列の中にテキストと数字が混在しており、「最初の数字が現れる位置」で分割したいというケースもあります。このようなシナリオを、以下のスクリーンショットに示します。
このようなデータ(例:製品コード、複合ラベル、参照文字列など)を扱う際には、最初の数字より前のテキストや数字そのものを抽出することで、並べ替えや検索、さらなる処理が格段にスムーズになります。以下では、セルを最初の数字で分割する実用的な方法として、数式ベースの手法と、Word の「検索と置換」機能とExcel の「テキストを列に分割」ツールを組み合わせた手法をご紹介します。それぞれのアプローチには最適な使用シナリオと留意点があるため、ご自身のニーズにぴったりの解決策を選べるよう、詳細を丁寧に解説しています。
➤ 数式を使ってセルを最初の数字で分割する
➤ Word と「テキストを列に分割」機能を使ってセルを最初の数字で分割する
➤ VBA コードを使ってセルを最初の数字で分割する
数式を使ってセルを最初の数字で分割する
セルの内容を最初の数字が現れる位置で分割したい場合は、追加のツールは不要で、Excel の数式を直接使うだけで実現できます。この方法は、データが一定のパターンに従っており、ソースデータが変更された際に自動的に更新される自動化されたソリューションをお望みの場合に最適です。
概要
- メリット:Excel 内で完結し、元セルが変更されると自動更新される動的処理が可能で、フィルハンドルを使った繰り返し操作やバッチ処理に最適です。
- 制限事項:数式が複雑になる場合があり、予期しない記号や非標準の数字(例:全角数字)が含まれていると、調整が必要になることがあります。
1) 分割結果のテキスト部分を表示するセル(例:B1)を選択し、A1から最初の数字より前のテキストを抽出する次の数式を入力します:
=TRIM(LEFT(A1, MIN(FIND({0,1,2,3,4,5,6,7,8,9}, A1 & "0123456789")) - 1)) Enterキーを押して確定し、フィルハンドルを下にドラッグして数式を他の行にも適用すると、各文字列のテキスト部分が以下のように抽出されます。
2) 最初の数字から始まる残りの部分を抽出するには、隣接するセル(例:C1)を選択して次を入力します:
=TRIM(REPLACE(A1, 1, LEN(B1), "")) ここでも、Enterキーを押してから、フィルハンドルを下にドラッグし、残りの行に数式を適用します。すると、各文字列から数値(およびその後に続く文字)が抽出されます。
パラメーターの説明:
LEFT(A1, …):先頭から最初の数字の直前まで、左側のテキストを抽出します。MIN(FIND({0-9}, A1 & "0123456789")):文字列内の最初に現れる数字の位置を返します。A1 に数字が含まれていない場合でも検索を確実に成功させるため、末尾に"0123456789"を追加しています。TRIM(…):抽出された部分の前後に不要なスペースを削除します。REPLACE(A1, 1, LEN(B1), ""):左端から B1 の結果と同じ長さのテキストを削除し、最初の数字以降の部分を返します。VALUE(…):抽出された数値文字列を数値に変換し、計算に使えるようにします。
トラブルシューティングとヒント
- 数字が含まれていない場合:最初の数式はテキスト全体を返し、2 番目の数式は空白を返します。カスタム出力を得るには、
IF関数やIFERROR関数で囲んでください。 - 依存関係:2 番目の数式は、B1で抽出されたテキストに依存しています。レイアウトが変更された場合は、参照を更新してください。
- 非標準の数字:データに全角や非 ASCII 数字が含まれている場合は、事前に正規化するか、
FINDの数字セットを拡張してください。 - パフォーマンス:対象範囲が非常に広い場合は、数式を一度だけ入力し、その後「特殊貼り付け ▸ 値」を使って結果を固定することを検討してください。
- データのクリーンアップ:予期しない結果が得られる場合は、元データの前後や末尾に含まれる不要なスペースを、
TRIMまたはCLEAN関数で削除してください。
区切り文字に基づいて、1 つのセルを列または行にすばやく分割 |
| Excel では、セルを列に分割する際にウィザードを使ってステップバイステップで操作しなければならず、手間がかかります。しかし、このユーティリティを使えば、次の操作がクリックするだけで可能になります: 1。区切り文字に基づいて1 つのセルを列または行に変換 2。文字列をテキストと数字に分割 3。指定した幅に基づいて文字列を分割 <フル機 id=「フル機_001」>フル機能の30 日間無料トライアルはこちらから!セルの分割 |
![]() |
| Kutools for Excel:300 種類以上の便利なExcel アドインを搭載しており、30 日間制限なく無料でお試しいただけます。 |
Word と「テキストを列に分割」を使ってセルを最初の数字で分割する
場合によっては、データに長めまたは多様な文字列が含まれていたり、レポート作成時のワンオフ処理やバッチ処理など、数式に依存しないソリューションが必要になることもあるでしょう。そんなときに役立つ代替手段として、Microsoft Word の検索と置換機能とExcel のテキストを列に分割機能を組み合わせる方法があります。このアプローチでは、Word のワイルドカード(正規表現風)機能を使って、分割位置に素早く区切り文字を挿入できます。
概要
- メリット:大規模なデータセットを処理でき、数式が複雑になりがちな場面でもしっかり機能し、柔軟な操作が可能です。
- 制限事項:Word とExcel の両方が必要で、結果は静的(動的ではない)であり、手動での操作が必要です。また、以下の基本的なワイルドカードの例は、最初の数字だけでなく、すべての数字グループの後に区切り文字を追加します。
文字列が数字の後にテキストが続く(またはその逆)構成になっている場合、次のように進めることができます:
1.Excel で対象の文字列をコピーし、新しいWord 文書に貼り付けます。その後、Ctrl + Hを押して検索と置換ダイアログを開きます。![文字列をコピーしてWordに貼り付け、[検索と置換]を開く](http://cdn.extendoffice.com/images/stories/doc-excel/split-by-first-number/doc-split-by-first-number-5.png)
2。「検索と置換」ダイアログボックスで、([0-9]{1,})を「検索する文字列」ボックスに、\1,を「置換後の文字列」ボックスに入力します。次に、「詳細設定」をクリックしてオプションを展開し、「ワイルドカードを使用する」にチェックマークを付けます。![Wordの[検索と置換]でワイルドカードオプションを指定](http://cdn.extendoffice.com/images/stories/doc-excel/split-by-first-number/doc-split-by-first-number-6.png)
パラメーターの説明:
-([0-9]{1,})は、1 つ以上の連続した数字(Word のワイルドカード構文)を検索します。
-\1,は、マッチした各数字グループの直後にカンマを挿入し、新しい区切り文字として機能します。
3。「すべて置換」をクリックします。確認ダイアログが表示されたら、「はい」または「OK」をクリックしてください。
![]() | ![]() | ![]() |
これにより、各数字の後にカンマが自動で追加され、Excel で簡単に分割できるようデータが整います。
4。Word で修正したテキストをExcel ワークシートに戻したら、次にデータ>テキストを列に分割へ移動します。![[データ] > [テキストを列に分割]をクリック](http://cdn.extendoffice.com/images/stories/doc-excel/split-by-first-number/doc-split-by-first-number-10.png)
5。「テキストを列に分割」ウィザードで、「区切り位置指定」を選択し、「次へ」をクリックした後、「カンマ」を区切り文字として選択します。
![]() | ![]() | ![]() |
6。「次へ」をクリックして、分割結果の保存先を選択し、「完了」をクリックしてください。
これにより、データは別々の列に表示されます(各行には数値グループが1 つだけ含まれているものと仮定)。
トラブルシューティングとヒント
- 最初の数字のみを対象としますか?シンプルなワイルドカード
([0-9]{1,}) → \1,は、すべての数字グループの後にカンマを追加してしまいます。この方法は、各文字列に数値グループが1 つだけ含まれる場合にのみご使用ください。それ以外の場合は、数式による方法またはPower Queryを使って、最初の数字でのみ分割することをおすすめします。 - 数字の前にカンマを追加:前半がテキストで、区切り文字を数字の前に挿入したい場合は、
,\1を置換後の文字列にご使用ください。(例の画像は「前半がテキスト」に修正済み) - 文字とロケール:数字に非 ASCII 文字や全角形式が含まれていると、Word のワイルドカード検索で見逃されることがあります。あらかじめ文字を正規化するか、Excel または Power Query で処理してください。
- データの安全性:置換を行う前に必ずコピーを取ってください。Excel に再インポートした後は、隣接するデータを上書きしないよう、テキストを列に分割機能を慎重に使用してください。
- 静的な結果:この方法は動的ではなく、元データが頻繁に変更される場合は、結果が自動的に更新される数式を使った方法をおすすめします。
まとめと提案:データ変更時に自動的に処理を更新する必要がある場合は、上記の数式による方法をご活用ください。このWord/Excel 併用の方法は、一時的なデータクリーニングや、数式が過度に複雑になってしまう場合に最適です。
VBA コードを使用してセルを最初の数字で分割する
文字列を最初の数字で分割するもう一つの強力な方法は、Excel VBA マクロの活用です。この方法は、マクロ操作に慣れているユーザー、特に可変長のデータを処理したり、大規模なデータセットに対して分割作業を繰り返し自動化したい場合におすすめです。VBA を使えば、数式よりも高いカスタマイズ性と柔軟性が得られますが、Excel でマクロを有効化し、基本的なコード編集を行う必要があります。
概要
- メリット:高度なカスタマイズが可能で、バッチ処理にもスケーラブル。手動操作を最小限に抑えられます。
- 制限事項:マクロを有効にし、ある程度の VBA 知識が必要です。また、結果は数式ほど即座に動的に反映されません。
1。Excel を開き、Alt + F11を押して VBA エディターを起動します。VBA インターフェースで「挿入」→「標準モジュール」をクリックして新しいモジュールを作成し、次のコードをモジュールにコピー&ペーストしてください。
Option Explicit
Sub SplitAtFirstNumber()
Dim selRng As Range, c As Range
Dim sText As String
Dim i As Long, firstPos As Long
Dim title As String
title = "KutoolsforExcel"
' Let user choose the range (safe-cancel)
On Error Resume Next
Set selRng = Application.InputBox( _
Prompt:="Select range to split", _
Title:=title, _
Default:=Selection.Address, _
Type:=8)
On Error GoTo 0
If selRng Is Nothing Then
MsgBox "Operation cancelled.", vbInformation
Exit Sub
End If
Application.ScreenUpdating = False
For Each c In selRng.Cells
If Not IsError(c.Value) And Len(c.Value) > 0 Then
sText = CStr(c.Value)
firstPos = 0
' Find the position of the first ASCII digit 0-9
For i = 1 To Len(sText)
If Mid$(sText, i, 1) Like "[0-9]" Then
firstPos = i
Exit For
End If
Next i
If firstPos > 0 Then
c.Offset(0, 1).Value = Left$(sText, firstPos - 1) ' text before the first number
c.Offset(0, 2).Value = Mid$(sText, firstPos) ' remainder from the first number
Else
c.Offset(0, 1).Value = sText
c.Offset(0, 2).Value = ""
End If
Else
' Blank or error cells: copy to text part, keep number part blank
c.Offset(0, 1).Value = c.Value
c.Offset(0, 2).Value = ""
End If
Next c
Application.ScreenUpdating = True
MsgBox "Split completed.", vbInformation
End Sub
2。マクロを実行するには、VBA ウィンドウでF5キーを押すか、Excel でAlt + F8を押し、「SplitAtFirstNumber」を選択して「実行」をクリックします。「Kutools for Excel」というタイトルのダイアログが表示され、処理対象のセル範囲を選択するよう促されます。セル範囲を選択して確定すると、マクロが各セルを分割し、最初の数字より前のテキスト部分をすぐ右隣の列に、残りの部分(数字とその後の文字)をその次の列に配置します。数字が見つからない場合は、すべてのデータがテキスト列に書き込まれ、数字列は空白のままになります。![]()
トラブルシューティングとヒント
- 元のデータを上書きしません:結果は次の2 列()
Offset(0,1)およびOffset(0,2))に出力されます。必要に応じて、実行前にこれらの列のデータを移動またはバックアップするか、コード内のオフセット値を変更してください。 - 文字セット:このパターンは ASCII 数字
[0-9]に一致します。全角や非 ASCII の数字を使用する場合は、チェックを拡張するか、入力を事前に正規化してください。 - パフォーマンス:範囲が非常に広くても、このループは一般的に高速です。さらに高速化が必要な場合は、範囲を配列に読み込んで一度だけ書き戻す方法も有効です。
- マクロの有効化:コードを実行するには、マクロが有効になっている必要があります。
- 元に戻す操作:VBA による操作はステップ単位での元に戻しができません。実行前に必ずコピーを保存してください。

KUTOOLS AI でExcel の魔法を解き放ちましょう
- スマート実行:セル操作、データ分析、チャート作成をすべてシンプルなコマンドで実現します。
- カスタム数式:ワークフローの効率化に役立つ、あなただけのカスタマイズ数式を生成します。
- VBA コーディング: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 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得

![[はい]をクリック](http://cdn.extendoffice.com/images/stories/doc-excel/split-by-first-number/doc-split-by-first-number-7.png)

![[OK]をクリック](http://cdn.extendoffice.com/images/stories/doc-excel/split-by-first-number/doc-split-by-first-number-8.png)
![[区切り文字付き]をチェック](http://cdn.extendoffice.com/images/stories/doc-excel/split-by-first-number/doc-split-by-first-number-11.png)
![[カンマ]をチェック](http://cdn.extendoffice.com/images/stories/doc-excel/split-by-first-number/doc-split-by-first-number-12.png)