最初と最後の単語の抽出(Microsoft Excel)
Reggieには、3つ以上の単語を含むセルがあります。 (単語の数は異なる場合があります。)彼は、セルの最初の単語またはセルの最後の単語のいずれかを抽出できる式を必要としています。たとえば、セルに「Reggie was here in 2012」というフレーズが含まれている場合、「Reggie」を抽出する数式と「2012」を抽出する数式が必要です。
数式を使用して両方の単語を抽出できます。最初の単語の抽出は比較的簡単です。フレーズの最初のスペースの場所を見つけて、その左側にあるものをすべて抽出するだけです。フレーズがA1にあると推定される場合は、次の式を使用できます。
=LEFT(A1,FIND(" ",A1)-1)
原則として、最後の単語を同じように取得するには、文字列の最後のスペースを見つけるのがさらに複雑になります。これを行う方法は次のとおりです。
。スペースの数を数えます。最後のスペースを別の文字に変更します(フレーズの他の場所にはありません)
。次に、その「別の文字」を見つけます
。その「別の文字」の右側にあるフレーズの部分を取ります
使用できる「異なる文字」は、最初のASCII文字(つまり、char(1))です。これは印刷されず、フレーズに含まれる可能性はほとんどありません。スペースの数は、フレーズの長さとスペースのないフレーズの長さの差をとることによって見つけることができます(SUBSTITUTEを使用してすべてのスペースをヌル文字列に置き換えます):
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
次に、スペースの最後の出現をchar(1)に置き換えることができます:
SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ","")))
次に、その文字列内のchar(1)の場所を見つけることができます:
FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)- LEN(SUBSTITUTE(A1," ",""))))
最後の単語の最初の文字はこれを1文字超えています:
1+ FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)- LEN(SUBSTITUTE(A1," ",""))))
次に、MID関数を使用して、この場所から始まり、文字列の終わりまで文字列の一部を抽出できます。 (正確な長さを計算する必要はありません。最後の単語の長さよりも大きい数字を選択すると、最後の単語のみが選択されます。したがって、上の場所から開始して、の文字数を抽出できます。十分な数があることを確認するための文字列。):
=MID(A1,1+FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1), LEN(A1)-LEN(SUBSTITUTE(A1," ","")))),LEN(A1))
必要に応じて、ユーザー定義関数を作成して、必要な単語を取得することもできます。最初の単語をつかむのは簡単です:
Function FirstWord(c As String) Dim arr arr = Split(Trim(c), " ") FirstWord = arr(LBound(arr)) End Function
この関数は、Split関数を使用して、2番目のパラメーター( “”)を区切り文字として使用して、指定されたセルにあるものをすべて引き離します。配列(arr)の各要素には、元の文字列の一部が含まれます。この場合、返されるのは配列の最初の要素(LBoundで指定)、つまり最初の単語です。
フレーズの単語は配列に配置されているため、関数のわずかなバリエーションを使用して、最後の単語を返すことができます。
Function LastWord(c As String) Dim arr arr = Split(Trim(c), " ") LastWord = arr(UBound(arr)) End Function
基本的に、関数の実際の変更は、LBoundの代わりにUBoundを使用することだけであることに注意してください。 UBound関数は、配列の最後の要素を指定します。ワークシートでは、次のようにこれらの関数の両方を使用できます。
=FirstWord(A1) =LastWord(A1)
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(11984)は、Microsoft Excel 97、2000、2002、および2003に適用されます。
Excel(Excel 2007以降)のリボンインターフェイスに関するこのヒントのバージョンは、次の場所にあります: