名前を個々の列に分離する(Microsoft Excel)
ランスのワークブックには一連の名前があります。名前はすべて列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))
ここでは数式が5行で表示されていますが、実際には1つの数式であるため、そのように入力する必要があります。数式は、名前に2番目のスペースが存在するかどうかを確認します。エラーが生成された場合(2番目のスペースがない場合)、数式は何も返しません。ミドルネームはありません。 2番目のスペースが検出された場合(エラーは生成されません)、数式は最初のスペースの後から2番目のスペースまでのすべてを返します。
次の式を使用して姓を抽出します:
=RIGHT(A1,LEN(A1)-LEN(B1)-LEN(C1)-IF(C1="",1,2))
この式は、ファーストネームとミドルネームの両方に対して返された結果に依存しています。名(セルB1で想定)とミドルネーム(C1で想定)の長さを考慮した後、元の名前に残っているすべてのものを返します。 (図1を参照)
図1.名前を列に分ける。
繰り返しますが、これらの式は、列Aの名前がかなり厳格なガイドラインに従っている場合に機能します。名前は「最初の最後」または「最初の最後の最後」の形式である必要があります。 Ms.、Dr.、Jr。、IIIなどの名前に修飾子がある場合、満足のいく結果は得られません。さらに、姓にスペースが含まれている場合(「JohnvanKamp」や「MaryAnne St. Marie」のように)、または名前にスペースがまったく含まれていない場合も、満足のいく結果は得られません。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(12383)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。
Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります:
link:/ excel-Separating_Names_into_Individual_Columns [名前を個々の列に分離する]
。