上記のようなことをお考えでしたら、このまま読んでいってください。
この記事では、下記の内容をまとめて解説いたします。
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください
Power Automateで文字列を抽出する方法
文字列の抽出は目的に応じて2つの方法があります。
- 特定の文字を基準に抽出(ABC-123 → ABC, 123)
- 位置を基準に抽出(ABCDEFG → CDE)
それぞれ画像付きで解説いたします。
Power Automateの起動や基本的な使い方は下記記事をご参考ください。
特定の文字を基準にして抽出
今回は文字列「ABC-123」から「ABC」を抽出してみましょう。
使用するアクションは「テキストを切り抜く」です。
左側のアクションエリアから「テキスト」を探し出し、「>」をクリックします。

すると「テキスト」に関するアクション一覧が表示されますので、「テキストを切り抜く」を中央エリアにドラッグ&ドロップします。

「テキストを切り抜く」画面が表示されたら、下記の指定をします。
- 元のテキスト:文字列を入力するか、右側の{x}から変数や配列を指定
- モード:抽出したい部分に応じて変更
- 指定されたフラグの前にあるテキストを取得する:「ABC-123」→「ABC」
- 指定されたフラグの後にあるテキストを取得する:「ABC-123」→「123」
- 終了フラグ:特定の文字を指定(今回は「-」)
- (大文字小文字を区別しない:必要に応じてONにする)


今回は「-」より前の「ABC」を抽出したいので、「指定されたフラグの前にあるテキストを取得する」を指定しました。
では、メッセージボックスを追加して結果を表示してみましょう。
※メッセージボックスの表示方法はこちらの記事を参照

無事、抽出された「ABC」が表示されました。成功です。
特定の文字が2箇所ある場合
「ABC-123-456」など、特定の文字が2箇所以上ある場合はどうなるのでしょうか?
「フラグの前」「フラグの後」両方試してみます。

最初の「-」が基準となるようです。
「-」に挟まれた「123」を抽出したい場合は、別のモードがあります。
- モード:指定された2つのフラグの間にあるテキストを取得する

各フラグは別の文字でも可能です。
「ABC-123/456」なら、開始フラグに「-」を、終了フラグに「/」を指定してください。
実行すると、無事「123」が取得できました。

位置を基準にして抽出
文字列「ABCDEFG」の3文字目~5文字目までの「CDE」を抽出してみましょう。
使用するアクションは「サブテキストの抽出」です。

前項同様にアクションを追加したら、設定画面が開きますので、下記の指定をします。
- 元のテキスト:文字列を入力するか、右側の{x}から変数や配列を指定
- 開始インデックス:今回は「文字の位置」を指定
- テキストの先頭:先頭から○文字分抽出したい場合はこちらを指定
- 文字の位置:文字列の○文字目から抽出したい場合はこちらを指定
- 文字の位置:抽出する文字の開始位置を指定
※0から始まることに注意(2文字目なら1、3文字目なら2) - 長さ:今回は「文字数」を指定
- テキストの末尾:開始位置から最後まで抽出したい場合はこちらを指定
- 文字数:開始位置から○文字分抽出したい場合はこちらを指定
- 文字数:開始位置から抽出する文字数を指定

開始位置が「マイナス」指定の場合はエラーになります。
開始位置が元の文字数より多い場合はエラーになります。
元の文字列の末尾より多い文字数を指定した場合はエラーになります。

最後に
Power Automateで文字列を抽出する方法を解説いたしました。
当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!


