KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel セルで X 文字ごとに文字を追加する - 簡単な方法

著者Xiaoyang変更日

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

X文字ごとに文字を追加

Excel で X 文字ごとに文字を追加する

重要な注意点と制限事項

まとめ


Excel で X 文字ごとに文字を追加する

以下の方法では、Excel で指定した文字数ごとに特定の文字を素早く挿入する手順をご紹介します。これにより、長いテキストや ID、製品コード、数値文字列を固定間隔で簡単に分割し、内容を標準化して読みやすくできます。

 

方法1:数式を使って X 文字ごとに文字を追加する

Excel 365 またはExcel 2021 をご利用の場合、動的配列数式を使ってテキストを固定長のグループに分割し、指定された文字で結合できます。

空白セルに次の数式を入力します:

=TEXTJOIN("-",TRUE,MID(A2,SEQUENCE(ROUNDUP(LEN(A2)/4,0),,1,4),4))

次に、Enterキーを押して確定します。その後、フィルハンドルを下にドラッグすれば、他のセルにも同じ数式が適用されます!
数式でX文字ごとに文字を追加

この数式の仕組みは?

  • 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 が最適な選択肢です。

  1. Excel でALT + F11キーを押すと、Microsoft Visual Basic for Applications ウィンドウが開きます。
  2. クリックして、挿入 > モジュールを選択し、モジュールウィンドウに次のコードを貼り付けてください。
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
  1. このコードを実行するには、F5キーを押してください。するとプロンプトボックスが表示され、テキスト文字列に特定の文字を挿入したいデータ範囲の選択を求められます。下のスクリーンショットをご確認ください:
    データ範囲を選択
  2. 次に、OKをクリックしてください。次のプロンプトボックスで、特定の文字を「何文字ごと」に挿入したいかを数字で入力します。スクリーンショットをご参照ください:
    文字数を入力
  3. OKをクリックし、続くプロンプトボックスでテキストに追加したい特定の文字を入力してください。スクリーンショットをご参照ください:
    文字を指定
  4. 次に、OKボタンをクリックし、プロンプトボックスで結果を出力したいセルを1 つ選択してください。スクリーンショットをご参照ください:
    出力セルを選択
  5. 最後にOKをクリックすると、Excel が指定された文字を X 文字ごとに入力し、その結果を指定したリスト配置エリアに表示します。
    VBAコードでX文字ごとに文字を挿入

メリットとデメリット

メリットデメリット
古いバージョンのExcel でも動作しますマクロを有効にする必要があります
一度に多くのセルを処理できます初心者には VBA が難しい場合があります
直接静的な結果を出力しますソースデータが変更されても動的ではありません
文字と間隔の設定が柔軟マクロファイルは.xlsm 形式で保存する必要があります
 

方法3:ユーザー定義関数を使って X 文字ごとに文字を追加する

ユーザー定義関数(UDF)を使えば、VBA で独自のExcel 関数を簡単に作成できます。関数を追加すれば、あとは通常のワークシート関数と同じように使えます。

  1. VBA エディターを開くには、Alt + F11を押してください。
  2. クリックして、挿入 > モジュールを選択します。次のコードをモジュールにコピー&ペーストしてください。
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
  1. VBA エディターを閉じてワークシートに戻ります。次の数式を使用します:
=InsertEveryX(A2,"-",4)

ヒント:挿入する文字と間隔数をセルに保存することもできます。

次に、フィルハンドルを下にドラッグして、他のセルにも同じ数式を適用しましょう。
UDFでX文字ごとに文字を挿入

メリットとデメリット

メリットデメリット
通常のExcel 数式のように動作しますVBA のセットアップが必要です
複雑な数式よりも読みやすいですマクロを有効にする必要があります
ワークブック内で再利用可能ですコピーしない限り他のワークブックでは使用できません
カスタム文字と間隔をサポートしますワークブックは.xlsm 形式で保存してください
 

方法4:Kutools for Excel を使って X 文字ごとに文字を追加する

複雑な数式や VBA コードを使わずに済ませたいなら、Kutools for Excel がセルのテキストに文字を挿入するもっと簡単な方法をご提供します。そのテキストツールを使えば、特定の文字を固定位置に素早く追加したり、複数のセルに一括でテキスト処理を適用したりすることが可能です。

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

ヒント:この例では、指定された位置の後ボックスに4、8、12 と入力しました。これは、各テキスト文字列の4 文字目、8 文字目、12 文字目の後に特定のテキストが挿入されることを意味します。

これで、指定された文字がセルの値に指定した間隔で挿入されました。

Kutools でExcel セルへのテキスト挿入を高速化

Kutools for Excel のテキストの追加機能を使えば、複雑な数式や VBA コードを書くことなく、選択したセルに特定の文字・記号・テキストを素早く挿入できます。

数式や VBA 不要複雑な数式を構築する代わりに、シンプルな設定でテキストを挿入できます。
一括処理同じ挿入ルールを複数のセルに一度に適用できます。
柔軟な位置指定先頭、末尾、または指定した文字位置にテキストの追加できます。
初心者にもやさしい視覚的なダイアログにより、テキストの整形がより簡単かつ効率的になります。

重要な注意点と制限事項

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 をご利用ください。