括弧付きテキストから最初の文字を引き出す(Microsoft Excel)
トムはかなりの量のテキストを含むワークシートを持っています。彼は、任意のセルのテキストから、括弧内の各単語の最初の文字を引き出す方法を必要としています。たとえば、セルに「根絶する必要のある雑草が(春の間に)ある」と含まれている場合、トムは「dts」を引く必要があります
そのテキストから。彼は、これはマクロで実行する必要があると考えていますが、どこから始めればよいのかわかりません。
このタスクを手動で実行したい場合、実行するのはそれほど難しくありません。手順をすばやく一般的に説明します。
テキストが列Aにあり、各セルに含まれる括弧のセットが1つだけであると仮定します。この場合、列Bに次のように入力できます。
=IFERROR(LEFT(MID(A1,FIND("(",A1)+1,LEN(A1)),FIND(")", MID(A1,FIND("(",A1)+1,LEN(A1)))-1),"")
ここでは数式を2行に分割しましたが、これは1つの数式であり、そのように入力する必要があることに注意してください。必要な数のセルにコピーします。列Bに表示されるのは、セルの場合、最初の括弧のセット(存在する場合)に含まれるテキストです。
次に、列Bのすべてのセルを選択し、Ctrl + Cを押してから、[形式を選択して貼り付け]を使用して値をそれらのセルに貼り付けます。これにより数式は削除されますが、抽出された括弧内のテキストは残ります。
これで、列Bのセルが選択されたままになります。 (リボンの[データ]タブから)[テキストから列へ]ウィザードを使用して、単語を個々のセルに分割します。これは、ウィザードでスペースを区切り文字として使用すると簡単に実行できます。これを実行すると、列Cで始まる各列に1つの単語が表示されます。
ここで、単語が含まれていない最初の列(J列としましょう)に、次の数式を入力します。
=LEFT(TRIM(C1),1) & LEFT(TRIM(D1),1) & LEFT(TRIM(E1),1) & LEFT(TRIM(F1),1) & LEFT(TRIM(G1),1)) & LEFT(TRIM(H1),1) & LEFT(TRIM(I1),1)
繰り返しますが、これは3行で示されていますが、単一の式です。これにより、列Jに目的の最初の文字が表示されます。
たまに文字を引っ張るだけでよいのであれば、明らかにこのプロセスは「実行可能」です。より頻繁に行う必要がある場合は、ユーザー定義関数を使用して作業を行う方がよいでしょう。以下は、問題なく機能する単純なものです。
Function PickInitials(sRaw As String) As String Dim sTemp As String Dim J As Integer Dim Wds() As String sTemp = "" J = InStr(sRaw, "(") If J > 0 Then sTemp = Mid(sRaw, J + 1) J = InStr(sTemp, ")") If J > 0 Then sTemp = Left(sTemp, J - 1) End If Wds = Split(sTemp) sTemp = "" For J = 0 To UBound(Wds) sTemp = sTemp & Left(Trim(Wds(J)),1) Next J End If PickInitials = sTemp End Function
この関数を使用するには、セルで次を使用するだけです。
=PickInitials(A1)
この関数は、セルに括弧がない場合、開き括弧しかない場合、単語間の複数のスペースによってスローされない場合に問題なく機能します。この関数は、最初の文字の大文字を保持します。すべての文字を小文字として返したい場合は、マクロの最後の行を次のように変更できます。
PickInitials = LCase(sTemp)
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(13622)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。