Excel セルで X 文字ごとに文字を追加する - 簡単な方法
著者Xiaoyang•変更日
Excel で製品コード、シリアル番号、電話番号、ID 番号、または長いテキスト文字列を扱う際、一定の文字数ごとに特定の文字を挿入したい場合があります。たとえば、「ABCDEF123456」を「ABC-DEF-123-456」に変換したり、長い数字を読みやすくするために4 桁ごとにスペースを入れたりしたいこともあるでしょう。
Excel にはこうした処理を実行するための直接的な組み込みボタンはありませんが、いくつかの簡単な方法で手軽に実現できます。本記事では、Excel のセル内にあるテキストに、指定した文字数ごとに特定の文字を挿入するための実用的なテクニックをいくつかご紹介します。

Excel で X 文字ごとに文字を追加する
以下の方法では、Excel で指定した文字数ごとに特定の文字を素早く挿入する手順をご紹介します。これにより、長いテキストや ID、製品コード、数値文字列を固定間隔で簡単に分割し、内容を標準化して読みやすくできます。
方法1:数式を使って X 文字ごとに文字を追加する
Excel 365 またはExcel 2021 をご利用の場合、動的配列数式を使ってテキストを固定長のグループに分割し、指定された文字で結合できます。
空白セルに次の数式を入力します:
=TEXTJOIN("-",TRUE,MID(A2,SEQUENCE(ROUNDUP(LEN(A2)/4,0),,1,4),4))
次に、Enterキーを押して確定します。その後、フィルハンドルを下にドラッグすれば、他のセルにも同じ数式が適用されます!
この数式の仕組みは?
- LEN(A2):セル A2 の文字数をカウントします。
- ROUNDUP(LEN(A2)/4,0): 必要なグループ数を計算します。最後のグループが4 文字未満であっても、そのグループは含まれます。
- SEQUENCE(ROUNDUP(LEN(A2)/4,0),,1,4): 開始位置(1、5、9、13 など)を生成します。
- MID(A2,SEQUENCE(...),4):テキストを4 文字ごとのグループに分割して抽出します。
- TEXTJOIN("-",TRUE,...):抽出されたすべてのグループをハイフンでつなぎ合わせます。
数式のカスタマイズ
必要に応じて、文字や間隔を調整できます。
4 文字ごとにスペースを挿入:
=TEXTJOIN(" ",TRUE,MID(A2,SEQUENCE(ROUNDUP(LEN(A2)/4,0),,1,4),4))
2 文字ごとにスラッシュを挿入:
=TEXTJOIN("/",TRUE,MID(A2,SEQUENCE(ROUNDUP(LEN(A2)/2,0),,1,2),2))
柔軟な設定のためセル参照を使用:(このバージョンでは、数式そのものを編集することなく、挿入する文字や間隔の数値を変更できるため、より柔軟です。)
条件:
- 元のテキストは A2 セルにあり、
- 挿入する文字は B1 セルにあり、
- 間隔の数値は C1 セルにあります
=TEXTJOIN($B$1,TRUE,MID(A2,SEQUENCE(ROUNDUP(LEN(A2)/$C$1,0),,1,$C$1),$C$1))
メリットとデメリット
| メリット | デメリット |
|---|---|
| 自動的に更新される動的結果 | Excel 365、Excel 2021、およびそれ以降のバージョンでのみ動作します |
| VBA は不要 | 初心者には数式が難しい場合があります |
| 複数のセルに簡単にコピーできます | 結果は数式に基づいており、静的なテキストではありません |
方法2:VBA コードを使って X 文字ごとに文字を追加する
複数のセルで一定の文字数ごとに特定の文字を挿入し、結果を直接出力したいなら、VBA が最適な選択肢です。
- Excel でALT + F11キーを押すと、Microsoft Visual Basic for Applications ウィンドウが開きます。
- クリックして、挿入 > モジュールを選択し、モジュールウィンドウに次のコードを貼り付けてください。
Sub InsertCharacter()
'Updateby Extendoffice
Dim Rng As Range
Dim InputRng As Range, OutRng As Range
Dim xRow As Integer
Dim xChar As String
Dim index As Integer
Dim arr As Variant
Dim xValue As String
Dim outValue As String
Dim xNum As Integer
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
xRow = Application.InputBox("Number of characters :", xTitleId, Type:=1)
xChar = Application.InputBox("Specify a character :", xTitleId, Type:=2)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set OutRng = OutRng.Range("A1")
xNum = 1
For Each Rng In InputRng
xValue = Rng.Value
outValue = ""
For index = 1 To VBA.Len(xValue)
If index Mod xRow = 0 And index <> VBA.Len(xValue) Then
outValue = outValue + VBA.Mid(xValue, index, 1) + xChar
Else
outValue = outValue + VBA.Mid(xValue, index, 1)
End If
Next
OutRng.Cells(xNum, 1).Value = outValue
xNum = xNum + 1
Next
End Sub
- このコードを実行するには、F5キーを押してください。するとプロンプトボックスが表示され、テキスト文字列に特定の文字を挿入したいデータ範囲の選択を求められます。下のスクリーンショットをご確認ください:

- 次に、OKをクリックしてください。次のプロンプトボックスで、特定の文字を「何文字ごと」に挿入したいかを数字で入力します。スクリーンショットをご参照ください:

- OKをクリックし、続くプロンプトボックスでテキストに追加したい特定の文字を入力してください。スクリーンショットをご参照ください:

- 次に、OKボタンをクリックし、プロンプトボックスで結果を出力したいセルを1 つ選択してください。スクリーンショットをご参照ください:

- 最後にOKをクリックすると、Excel が指定された文字を X 文字ごとに入力し、その結果を指定したリスト配置エリアに表示します。

メリットとデメリット
| メリット | デメリット |
|---|---|
| 古いバージョンのExcel でも動作します | マクロを有効にする必要があります |
| 一度に多くのセルを処理できます | 初心者には VBA が難しい場合があります |
| 直接静的な結果を出力します | ソースデータが変更されても動的ではありません |
| 文字と間隔の設定が柔軟 | マクロファイルは.xlsm 形式で保存する必要があります |
方法3:ユーザー定義関数を使って X 文字ごとに文字を追加する
ユーザー定義関数(UDF)を使えば、VBA で独自のExcel 関数を簡単に作成できます。関数を追加すれば、あとは通常のワークシート関数と同じように使えます。
- VBA エディターを開くには、Alt + F11を押してください。
- クリックして、挿入 > モジュールを選択します。次のコードをモジュールにコピー&ペーストしてください。
Function InsertEveryX(TextStr As String, InsertChar As String, IntervalNum As Long) As String
Dim i As Long
Dim ResultStr As String
If IntervalNum <= 0 Then
InsertEveryX = TextStr
Exit Function
End If
For i = 1 To Len(TextStr) Step IntervalNum
ResultStr = ResultStr & Mid(TextStr, i, IntervalNum) & InsertChar
Next i
If Len(ResultStr) > 0 Then
ResultStr = Left(ResultStr, Len(ResultStr) - Len(InsertChar))
End If
InsertEveryX = ResultStr
End Function
- VBA エディターを閉じてワークシートに戻ります。次の数式を使用します:
=InsertEveryX(A2,"-",4)
ヒント:挿入する文字と間隔数をセルに保存することもできます。
次に、フィルハンドルを下にドラッグして、他のセルにも同じ数式を適用しましょう。
メリットとデメリット
| メリット | デメリット |
|---|---|
| 通常のExcel 数式のように動作します | VBA のセットアップが必要です |
| 複雑な数式よりも読みやすいです | マクロを有効にする必要があります |
| ワークブック内で再利用可能です | コピーしない限り他のワークブックでは使用できません |
| カスタム文字と間隔をサポートします | ワークブックは.xlsm 形式で保存してください |
方法4:Kutools for Excel を使って X 文字ごとに文字を追加する
複雑な数式や VBA コードを使わずに済ませたいなら、Kutools for Excel がセルのテキストに文字を挿入するもっと簡単な方法をご提供します。そのテキストツールを使えば、特定の文字を固定位置に素早く追加したり、複数のセルに一括でテキスト処理を適用したりすることが可能です。
- 文字を挿入したいセルを選択します。次に、Kutools > テキスト > テキストの追加をクリックします。

- テキストの追加ダイアログボックスで:
- 挿入したい文字(例:-、/、またはスペース)をテキストボックスに入力してください。
- 追加位置セクションで、指定された位置の後を選択し、文字を挿入する位置を指定してください。
- OKをクリックしてください。

ヒント:この例では、指定された位置の後ボックスに4、8、12 と入力しました。これは、各テキスト文字列の4 文字目、8 文字目、12 文字目の後に特定のテキストが挿入されることを意味します。
これで、指定された文字がセルの値に指定した間隔で挿入されました。
重要な注意点と制限事項
1。数式の結果は動的です。
数式を使用すると、元のテキストが変更された際に結果が自動的に更新されます。これは継続的なワークシートに非常に便利ですが、結果は常にその数式に基づいて算出されます。
固定テキスト値が必要な場合は、数式の結果をコピーして、次のようにします:ホーム>貼り付け>値の貼り付け
2。VBA およびKutools は通常、静的な結果を返します
VBA およびKutools は、一度限りの処理に最適です。文字を挿入した後、ソーステキストが変更されても、再度コードまたはツールを実行しない限り、結果は自動更新されません。
3。最後のグループが短いかどうかを確認してください。
テキストの長さが等しくなくても間隔数で割り切れる場合、最後のグループには残りの文字が含まれます。
4。空のセル
範囲を選択する際に空白セルが含まれている場合、VBA やKutools は通常、それらを自動的にスキップするか、変更せずにそのままにしておきます。ただし、数式を使用すると、空白セルが予期しない結果やエラーを引き起こす可能性があります。これを回避するには、IF 関数または IFERROR 関数で数式をラップし、空白セルを空のままに保つことができます。
=IF(A2="","",TEXTJOIN("-",TRUE,MID(A2,SEQUENCE(ROUNDUP(LEN(A2)/4,0),,1,4),4)))
5。特殊文字
ハイフン、カンマ、スペース、スラッシュ、ドットなどの一般的な区切り文字は通常どおり挿入できます。また、その他のカスタムテキストを挿入することも可能です。
まとめ
Excel で文字列の特定の間隔(X 文字ごと)に文字を挿入すると、長いテキストが読みやすく、整形しやすく、管理しやすくなります。Excel 365 またはExcel 2021 をご利用の方には、数式を使った方法が柔軟で動的なソリューションです。複数のセルを一度に処理したい場合は、VBA を使用して効率的にタスクを完了できます。再利用可能なカスタム数式が必要な場合は、ユーザー定義関数(UDF)が最適です。シンプルで視覚的かつコード不要の方法を好まれる方には、Kutools for Excel がこの種のテキスト整形作業をより迅速にこなす手段を提供します。
一般的に、動的な結果が必要な場合は数式を、より高度な制御が求められる場合は VBA または UDF を、そして手順を最小限に抑えた最も簡単なワークフローをご希望の場合はKutools をご利用ください。
最高の 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 日間のフル機能トライアル— 登録不要、クレジットカード不要
- ベストバリュー— 個別アドイン購入よりお得






