ランスのワークブックには一連の名前があります。名前はすべて列Aにあり、姓名が付いているものもあれば、姓名を使用しているものもあります。彼は名前を個々の列に分ける必要がありますが、テキストから列へのウィザードでは満足のいく結果が得られません。分離は問題ありませんが、2対3の名前の問題は、データが分割された後、ランスがデータを手動でマッサージする必要があることを意味します。

この問題の解決策は、Text to Columnsウィザードに依存せず、代わりにいくつかの数式を使用して名前を列に入れることです。達成する結果は、解析しているデータの状態に大きく依存します。データが「firstmiddlelast」の形式(ミドルネームはオプション)の場合、次の式を使用して名を引き出すことができます。

=LEFT(A1,SEARCH(" ",A1,1)-1)

この式は、名前の最初のスペースをチェックし、そのスペースより前のすべてが名であると想定します。次の式を使用して、ミドルネームがあるかどうかを判断し、ある場合はそれを表示します。

=IF(ISERROR(SEARCH(" ", RIGHT(A1, LEN(A1) - _ SEARCH(" ", A1, 1)), 1)) = TRUE, "", _ LEFT(RIGHT(A1,LEN(A1) - SEARCH(" ", A1, 1)), _ SEARCH(" ", RIGHT(A1, LEN(A1) - SEARCH(" ", _ A1, 1)), 1) - 1))

数式は、名前に2番目のスペースが存在するかどうかを確認します。エラーが生成された場合(2番目のスペースがない場合)、数式は何も返しません。ミドルネームはありません。 2番目のスペースが検出された場合(エラーは生成されません)、数式は最初のスペースの後から2番目のスペースまでのすべてを返します。

=RIGHT(A1,LEN(A1)-LEN(B1)-LEN(C1)-IF(C1="",1,2))

この式は、ファーストネームとミドルネームの両方に対して返された結果に依存しています。名(セルB1で想定)とミドルネーム(C1で想定)の長さを考慮した後、元の名前に残っているすべてのものを返します。

繰り返しますが、これらの式は、元のデータが「最初から最後」にある場合に機能します

または「最初のミドルラスト」フォーマット。 Ms.、Dr.、Jr。、IIIなどの名前に修飾子がある場合、満足のいく結果は得られません。さらに、姓にスペースが含まれている場合(「JohnvanKamp」や「MaryAnne St. Marie」のように)、満足のいく結果は得られません。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2789)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。