
例1:
2014年1月28日 利息収入0.10
例2:
12/27/13 チェックカード 1226 ライオンハートブックストアシアトルワシントン州-25.13
提供されている 2 つの例では、文字列の最後のスペースの後の情報を分離することが目標です。言い換えると、右側からスペースまでのデータを解析しようとしていることになります。
答え1
いい質問ですね。とても役に立つことです。少し前にこの解決策を見つけました。文字列がセル A1 にあると仮定すると、次の数式を使用できます。
=TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",LEN(A1))),LEN(A1)))
詳細については、この SO スレッドを確認してください。https://stackoverflow.com/questions/18617349/excel-last-character-string-match-in-a-string
テストデータでこれを試してみましたが、うまくいきました。
完全な開示:この式がなぜ機能するのか全く理解できませんが、機能します。
答え2
Power Query を使用すると、これを実行できます。Power Query は、Excel 2010 および Excel 2013 用の Microsoft の無料アドインであり、Excel 2016 のデータ リボンに「取得と変換」として組み込まれています。
Power Query には、区切り文字でテキストを分割するコマンドと、右端の区切り文字を使用する設定があります。
または、数式による解決法が必要な場合は、セルの長さを計算し、すべてのスペースが削除されたセルの長さを減算し、その数値を Right() 関数に入力して右端の x 文字を返します。ゼロを追加して数値に変換します。これにより、可能であれば文字列が数値に変換されます。
=RIGHT(A1,LEN(A1)-LEN(SUBSTITUTE(A1," ","")))+0
編集: コメントで ThunderFrame からの良い提案: ソースの先頭/末尾にスペースがある可能性がありますが、次のように処理できます。
=RIGHT(TRIM(A1),LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ","")))+0