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

Excel:テキスト文字列から特定の文字を削除、単語、数値を削除する

著者Xiaoyang変更日

Excel で不要な文字、数値、記号を含むテキスト文字列のリストを扱う際、その位置や種類に応じて特定の要素を削除する必要が生じることがあります。テキストの左端や右端、中央からの文字削除や、特定の文字・数値の除去など、Excel にはデータを手軽にクリーンアップするための多彩な手法が用意されています。本チュートリアルでは、不要な文字・単語・数値をテキスト文字列から簡単に取り除くための、数式、ユーザー定義関数(UDF)、および組み込み機能を活用したステップバイステップの方法をご紹介します。

目次:

1. テキスト文字列の左端、右端、または中間から特定の文字を削除を削除する

2. テキスト文字列から不要な/特殊文字を削除する

3. 特定の文字より前または後の特定の文字を削除/テキストを削除する

4. テキスト文字列から単語を削除する


テキスト文字列の左端、右端、または中央から特定の文字を削除削除する

Excel ワークシートでテキスト文字列の左端、右端、または中央から一部の文字を削除するのは、多くのユーザーにとって日常的な作業です。本セクションでは、この作業を素早く簡単にこなすための便利なテクニックをいくつかご紹介します。

1.1 テキスト文字列から先頭の n 文字を削除する

テキスト文字列のリストから先頭の n 文字を削除したい場合、以下の方法が役立ちます。

数式を使用して

通常、テキスト文字列の先頭から文字を削除するには、REPLACE 関数を使うか、RIGHT 関数と LEN 関数を組み合わせて使うのが一般的です。

REPLACE 関数で先頭の N 文字を削除する:

=REPLACE(string, 1, num_chars, 「」)
  • 「string」:特定の文字を削除対象とするテキスト文字列;
  • 「num_chars」:削除する文字数。

たとえば、セルから先頭2 文字を削除するには、以下の数式を使用し、フィルハンドルをドラッグして他のセルにも数式をコピーしてください(スクリーンショット参照):

=REPLACE(A4, 1, 2, "")

RIGHT 関数と LEN 関数で先頭の N 文字を削除する:

=RIGHT(string, LEN(string) - num_chars)
  • 「string」:特定の文字を削除対象とするテキスト文字列;
  • 「num_chars」:削除する文字数。

セルから先頭2 文字を削除するには、次の数式を適用してください:

=RIGHT(A4,LEN(A4)-2)


ユーザー定義関数を使用して

セルから最初の N 文字を削除するには、ユーザー定義関数を作成してこのタスクを効率的に解決することもできます。以下の手順に従ってください:

1.「Alt + F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2.「挿入」>「モジュール」をクリックし、表示されるモジュールウィンドウに次のコードを貼り付けてください。

VBA コード:テキスト文字列から先頭の n 文字を削除する

Function removeFirstx(rng As String, cnt As Long)
'Updateby Extendoffice
removeFirstx = Right(rng, Len(rng) - cnt)
End Function

3.その後ワークシートに戻り、空白セルに「=removefirstx(A4,2)」という数式を入力し、フィルハンドルを下にドラッグして必要な結果を得ます(スクリーンショット参照):

注:この数式において、「A4」は文字を削除する元のセルを示し、「2」という数値はテキスト文字列の先頭から削除する文字数を表します。

ExcelでカスタムVBA関数を使用してテキストから文字を削除した結果を示すスクリーンショット


1.2 テキスト文字列から末尾の n 文字を削除する

テキスト文字列の右端から特定の文字数を削除するには、数式またはユーザー定義関数をご利用いただけます。

数式を使用する場合

テキスト文字列から末尾の n 文字を削除するには、LEFT 関数と LEN 関数を組み合わせた数式を使いましょう。

LEFT 関数と LEN 関数で末尾の N 文字を削除する:

=LEFT(string, LEN(string) - num_chars)
  • 「string」:特定の文字を削除対象とするテキスト文字列;
  • 「num_chars」:削除する文字数。

テキスト文字列の末尾から3 文字を削除するには、この数式を使用し、フィルハンドルをドラッグして他のセルにも数式をコピーしてください(スクリーンショット参照):

=LEFT(A4, LEN(A4) - 3)


ユーザー定義関数を使用して

ユーザー定義関数を使えば、セルのリストから末尾の N 文字を削除することも可能です。以下の手順に従ってください:

1.「Alt + F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2.「挿入」>「モジュール」をクリックし、表示されるモジュールウィンドウに以下のコードを貼り付けてください。

VBA コード:テキスト文字列から末尾の n 文字を削除する

Function removeLastx(rng As String, cnt As Long)
'Updateby Extendoffice
removeLastx = Left(rng, Len(rng) - cnt)
End Function

3.その後ワークシートに戻り、空白セルに「=removelastx(A4,3)」という数式を入力し、フィルハンドルを下にドラッグして必要な結果を得ます(スクリーンショット参照):

注:この数式において、「A4」は特定の文字を削除する元のセルを示し、「3」という数値はテキスト文字列の末尾から削除する文字数を表します。

ExcelでカスタムVBA関数を使用してテキストの末尾から文字を削除した結果を示すスクリーンショット


1.3 強力な機能を使用して先頭・末尾の n 文字または特定位置の文字を削除する

さまざまな数式を覚えるのは大変かもしれません。そんなときは、「Kutools for Excel」の「特定の位置の文字を削除」という強力な機能をご活用ください。テキスト文字列の左端、右端、または任意の位置から指定した文字数を簡単に削除でき、複雑な数式を覚えることなく、わずか数回のクリックでこれらの作業をスピーディに処理できます。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

1.特定の文字を削除削除したいセルを選択し、「Kutools」>「テキスト」>「特定の位置の文字を削除」をクリックします(スクリーンショット参照):

2.「特定の位置の文字を削除」ダイアログボックスで、以下の操作を行います:

2.1 セルから先頭の n 文字を削除する:

  • 「Numbers」テキストボックスに、文字列から削除したい文字数を入力してください。この例では、先頭の2 文字を削除します。
  • 「Position」セクションで「From left」オプションをお選びください。
  • 次に、「OK」または「Apply」ボタンをクリックすると、以下のスクリーンショットのような結果が得られます。

2.2 セルから末尾の n 文字を削除する:

  • 「Numbers」テキストボックスに、文字列から削除したい文字数を入力してください。この例では、末尾の3 文字を削除します。
  • 「Position」セクションで「From right」オプションをお選びください。
  • 次に、「OK」または「Apply」ボタンをクリックすると、以下のスクリーンショットのような結果が得られます。

2.3 セルの特定位置から n 文字を削除する:

文字列の特定の位置から指定した文字数を削除したい場合(例:3 文字目から3 文字を削除するなど)は、以下の方法をご活用ください。

  • 「Numbers」テキストボックスに、文字列から削除したい文字数を入力してください。この例では、特定の位置から3 文字を削除します。
  • 「指定」オプションを選択し、「位置」セクションのテキストボックスに、削除を開始したい文字位置の番号を入力します。ここでは、3 文字目から特定の文字の削除を開始します。
  • 次に、「OK」または「適用」ボタンをクリックすると、以下のスクリーンショットのような結果が得られます。

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手


1.4 数式でテキスト文字列の先頭 n 文字と末尾 n 文字を同時に削除する

Excel でテキスト文字列の両端から特定の文字数を削除したい場合は、MID 関数と LEN 関数を組み合わせて、その処理を実行する数式を作成できます。

=MID(string, left_chars + 1, LEN(string) - (left_chars + right_chars)
  • 「string」: 特定の文字を削除削除元となるテキスト文字列;
  • 「left_chars」: 左側から削除する文字数;
  • right_chars:右側から削除する文字数。

たとえば、テキスト文字列から先頭7 文字と末尾5 文字を同時に削除したい場合は、空白セルに次の数式を入力してください:

=MID(A4, 7+1, LEN(A4) - (7+5))

注:この数式では、「A4」は文字を削除する元のセルを示し、「7」は左端から削除する文字数、「5」は右端から削除する文字数をそれぞれ表します。

次に、フィルハンドルを下方向にドラッグして、この数式を適用したいセルまで伸ばすと、以下のスクリーンショットのような結果が得られます。


不要な文字/特殊文字をテキスト文字列から削除する

他の場所からExcel にデータをインポートすると、ワークシートに「#@$%^&」などの特殊文字や不要なスペース、数字、非数値文字、改行などが混入してしまうことがあります。こうした不要な文字を効率よく削除するため、本セクションではいくつかの便利な方法をご紹介します。

2.1 テキスト文字列から特定の特殊文字を削除する

テキスト文字列に「%^&*()」などの特殊文字が含まれている場合、これらの文字を削除するには、以下の3 つのテクニックをご活用いただけます。

SUBSTITUTE 関数でテキスト文字列から複数の特殊文字を削除する

通常、Excel では複数の SUBSTITUTE 関数をネストして、それぞれの特定の文字を空文字に置き換えることができます。一般的な構文は次のとおりです:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(string_cell, char1, 「」), char2, 「」), char3, 「」)
  • 「string_cell」: 特殊文字を削除したいテキスト文字列を含むセル;
  • "char1, char2, char3":削除したい不要な文字。

ここで、以下の数式をコピーまたは空白セルに入力してください:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "#", ""), "&", ""), "*", ""), "%", "")

次に、フィルハンドルを下方向にドラッグしてこの数式を適用したいセルまで伸ばすと、指定した不要な文字がすべて一度に削除され、結果は以下のスクリーンショットのようになります。

ヒント:削除したい文字がさらに多い場合は、数式内で SUBSTITUTE 関数をさらに多くネストするだけで対応できます。


ユーザー定義関数でテキスト文字列から複数の特殊文字を削除する

上記のネストされた SUBSTITUTE 関数は、削除対象の特殊文字が少ない場合には効果的です。しかし、数十もの文字を削除する必要がある場合、数式が非常に長くなり、管理が困難になります。こうしたケースでは、以下のユーザー定義関数(UDF)が、このタスクを素早く簡単に完了するのに役立ちます。

1.「Alt + F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2。「挿入」>「モジュール」をクリックし、表示されるモジュールウィンドウに以下のコードを貼り付けてください。

VBA コード:テキスト文字列から複数の特殊文字を削除する

Function RemoveUnwantedChars(Str As String, xchars As String)
'Updateby Extendoffice
    For Index = 1 To Len(xchars)
        Str = Replace(Str, Mid(xchars, Index, 1), "")
    Next
    RemoveUnwantedChars = Str
End Function

3。その後、コードウィンドウを閉じてワークシートに戻り、結果を表示したい空白セルに「=RemoveUnwantedChars(A2, $D$2)」と入力してください。その後、フィルハンドルを下にドラッグすれば、必要な結果が得られます(スクリーンショット参照)。

注:上記の数式において、「A2」は特定の文字を削除する元のセルです。「$D$2」には削除したい特殊文字が含まれており、必要に応じて他の特殊文字を自由に入力できます。

ExcelでVBAユーザー定義関数を使用してテキストから複数の特殊文字を削除した結果を示すスクリーンショット


便利な機能を使ってテキスト文字列から複数の特殊文字を削除する

「Kutools for Excel」がインストール済みなら、「特定の文字を削除」機能で、数値、英字、非表示文字など、あらゆる種類の文字をセル範囲から簡単に除去できます。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

1。特殊文字を削除したいセル範囲を選択し、「Kutools」>「テキスト」>「特定の文字を削除」をクリックしてください(スクリーンショット参照)。

2。「特定の文字を削除」ダイアログボックスで、以下の操作を行ってください。

  • 「特定の文字を削除」セクションで「カスタム」オプションにチェックを入れます。
  • その後、削除したい特殊文字をテキストボックスに入力してください。
  • 次に、「OK」または「適用」ボタンをクリックすると、指定した文字が一括で削除されます。スクリーンショットをご参照ください。

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手


2.2 テキスト文字列からすべての数字を削除する

数字、文字、特殊文字が混在したテキスト文字列のリストから数字のみを削除し、他の文字だけを残したい場合、本セクションではその作業を簡単にこなせる便利な方法をいくつかご紹介します。

SUBSTITUTE 関数でテキスト文字列から数字を削除する

Excel では、ネストされた SUBSTITUTE 関数を使ってセル内のすべての数字を空文字に置き換えることができます。そのため、次の数式でセルからすべての数字を削除できます:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,1,""),2,""),3,""),4,""),5,""),6,""),7,""),8,""),9,""),0,"")

次に、フィルハンドルを下方向にドラッグしてこの数式を適用したいセルまで伸ばすと、テキスト文字列のリストからすべての数字が削除されます(スクリーンショット参照)。


TEXTJOIN 関数でテキスト文字列から数字を削除する

Excel 2019、2021、または365 をご利用の場合、新しい TEXTJOIN 関数もテキスト文字列から数字を削除するのに役立ちます。

以下の数式を空白セルにコピーし、「Ctrl + Shift + Enter」キーを同時に押して最初の結果を取得してください:

=TEXTJOIN("", TRUE, IF(ISERR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2) )), 1) *1), MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1), ""))

次に、この数式を適用したい下のセルにコピーしてください(スクリーンショットをご参照ください)。

注:この TEXTJOIN 関数は、Excel 2019、2021 および Office 365 でのみご利用いただけます。


ユーザー定義関数でテキスト文字列から数字を削除する

上記の2 つの数式に加え、ユーザー定義関数(UDF)でも同様の操作が可能です。以下の手順に従ってください:

1。「Alt + F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2。「挿入」>「モジュール」をクリックし、表示されるモジュールウィンドウに次のコードを貼り付けてください。

VBA コード:テキスト文字列から数字を削除する

Function RemoveNumbers(Txt As String) As String
'Updateby Extendoffice
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "[0-9]"
RemoveNumbers = .Replace(Txt, "")
End With
End Function

3。その後、コードウィンドウを閉じてワークシートに戻り、「=RemoveNumbers(A2)」と入力して空白セルに数式を適用し、フィルハンドルを下にドラッグして対象のセル範囲まで数式をコピーしてください(スクリーンショット参照)。

ExcelでVBAユーザー定義関数を使用してテキスト文字列から数字を削除した結果を示すスクリーンショット


便利なオプションを使ってテキスト文字列から数字を削除する

複雑な数式に疲れていませんか?そんなあなたには、簡単操作でタスクを片付けられる「Kutools for Excel」の「特定の文字を削除」機能がおすすめです。わずか数回のクリックで、面倒な作業をサッと完了できます!

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

1。数字を削除したいセル範囲を選択し、「Kutools」>「テキスト」>「特定の文字を削除」をクリックしてください。

2。「特定の文字を削除」ダイアログボックスで、以下の操作を行ってください:

  • 「特定の文字を削除」セクションで「数値」オプションにチェックを入れます。
  • 次に、「OK」または「適用」ボタンをクリックすると、数値がすぐに削除されます。スクリーンショットをご参照ください。

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手


2.3 テキスト文字列から非数値文字を削除する

テキスト文字列からすべての非数値文字を削除して数字のみを抽出したい場合、本セクションではExcel でこのタスクを実現するためのいくつかの方法をご紹介します。

Excel 2016 以前のバージョンで数式を使用してテキスト文字列から非数値文字を削除する

Excel 2016 より前のバージョンをご利用の場合は、この操作を行うために複雑な数式を適用する必要があります。以下の数式をコピーして空白セルに貼り付けるか、直接入力してください:

=SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)) * ROW(INDIRECT("1:"&LEN(A2))), 0), ROW(INDIRECT("1:"&LEN(A2))))+1, 1) * 10^ROW(INDIRECT("1:"&LEN(A2)))/10)

次に、この数式を適用したい下のセルにコピーしてください(スクリーンショットをご参照ください)。

注:テキスト文字列内の数字が0 で始まる場合、先頭の0 は失われます。


Excel 2019、2021、365 で TEXTJOIN 関数を使用してテキスト文字列から非数値文字を削除する

上記の数式は多くのユーザーにとって分かりづらいかもしれません。Excel 2019、2021、または Microsoft 365 をご利用であれば、よりシンプルな数式でこの作業を実行できます。

以下の数式をコピーまたは空白セルに入力し、「Ctrl + Shift + Enter」キーを同時に押して最初の正しい結果を取得してください:

=TEXTJOIN("",TRUE,IFERROR(MID(A2,ROW(INDIRECT("1:100")),1)+0,""))

次に、フィルハンドルを下方向にドラッグして、この数式を適用したいセルまで伸ばすと、以下のスクリーンショットのような結果が得られます。

注:この数式では、数字がテキストとして返されるため、先頭のゼロがそのまま保持されます。


ユーザー定義関数でテキスト文字列から非数値文字を削除する

もちろん、よりシンプルな構文のユーザー定義関数を自分で作成することもできます。以下の手順に従ってください:

1.「Alt + F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2.「挿入」>「モジュール」をクリックし、表示されるモジュールウィンドウに以下のコードを貼り付けてください。

VBA コード:テキスト文字列から非数値文字を削除する

Function Removenonnumeric(str As String) As String
'Updateby Extendoffice
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "[^0-9]"
        Removenonnumeric = .Replace(str, "")
    End With
End Function

3。その後、コードウィンドウを閉じてワークシートに戻り、空白セルに「=Removenonnumeric(A2)」と入力してください。そして、フィルハンドルを下にドラッグして、この数式を適用したいセルまで伸ばします。すると、以下のスクリーンショットのように、数字のみが抽出されます。

ExcelでVBAユーザー定義関数を使用してテキスト文字列から数字のみを抽出した結果を示すスクリーンショット


シンプルな機能でテキスト文字列から非数値文字を削除する

セル範囲内の非数値文字を直接削除したい場合は、「Kutools for Excel」の「特定の文字を削除」機能を使えば、わずか数回のクリックで簡単に完了できます。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

1。非数値文字を削除したいセル範囲を選択し、「Kutools」>「テキスト」>「特定の文字を削除」をクリックしてください。

2。「特定の文字を削除」ダイアログボックスで、以下の操作を設定してください:

  • 「特定の文字を削除」セクションで、「非数値」オプションにチェックを入れます。
  • 次に、「OK」または「適用」ボタンをクリックすると、すべての非数値文字が即座に削除されます。スクリーンショットをご参照ください。

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手


2.4 テキストと数字で分割を1 つのセルから2 列に分離する

テキスト文字列をテキストと数字に分割し、それぞれを別々の列に抽出したい場合があります。以下の方法を使えば、この作業を素早く簡単に完了できます。

ユーザー定義関数でテキストと数字で分割を1 つのセルから2 列に分離する

以下のユーザー定義関数を使えば、テキストと数字を一度に分割して抽出できます。次の手順に従ってください:

1.「Alt + F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2。「挿入」>「モジュール」をクリックし、表示されるモジュールウィンドウに次のコードを貼り付けてください。

VBA コード:テキスト文字列からテキストと数字で分割を2 列に分離する

Function SplitText(pWorkRng As Range, pIsNumber As Boolean) As String
'Updateby Extendoffice
Dim xLen As Long
Dim xStr As String
xLen = VBA.Len(pWorkRng.Value)
For i = 1 To xLen
    xStr = VBA.Mid(pWorkRng.Value, i, 1)
    If ((VBA.IsNumeric(xStr) And pIsNumber) Or (Not (VBA.IsNumeric(xStr)) And Not (pIsNumber))) Then
        SplitText = SplitText + xStr
    End If
Next
End Function

3。次に、コードウィンドウを閉じてワークシートに戻り、空白セルに次の数式を入力します:=SplitText(A2,FALSE)。その後、フィルハンドルを下方向にドラッグして、この数式を適用したいセルまでコピーし、すべてのテキストを取得してください。スクリーンショットをご参照ください。

Excelでユーザー定義関数を使用してテキストと数字を分離した結果を示すスクリーンショット

4。次に、別のセルに次の数式を入力します:=SplitText(A2,TRUE)。その後、フィルハンドルを下方向にドラッグして、この数式を適用したいセルまでコピーし、数値を取得してください。スクリーンショットをご参照ください。

Excelでユーザー定義関数を使用してテキスト文字列から数字を抽出した結果を示すスクリーンショット


簡単な機能で1 つのセル内のテキストと数字で分割を2 つの列に分離する

「Kutools for Excel」をご利用の場合、「セルの分割」ユーティリティを使えば、任意の区切り文字、指定した幅、またはテキストと数字に基づいて、セルの内容を複数の列や行に簡単に分割できます。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

1。分割したいセル範囲を選択し、「Kutools」>「結合と分割」>「セルの分割」をクリックしてください(スクリーンショットを参照)。

2. 「セルの分割」ダイアログボックスで、「タイプ」セクションの「列に分割」オプションを選択し、「分割基準」セクションで「テキストと数字で分割」にチェックを入れてください。スクリーンショットをご参照ください。

3。次に、「OK」ボタンをクリックすると、別の「セルの分割」ダイアログボックスが表示されます。分割後のテキストと数字を出力するセルを選択し、「OK」ボタンをクリックしてください。すると、選択したセル内のテキストと数字が、以下のデモのように一括で2 つの列に分割されていることが確認できます:

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手


2.5 テキスト文字列から改行文字を削除する

改行とは、Excel で同じセル内に複数行のテキストを配置できる機能です。Web サイトからデータをコピーしたり、「Alt + Enter」キーを手動で押してセル内のテキストを分割したりすると、改行(キャリッジリターン)が挿入されることがあります。特定のケースでは、セルの内容を1 行として表示するために、これらの改行を削除したい場合もあるでしょう(下記スクリーンショット参照)。ここでは、Excel でこの課題を解決するためのいくつかの方法をご紹介します。

改行文字を検索と置換機能でテキスト文字列から削除する

Excel では、「検索と置換」機能を使って改行を簡単に削除できます。以下の手順に従って操作してください:

1。改行を削除したいデータの範囲を選択してください。

2。次に、「ホーム」タブから「検索と選択」>「置換」をクリックするか、「Ctrl + H」キーを押して、「検索と置換」ダイアログボックスを開いてください。スクリーンショットをご参照ください。

3。表示された「検索と置換」ダイアログボックスで、次の操作を行ってください。

  • 「検索する文字列」フィールドにカーソルを置き、「Ctrl + J」をキーボードで押してください。画面には何も表示されないかもしれませんが、改行文字が確実に挿入されています。
  • 「置換後の文字列」フィールドは、改行を単に削除する場合は空のままにしてください。スペースで改行を置き換える場合は、「スペースバー」を1 回押してください。

4。次に、「すべて置換」ボタンをクリックすると、選択したセル内の改行が一括で削除されるか、空白に置き換えられます。スクリーンショットをご参照ください:


SUBSTITUTE 関数でテキスト文字列から改行文字を削除する

SUBSTITUTE 関数と CHAR 関数を使った数式を作成すれば、テキスト文字列から改行を簡単に削除できます。

結果を得るには、以下の数式を適用してください:

=SUBSTITUTE(A2,CHAR(10),"")

ヒント:SUBSTITUTE 関数を使えば、改行文字を表す CHAR(10)を空文字に置き換えることができます。結果をカンマとスペースで区切るには、次の数式をご利用ください:

=SUBSTITUTE(A2,CHAR(10),", ")


VBA コードでテキスト文字列から改行文字を削除する

VBA コードに慣れている方は、以下のコードもぜひご活用ください。次の手順に従って操作してください:

1.「Alt + F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2.「挿入」>「モジュール」をクリックし、表示されるモジュールウィンドウに以下のコードを貼り付けてください。

VBA コード:テキスト文字列から改行を削除する

Sub RemoveCarriage()
'Updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    Rng.Value = Replace(Rng.Value, Chr(10), "")
Next
End Sub

3。「F5」キーを押してこのコードを実行すると、プロンプトボックスが表示されます。改行を削除したい範囲を選択してください(下記スクリーンショット参照)。

Excelで改行を削除する範囲を選択するようユーザーに求めるプロンプトボックスのスクリーンショット

4。次に、「OK」ボタンをクリックすると、選択したデータ範囲内のすべての改行が削除されます。


スマートなオプションでテキスト文字列から改行文字を削除する

ここでは、「Kutools for Excel」の「特定の文字を削除」機能が、改行を簡単に削除するのに役立ちます。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

1。改行を削除したいセル範囲を選択し、「Kutools」>「テキスト」>「特定の文字を削除」をクリックしてください。

2。「特定の文字を削除」ダイアログボックスで、以下の操作を設定してください:

  • 「特定の文字を削除」セクションで、「非表示文字」オプションにチェックを入れます。
  • 次に、「OK」または「適用」ボタンをクリックすると、選択したデータ範囲内のすべての改行が削除されます。スクリーンショットをご参照ください。

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手


2.6 テキスト文字列からスペースを削除(先頭、末尾、余分なスペース、またはすべてのスペース)を削除する

外部ソースからテキストをコピーしてExcel ワークシートに貼り付けると、厄介な余分な空白文字が混入してしまうことがよくあります。先頭や末尾、あるいはその他の不要なスペースを手動で削除するのは面倒ですが、幸いにもExcel にはこの作業を簡単にこなせる便利なテクニックがいくつか用意されています。

TRIM 関数でテキスト文字列から余分なスペース(先頭、末尾、連続スペース)を削除する

Excel では、テキスト文字列の先頭や末尾、および単語間の余分なスペースを削除するのに、シンプルで便利な TRIM 関数が活躍します。この関数は、単語間のスペースを1 つだけ残し、それ以外のすべてのスペースをきれいに取り除きます。

空白セルに以下の数式を入力してください:

=TRIM(A2)

次に、フィルハンドルを下方向にドラッグして他のセルにもこの数式をコピーすると、スクリーンショットのように、すべての先頭スペース、後ろのスペース、および単語間の余分なスペースが一括で削除されます:


テキスト文字列からすべてのスペースを削除する

テキスト文字列からすべての空白文字を削除したい場合は、以下の SUBSTITUTE 関数や「検索と置換」機能が便利です。

SUBSTITUTE 関数を使用する場合

SUBSTITUTE 関数を使えば、すべてのスペースを空文字に置き換えることができます。以下の数式を空白セルに適用してください:

=SUBSTITUTE(A2," ","") 

次に、フィルハンドルを下方向にドラッグして必要な他のセルにもこの数式をコピーすると、下記スクリーンショットのようにすべてのスペースが削除されます:


検索と置換機能を使用する場合

実際、Excel の「検索と置換」機能を使えば、選択したセルからすべてのスペースを簡単に削除できます。以下の手順に従ってください:

1。スペースをすべて削除したいデータ範囲を選択します。

2。次に、「ホーム」タブの「検索と選択」から「置換」を選択するか、「Ctrl + H」キーを押して、「検索と置換」ダイアログボックスを開きます。表示されたダイアログボックスで、以下の操作を行います:

  • 「検索する文字列」フィールドに「スペースバー」を押します;
  • 「置換後の文字列」フィールドは空欄のままにしてください。

3。次に、「すべて置換」ボタンをクリックすると、選択したセル内の空白文字が一括で削除されます。スクリーンショットをご参照ください。


強力な機能でテキスト文字列からあらゆる種類のスペースを削除する

「Kutools for Excel」には強力な機能「スペースを削除」が搭載されており、このユーティリティを使えば、先頭のスペース、末尾のスペース、余分なスペースに加え、選択範囲内のすべてのスペースをたった1 つのダイアログボックスで一括削除でき、作業効率が大幅に向上します。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

1。スペースを削除したいデータ範囲を選択し、「Kutools」>「テキスト」>「スペースを削除」をクリックしてください。スクリーンショットをご参照ください:

2. 「スペースを削除」ダイアログボックスで、「スペースのタイプ」から削除したいスペースの種類を選択してください。

  • 前のスペースを削除し、選択してください「前のスペース」オプション;
  • 後ろのスペースを削除し、選択してください「後ろのスペース」オプション;
  • 前のスペースおよび後ろのスペースを一度に削除し、選択してください「先頭と後ろのスペース」オプション;
  • 余分なスペースをすべて削除し、選択してください「すべての余分なスペース」オプション;
  • すべてのスペースを削除するには、「すべてのスペース」オプションを選択してください。

3。次に、「OK」または「適用」ボタンをクリックすれば、必要な結果が得られます。

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手


特定の文字より前または後の特定の文字を削除/テキストを削除する

このセクションでは、特定の文字の最初、最後、または指定した出現回数より前または後に位置するテキストや文字を削除するための操作をいくつかご紹介します。

3.1 最初の特定の文字より前または後のテキストを削除する

最初の特定の文字(例:スペースやカンマ)より前または後のテキストを、以下スクリーンショットのようなテキスト文字列リストから削除したい場合、ここでは2 つの方法をご紹介します。

数式で特定の文字より前のテキストを削除する

特定の文字より前のテキストや文字を削除するには、RIGHT 関数、LEN 関数、FIND 関数を組み合わせた数式を作成できます。一般的な構文は次のとおりです:

=RIGHT(cell, LEN(cell)-FIND(「char」, cell))
  • 「cell」: テキストを削除したいセル参照またはテキスト文字列;
  • 「char」: テキストを削除する際の基準となる特定の区切り文字。

たとえば、文字列リストから最初のカンマより前のすべてを削除するには、以下の数式を空白セルに入力し、必要なセルまで下方向にドラッグしてください。スクリーンショットをご参照ください:

=RIGHT(A2,LEN(A2)-FIND(",",A2))

注:上記の数式において、「A2」はテキストを削除したいセルを示し、「、」はテキスト削除の基準となる特定の文字です。必要に応じて、この文字を他のものに変更できます。


数式で特定の文字より後のテキストを削除する

最初の特定の文字以降のすべてを削除するには、LEFT 関数と FIND 関数を組み合わせて結果を得られます。一般的な構文は次のとおりです:

=LEFT(cell,FIND(「char」,cell)-1)
  • 「cell」: テキストを削除したいセル参照またはテキスト文字列;
  • 「char」: テキストを削除する際の基準となる特定の区切り文字。

空白セルに次の数式を入力し、その数式を適用したい他のセルまでフィルハンドルを下方向にドラッグすると、最初のカンマ以降のすべての文字が一括で削除されます。スクリーンショットをご参照ください。

=LEFT(A2,FIND(",",A2)-1)


3.2 文字の出現回数より前または後のテキストを削除する

テキスト文字列に特定の区切り文字が複数回含まれている場合、2 番目、3 番目、4 番目など、特定の出現位置より前または後のすべての文字を削除したいことがあります。こうした削除処理には、以下のテクニックをご活用ください:

数式で文字の出現回数より前のテキストを削除する

特定の文字が出現する回数より前のテキストを削除するには、以下の数式が役立ちます。一般的な構文は次のとおりです:

=RIGHT(cell,LEN(cell)-FIND(「#」,SUBSTITUTE(cell,「char」,「#」,N)))
  • 「cell」: テキストを削除したいセル参照またはテキスト文字列;
  • 「char」: テキスト削除の基準となる特定の区切り文字;
  • 「N」: テキストを削除する対象となる文字の出現位置(その文字より前を削除)。

たとえば、テキスト文字列から2 番目のカンマより前のすべてを削除するには、以下の数式を適用してください:

=RIGHT(A2,LEN(A2)-FIND("#",SUBSTITUTE(A2,",","#",2)))

注:上記の数式において、「A2」はテキストを削除したいセルを示します。「,」はテキスト削除の基準となる特定の文字であり、必要に応じて他の文字に変更可能です。「2」は、削除対象となる n 番目のカンマを表します。

次に、フィルハンドルをドラッグして数式を他のセルにコピーしてください(スクリーンショット参照)。


数式で文字の出現回数以降のテキストを削除する

特定の区切り文字が指定した回数出現した以降のテキストを削除するには、LEFT 関数、SUBSTITUTE 関数、および FIND 関数を組み合わせて使用できます。一般的な構文は次のとおりです。

=LEFT(cell, FIND(「#」, SUBSTITUTE(cell, 「char」, 「#」, N)) -1)
  • 「cell」: テキストを削除したいセル参照またはテキスト文字列;
  • 「char」: テキスト削除の基準となる特定の区切り文字;
  • N:テキストを削除する対象となる文字の出現位置(その文字以降を削除)。

基本的な構文をマスターしたら、以下の数式を空白セルにコピーまたは入力してください。

=LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)

注:上記の数式において、「A2」はテキストを削除したいセルを示します。「,」はテキスト削除の基準となる特定の文字であり、必要に応じて他の任意の文字に変更可能です。「2」は、その文字から数えて後ろのテキストを削除する対象となる n 番目のコンマを表します。

次に、フィルハンドルをドラッグして数式を他のセルにコピーすると、2 番目のコンマ以降のすべての文字が一括で削除されます(スクリーンショット参照)。


ユーザー定義関数で文字の出現回数前または後のテキストを削除する

ご覧のとおり、Excel の標準関数をさまざまな組み合わせで使うことで、特定の文字が出現する前または後のテキストを削除するケースにも対応できます。ただし、そのためにはこれらの複雑な数式を覚えておく必要があります。そこで、あらゆるシナリオに対応可能なユーザー定義関数を作成しましょう。以下の手順に従ってください。

1.「Alt + F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2.「挿入」>「モジュール」をクリックし、表示されるモジュールウィンドウに以下のコードを貼り付けてください。

VBA コード:文字の出現回数前または後のテキストを削除する

Function RemoveTextOccurrence(Str As String, Delimiter As String, Occurrence As Integer, IsAfter As Boolean)
Dim xStr As String
Dim xStrLen, xF, xIntStart As Integer
xStr = Str
xStrLen = Len(xStr)
xIntStart = 1
For xF = 1 To Occurrence
xIntStart = InStr(xIntStart + 1, xStr, Delimiter, vbTextCompare)
If (xIntStart = 0) Or (xIntStart < 0) Then
    If IsAfter Then
    RemoveTextOccurrence = xStr
    Else
    RemoveTextOccurrence = ""
    End If
    Exit Function
End If
Next
If IsAfter Then
    RemoveTextOccurrence = Mid(Str, 1, xIntStart - 1)
Else
    RemoveTextOccurrence = Mid(Str, xIntStart + 1)
End If
End Function

3。その後、コードウィンドウを閉じてワークシートに戻り、次の数式をご利用ください。

コンマの2 回目の出現位置より前のテキストを削除する:

=RemoveTextOccurrence(A2, ", ", 2, FALSE)

ExcelでRemoveTextOccurrence関数を使用してコンマの2回目の出現より前のテキストを削除した結果を示すスクリーンショット

コンマの2 回目の出現位置より後のテキストを削除する

=RemoveTextOccurrence(A2, ", ", 2, TRUE)

ExcelでRemoveTextOccurrence関数を使用してコンマの2回目の出現より後のテキストを削除した結果を示すスクリーンショット


3.3 文字の最後の出現位置より前または後のテキストを削除する

特定の文字の最後の出現位置より前または後のテキストを削除し、その文字より前または後の部分文字列のみを残したい場合、このセクションではそのための数式をご紹介します。

数式で文字の最後の出現位置より前のテキストを削除する

文字列の最後に現れる指定文字より前のすべての文字を削除する場合、一般的な構文は次のとおりです。

=RIGHT(cell,LEN(cell)-SEARCH(「#」,SUBSTITUTE(cell,「char」,「#」,LEN(cell)-LEN(SUBSTITUTE(cell,「char」,「」)))))
  • 「cell」: テキストを削除したいセル参照またはテキスト文字列;
  • 「char」: テキスト削除の基準となる特定の区切り文字;

ここで、コンマの最後の出現位置より前のテキストを削除したい場合は、以下の数式を空白セルにコピーまたは入力してください。

=RIGHT(A2,LEN(A2)-SEARCH("#",SUBSTITUTE(A2,",","#",LEN(A2)-LEN(SUBSTITUTE(A2,",","")))))

注:上記の数式において、「A2」はテキストを削除したいセルを示し、「、」はその削除の基準となる特定の文字です。必要に応じて、この文字を任意の他の文字に変更できます。

次に、フィルハンドルをドラッグして数式を他のセルにコピーすると、最後のコンマより前のすべての文字が、以下のスクリーンショットのように削除されます。


数式で文字の最後の出現位置より後のテキストを削除する

セル値が可変個数の区切り文字で区切られており、その区切り文字の最後の出現位置以降のすべてを削除したい場合、一般的な構文は次のとおりです。

=LEFT(cell,FIND(「#」,SUBSTITUTE(cell,「char」,「#」,LEN(cell)-LEN(SUBSTITUTE(cell,「char」,「」))))-1)
  • 「cell」: テキストを削除したいセル参照またはテキスト文字列;
  • 「char」: テキスト削除の基準となる特定の区切り文字;

以下の数式を空白セルにコピーまたは入力し、その後フィルハンドルを下にドラッグして、必要な他の結果を取得してください(スクリーンショット参照)。

=LEFT(A2,FIND("#",SUBSTITUTE(A2,",>","#",LEN(A2)-LEN(SUBSTITUTE(A2,",",""))))-1)

「注」:上記の数式において、「A2」はテキストを削除したいセルを示します。「、」はテキスト削除の基準となる特定の文字であり、必要に応じて他の任意の文字に変更可能です。


3.4 括弧内のテキストを削除する

括弧で囲まれた一部の文字を含むテキスト文字列のリストがある場合、以下のスクリーンショットのように、括弧ごとその中身すべてを削除したいことがあります。このセクションでは、Excel でこの作業を効率的にこなすためのいくつかのテクニックをご紹介します。

検索と置換機能で括弧内のテキストを削除する

Excel では、標準の検索と置換機能を使って括弧内のすべてのテキストを検索し、空欄に置き換えることができます。以下の手順に従ってください。

1。括弧内のテキストを削除したいデータリストを選択してください。

2。次に、「ホーム」>「検索と選択」>「置換」をクリックするか(または「Ctrl + H」キーを押して)、検索と置換ダイアログボックスを開き、以下の操作を行います。

  • 「検索する文字列」フィールドにテキストボックス内に「(*)」と入力します;
  • 「置換後の文字列」フィールドは空欄のままにしてください。

3。次に、「すべて置換」ボタンをクリックすると、選択したセル内の括弧(括弧自体も含む)が一度にすべて削除されます(スクリーンショット参照)。

ヒント:「検索と置換」機能は、テキスト文字列内に2 組以上の括弧が含まれている場合にも正常に動作します。


数式で括弧内のテキストを削除する

検索と置換機能に加え、Excel では数式を使ってこのタスクを解決することも可能です。一般的な構文は次のとおりです。

=SUBSTITUTE(text,MID(LEFT(text,FIND(「)」,text)),FIND(「(」,text),LEN(text)),「」)
  • 特定の文字を削除する対象となるテキスト文字列またはセル参照。

ここに、結果を表示したい空白セルに次の数式をコピーまたは入力してください。

=SUBSTITUTE(A2,MID(LEFT(A2,FIND(")",A2)),FIND("(",A2),LEN(A2)),"")

次に、フィルハンドルを下にドラッグしてこの数式を他のセルに適用すると、括弧内(括弧を含む)のテキストが一括で削除されます(スクリーンショット参照)。

ヒント:セル値に括弧が含まれていない場合、上記の数式を適用するとエラーが表示されます。このエラーを無視したい場合は、以下の数式をご利用ください。

=IFERROR(SUBSTITUTE(A2,MID(LEFT(A2,FIND(")",A2)),FIND("(",A2),LEN(A2)),""),A2)


ユーザー定義関数で括弧内のテキストを削除する

上記の数式は、1 組の括弧内のテキストを削除するには適しています。しかし、テキスト文字列内に複数の括弧が含まれる場合、この数式は正しく動作しません。そこで、この課題をシンプルに解決するユーザー定義関数を作成します。

1.「Alt + F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2.「挿入」>「モジュール」をクリックし、表示されるモジュールウィンドウに以下のコードを貼り付けてください。

VBA コード:括弧内のテキストを削除する

Function remtxt(ByVal str As String) As String
'Updateby Extendoffice
  While InStr(str, "(") > 0 And InStr(str, ")") > InStr(str, "(")
    str = Left(str, InStr(str, "(") - 1) & Mid(str, InStr(str, ")") + 1)
  Wend
  remtxt = Trim(str)
End Function

3。ワークシートに戻り、空白セルに「=remtxt(A2)」と入力してから、フィルハンドルを下にドラッグして数式を適用してください。すると、括弧内(括弧自体も含めて)のテキストがすべて、スクリーンショットのように削除されます。

ExcelでカスタムVBA関数を使用して複数の括弧ペア間のテキストを削除した結果を示すスクリーンショット


テキスト文字列から単語を削除する

特定のケースでは、セル内のリストから最初または最後の単語、あるいは重複した単語などを削除したいことがあります。こうした削除処理を効率的に解決するため、本セクションではいくつかの方法をご紹介します。

4.1 テキスト文字列から最初または最後の単語を削除する

テキスト文字列のリストから最初または最後の単語を削除するには、次の数式が役立ちます。

数式でテキスト文字列から最初の単語を削除する

テキスト文字列のリストから最初の単語を削除するには、RIGHT 関数、LEN 関数、および FIND 関数を組み合わせたシンプルな数式を作成できます。一般的な構文は次のとおりです。

=RIGHT(text,LEN(text)-FIND(「 」,text))
  • 最初の単語を削除したいテキスト文字列またはセル参照。

ここで、以下の数式を空白セルに入力するか、コピーしてください。

=RIGHT(A2,LEN(A2)-FIND(" ",A2))

次に、フィルハンドルを下にドラッグして、この数式を他のセルにも適用してください(スクリーンショット参照)。

ヒント:セルから先頭の N 個の単語を削除したい場合は、以下の数式をご利用ください。

=MID(TRIM(text),1+FIND(「~」,SUBSTITUTE(TRIM(text),「 」,「~」,N)),255)
  • 「text」: 先頭から n 個の単語を削除したいテキスト文字列またはセル参照;
  • N:テキスト文字列の先頭から削除する単語の数を指定します。

たとえば、セルから最初の2 つの単語を削除するには、以下の数式を空白セルにコピーまたは入力し、スクリーンショットを参照しながら必要な結果を得てください。

=MID(TRIM(A2),1+FIND("~",SUBSTITUTE(TRIM(A2)," ","~",2)),255)


 数式でテキスト文字列から最後の単語を削除する

テキスト文字列から最後の単語を削除するには、数式を使ってもこのタスクを実現できます。一般的な構文は次のとおりです。

=LEFT(TRIM(text),FIND(「~」,SUBSTITUTE(text,「 」,「~」,LEN(TRIM(text))-LEN(SUBSTITUTE(TRIM(text),「 」,「」))))-1)
  • 「text」: 最後の単語を削除したいテキスト文字列またはセル参照;

以下の数式を空白セルに入力し、その後、フィルハンドルを下にドラッグして他のセルにも適用してください(スクリーンショット参照)。

=LEFT(TRIM(A2),FIND("~",SUBSTITUTE(A2," ","~",LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ",""))))-1)

ヒント:セルのリストから末尾の N 個の単語を削除する際の一般的な構文は、次のとおりです。

=LEFT(text,FIND(「~」,SUBSTITUTE(text,「 」,「~」,LEN(text)-LEN(SUBSTITUTE(text,「 」,「」))-(N-1))))
  • 「text」: 末尾から n 個の単語を削除したいテキスト文字列またはセル参照;
  • 「N」:テキスト文字列の末尾から削除する単語の数を指定します。

たとえば、セルのリストから末尾の3 つの単語を削除するには、次の数式を使用して結果を取得してください(スクリーンショット参照)。

=LEFT(A2,FIND("~",SUBSTITUTE(A2," ","~",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-(3-1))))


4.2 セル内の重複文字または重複単語を削除する

重複する値や行を削除する際、Excel にはいくつかの異なるオプションがありますが、指定されたセル内にある重複する文字や単語を削除するには、適切な標準機能が用意されていない可能性があります。こうした課題に対応するため、このセクションではユーザー定義関数の作成をお手伝いします。

ユーザー定義関数でセル内の重複文字を削除する

セル内に同じ文字が複数回出現している場合、以下のスクリーンショットのように、最初の出現のみを残して重複する文字を削除したいときは、次のユーザー定義関数をご利用いただけます。

1.「Alt + F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2.「挿入」>「モジュール」をクリックし、表示されるモジュールウィンドウに以下のコードを貼り付けてください。

VBA コード:セル内の重複文字を削除する

Function RemoveDupeschars(pWorkRng As Range) As String
'Updateby Extendoffice
Dim xValue As String
Dim xChar As String
Dim xOutValue As String
Set xDic = CreateObject("Scripting.Dictionary")
xValue = pWorkRng.Value
For i = 1 To VBA.Len(xValue)
    xChar = VBA.Mid(xValue, i, 1)
    If xDic.Exists(xChar) Then
    Else
        xDic(xChar) = ""
        xOutValue = xOutValue & xChar
    End If
Next
RemoveDupeschars = xOutValue
End Function

3。その後、コードウィンドウを閉じてワークシートに戻り、データの隣の空白セルに「=RemoveDupeschars(A2)」と入力し、フィルハンドルをドラッグしてこの数式を必要なセルに適用します(スクリーンショット参照)。

注:「A2」は重複する文字を削除したいデータが入力されているセルです。

セル内のテキスト文字列から重複する文字を削除するためにExcelで数式が適用されているスクリーンショット

ヒント:この関数は大文字と小文字を区別するため、それぞれを異なる文字として扱います。


ユーザー定義関数でセル内の重複単語を削除する

セル内に同じ単語やテキスト文字列が含まれており、以下のスクリーンショットのようにセル内の重複する単語をすべて削除したい場合は、Excel でこのタスクを解決するために次のユーザー定義関数をご利用いただけます。

1.「Alt + F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2.「挿入」>「モジュール」をクリックし、以下のコードをモジュールウィンドウに貼り付けてください。

VBA コード:セル内の重複単語を削除する

Function RemoveDupeswords(txt As String, Optional delim As String = " ") As String
'Updateby Extendoffice
    Dim x
    With CreateObject("Scripting.Dictionary")
        .CompareMode = vbTextCompare
        For Each x In Split(txt, delim)
            If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing
        Next
        If .Count > 0 Then RemoveDupeswords = Join(.keys, delim)
    End With
End Function

3。その後、コードウィンドウを閉じてワークシートに戻り、データの隣の空白セルに数式「=RemoveDupeswords(A2、"、 ")」を入力し、フィルハンドルをドラッグしてこの数式を必要なセルに適用します(スクリーンショット参照)。

注:「A2」は重複する単語を削除したいセルであり、コンマとスペース(「,」)はテキスト文字列を区切るための区切り文字です。必要に応じて、これらを任意の他の区切り文字に変更できます。

セル内のテキスト文字列から重複する単語を削除するためにExcelで数式が適用されているスクリーンショット

ヒント:この機能では大文字と小文字は区別されず、同一の文字として扱われます。


4.3 テキスト文字列を N 個の単語にトリミング

セル内に長いテキスト文字列がある場合、先頭から特定の単語数だけを残して以降をカットしたいことがあります。本セクションでは、Excel でこの処理を実現するためのいくつかのテクニックをご紹介します。

数式でテキスト文字列を N 個の単語に切り詰める

テキスト文字列を N 個の単語にトリミングするには、LEFT 関数、FIND 関数、および SUBSTITUTE 関数を組み合わせた数式を作成します。一般的な構文は次のとおりです。

=LEFT(text,FIND(「~」,SUBSTITUTE(text,「 」,「~」,N))-1)
  • 「text」: トリミングしたいテキスト文字列またはセル参照;
  • 「N」: 指定されたテキスト文字列の左端から残したい単語の数。

この作業を行うには、以下の数式を空白セルにコピーまたは入力してください。

=LEFT(A2,FIND("~",SUBSTITUTE(A2," ","~",B2))-1)

その後、フィルハンドルを下にドラッグして、この数式を他のセルにも適用してください(下記スクリーンショット参照)。


ユーザー定義関数でテキスト文字列を N 個の単語に切り詰める

上記の数式以外にも、このタスクを解決するためのユーザー定義関数を作成できます。以下の手順に従ってください。

1.「Alt + F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2.「挿入」>「モジュール」をクリックし、以下のコードをモジュールウィンドウに貼り付けてください。

VBA コード: テキスト文字列を N 個の単語にトリミング

Function GetNWords(StrWords As String, Num_of_Words As Integer) As String
'Updateby Extendoffice
Dim xArr
Dim xRes As String
Dim xF As Integer
xStr = StrWords
If (Num_of_Words < 1) Then
    GetNWords = ""
    Exit Function
End If
xArr = Split(xStr, " ")
xRes = ""
On Error Resume Next
For xF = 0 To UBound(xArr)
    If Trim(xArr(xF)) <> "" Then
    Num_of_Words = Num_of_Words - 1
        If xRes = "" Then
            xRes = Trim(xArr(xF))
        Else
            xRes = xRes & " " & Trim(xArr(xF))
        End If
    End If
    If Num_of_Words = 0 Then Exit For
Next
If Num_of_Words = 0 Then
    GetNWords = xRes & "..."
Else
    GetNWords = xRes & "..."
End If
End Function

3.次に、コードウィンドウを閉じてワークシートに戻り、空白セルに数式「=GetNWords(A2,B2)」を入力します。その後、フィルハンドルを下にドラッグしてこの数式を他のセルにも適用すると、下記スクリーンショットのように指定した単語数のみが保持されます。

Excelでユーザー定義関数を適用してテキスト文字列を指定された単語数にトリミングした結果を示すスクリーンショット

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

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 アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得