最後の言葉

一見単純な問題ですが、解決策は明らかではありません。 テキスト行から最後の単語を抽出する. まあ、または、一般的なケースでは、特定の区切り文字 (スペース、コンマなど) で区切られた最後のフラグメントです。指定された文字の右側にあるすべての文字を抽出します。

数式、マクロ、および Power Query を使用して選択する従来のいくつかの方法を見てみましょう。

方法 1. 数式

数式の本質と仕組みを理解しやすくするために、少し遠くから始めましょう。 まず、ソース テキストの単語間のスペースの数を、たとえば 20 個に増やしてみましょう。 これは、replace 関数を使用して行うことができます。 代替 (代わりの) そして、与えられた文字を N 回繰り返す関数 – 繰り返す (繰り返し):

最後の言葉

関数を使用して、結果のテキストの末尾から 20 文字を切り取ります。 RIGHT (正しい):

最後の言葉

暖かくなってきましたね。 関数を使用して余分なスペースを削除する必要があります TRIM (トリム) そして問題は解決されます:

最後の言葉

英語版では、式は次のようになります。

=TRIM(RIGHT(SUBSTITUTE(A1;» «;REPT(» «;20));20))

原則として正確に 20 個のスペースを挿入する必要がないことは明らかであることを願っています。ソース テキスト内の最長の単語の長さよりも長い限り、任意の数でかまいません。

また、ソース テキストをスペースではなく別の区切り文字 (コンマなど) で区切る必要がある場合は、式を少し修正する必要があります。

最後の言葉

方法2.マクロ機能

テキストから最後の単語またはフラグメントを抽出するタスクは、マクロを使用して解決することもできます。つまり、必要なことを実行する逆検索関数を Visual Basic で記述します。終わりから始まり。

キーボードショートカットを押す 他の+F11 またはボタン ビジュアルベーシック タブ 開発者 (デベロッパー)をクリックしてマクロ エディターを開きます。 次に、メニューから新しいモジュールを追加します インサート – モジュール そこに次のコードをコピーします。

 Function LastWord(txt As String, オプション delim As String = " ", オプション n As Integer = 1) As String arFragments = Split(txt, delim) LastWord = arFragments(UBound(arFragments) - n + 1) End Function  

これで、ワークブックを (マクロが有効な形式で) 保存し、作成した関数を次の構文で使用できます。

=LastWord(txt ; delim ; n)

コラボレー

  • TXT – ソース テキストを含むセル
  • デリム — 区切り文字 (デフォルト — スペース)
  • n – 最後から抽出する単語 (デフォルトでは – 最後から最初の単語)

最後の言葉

将来、ソース テキストが変更されると、標準の Excel シート関数と同様に、マクロ関数がその場で再計算されます。

方法 3. パワー クエリ

パワークエリ は、ほとんどすべてのソースからデータを Excel にインポートし、ダウンロードしたデータを任意の形式に変換するための Microsoft の無料のアドオンです。 このアドインのパワーとクールさは非常に優れているため、Microsoft は既定ですべての機能を Excel 2016 に組み込みました。 Excel 2010-2013 の場合、Power Query はここから無料でダウンロードできます。

Power Query を使用して特定の区切り記号で最後の単語またはフラグメントを区切るというタスクは、非常に簡単に解決できます。

まず、キーボード ショートカットを使用して、データ テーブルをスマート テーブルに変えてみましょう。 Ctrlキー+T またはコマンド ホーム – 表としてフォーマットする (ホーム — テーブルとしてフォーマット):

最後の言葉

次に、コマンドを使用して、作成した「スマート テーブル」を Power Query に読み込みます。 テーブル/範囲から (テーブル/範囲から) タブ 且つ (Excel 2016 を使用している場合) またはタブで パワークエリ (Excel 2010-2013 をお持ちの場合):

最後の言葉

開いたクエリ エディター ウィンドウで、タブの 変換 (変身) チームを選ぶ 列の分割 – 区切り記号による (列の分割 — 区切り記号による) その後、区切り文字を設定してオプションを選択する必要があります 右端の区切り記号すべての単語をカットするのではなく、最後の単語だけをカットするには:

最後の言葉

をクリックした後 OK 最後の単語は新しい列に分けられます。 不要な最初の列は、そのヘッダーを右クリックして選択することで削除できます 削除します (消去). テーブル ヘッダーの残りの列の名前を変更することもできます。

コマンドを使用して、結果をシートにアップロードすることができます。 ホーム — 閉じてロード — 閉じてロード … (ホーム — クローズ & ロード — クローズ & ロード…):

最後の言葉

その結果、次のようになります。

最後の言葉

このように – 安価で陽気で、数式やマクロがなく、ほとんどキーボードに触れる必要がありません 🙂

元のリストが将来変更された場合は、右クリックまたはキーボード ショートカットを使用するだけで十分です Ctrlキー+他の+F5 リクエストを更新してください。


  • スティッキー テキストを列に分割する
  • 正規表現によるテキストの解析と解析
  • SUBSTITUTE 関数を使用してテキストから最初の単語を抽出する

コメントを残す