私は次のように書かれた名前でいっぱいの列を持っています:
"lastName、firstName"
この名前リストが次のように記述されている別の列が必要です。
"名前苗字"
では、文字列を「lastName、firstName」から「firstNameLastName」に切り替えるにはどうすればよいですか?
私は次のように書かれた名前でいっぱいの列を持っています:
"lastName、firstName"
この名前リストが次のように記述されている別の列が必要です。
"名前苗字"
では、文字列を「lastName、firstName」から「firstNameLastName」に切り替えるにはどうすればよいですか?
名がA2にある場合は、コピーしたB2でこの式を試してください
=MID(A2&" "&A2,FIND(" ",A2)+1,LEN(A2)-1)
セルにデータを入力します。
Brown, John
Green, Bob
Smith, Will
(この場合のコンマは、システムがエントリを区切るために使用する区切り文字であることに注意してください)これらのセルを強調表示します。
[データ]タブをクリックし、[テキストから列]をクリックします。
提供されるオプションを選択してください。
私のために働いた=RIGHT(C3、LEN(C3)-LEN(LEFT(C3、FIND( "、"、C3)-1))-1)& ""&LEFT(C3、FIND( "、"、C3 )-1)
単一のセル(A2)に「名姓」などのエラーも含まれていない場合、バリーの答えは正しいです。これはよくあることです。
したがって、「Last、First」または「FirstLast」のいずれかのセルデータを処理するには、セルを比較して適切にアクションを実行する必要があります。また、私の例では、名を独自の列に移動し、姓を独自の列に移動したことにも注意してください。もちろん、それらを1つの列に結合することもできます。
まず、必要なものを分解してみましょう。これにより、セルの内容に「、」が含まれている場合に名が返されます(分割するフィールドがA2にあると想定し、必要に応じて調整します)。
=MID(A2;FIND(",";A2)+2;99)
存在しない場合、これは名を返します。
=MID(A2;1;FIND(" ";A2))
カンマがある場合の姓の場合:
=MID(A2;1;FIND(",";A2)-1)
ない場合の姓:
=MID(A2;FIND(" ";A2)+1;99)
したがって、文字列に「、」があるかどうかをテストし、ない場合はエラー条件を処理する必要があります(FINDは見つからない場合は#valueを返し、ISERROR()はそれをテストできます)。オプションで(そして私のアプローチでは)、FINDの戻り値が数値を生成したかどうかをチェックすることでした(エラーは発生しません)。この場合、「それが見つからないというエラー状態」は、数値以外の#Valueを生成します。
=IF( ISNUMBER( FIND(",";A2)); MID(A2;FIND(",";A2)+2;99); MID(A2;1;FIND(" ";A2)))
姓に対して同じことを行うと、次のようになります。
=IF( ISNUMBER( FIND(","; A2)); MID(A2;1;FIND(",";A2)-1); MID(A2;FIND(" ";A2)+1;99))
私のソリューションは、スプレッドシートアプリケーションOpenOfficeを使用していたことに注意してください。Excelには別の検索方法(検索?)があると思いますので、必要に応じて調整してください。
上記の答えは正しくありません。実際、私自身の名前、ジェイ・ジェイコブ・ウィンドの場合、公式は破られます。正しい式は次のとおりです。
Last、Firstが列Aにあり、1つのコンマとスペースバーで区切られていると仮定します
名の場合:
=mid(A2,find(",",A2)+2,99)
姓の場合:
=mid(A2,1,find(",",A2)-1)
まとめると、列Bが名で、列Cが名前= B2& ""&C2であると仮定します。
または単に(しかしより複雑に)
=mid(A2,find(",",A2)+2,99)&" "&mid(A2,1,find(",",A2)-1)
しかし、私はそれらを2つの列に分割し、それらを連結するのが好きです