文字列を分割・置換する(リストの位置・空白・区切りを図解)
カンマ区切りの文字を2項目に分け、先頭項目の前後の空白を取り除いてハイフンを置き換えます。分割後のリストと整形後の文字を図で比べ、区切り違い・空欄も確認します。
画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。
実行前に確認
- Windows版Power Automate for desktopの有人・手動実行を前提にした例です。この例ではクラウドコネクタを使いませんが、実行方法や組織環境に応じたライセンス・利用権限は確認してください。メッセージはOKを押すまで待機します。
- Parts[0]の0はリストの先頭を表し、Parts.Countの2は項目数です。トリミングや置換の結果は別の変数へ入るため、元のSourceTextやPartsの内容を書き換える例ではありません。Parts[1]は確認用で、この例では整形・出力しません。
- 取り除くのは先頭と末尾の空白です。文字の途中のスペースは残ります。2項目かどうかと先頭項目の空欄だけを確認する練習で、2番目の項目の内容や業務上の妥当性までは検証しません。
- 引用符で囲まれた値の中にカンマがあるCSVには対応しません。CSVファイルは「CSV ファイルから読み取る」を使います。連続するカンマ、先頭・末尾のカンマ、完全な空文字はこの練習の期待値の対象外です。実データに使う前に分割結果を確認してください。
- 入力チェックによる停止は「正常に終了」の設定です。アクションの実行エラーとは区別します。エラー発生時は既定の停止設定で原因を確認し、エラーを無視して未設定のCleanTextを使いません。外側のブロックエラー処理や再試行を追加しない練習です。
1使うアクション
- アクション 1変数の設定SourceText に練習用の文字を設定
- アクション 2テキストの分割半角カンマで分けて Parts を作成
- アクション 3IfParts.Count が 2 と等しくない
- アクション 4メッセージを表示2項目に分けられません
- アクション 5フローを停止正常に終了。置換へ進まない
- アクション 6End件数確認のIfを閉じる
- アクション 7テキストのトリミングParts[0] の先頭・末尾の空白を除去
- アクション 8IfTrimmedText が空である
- アクション 9メッセージを表示先頭項目が空欄です
- アクション 10フローを停止正常に終了。置換へ進まない
- アクション 11End空欄確認のIfを閉じる
- アクション 12テキストを置換するTrimmedText の - を / に置換
- アクション 13メッセージを表示CleanText を表示
図で見る処理のイメージ
概念図1つの文字列 → リスト2項目 → 先頭項目だけを整形、という変化を追います。␠ は半角スペースを見えるようにした記号です。
文字とリストを分けて見る
テキストの分割
2 · Parts / リストParts.Count = 2
元のリストはそのままTrimmedTextとCleanTextは別の出力変数です。Parts[0]には、空白やハイフンを含む元の項目が残ります。
基本例では「りんご/赤」だけを表示します。区切り方が想定と違う入力や先頭項目が空白だけの入力は、結果表示へ進めません。
狭い画面では、表を横にスクロールして入力と結果を比べられます。
| SourceTextの例 | Partsの件数 | 結果・確認すること |
|---|---|---|
| 「␠りんご-赤␠,みかん」 | 2 | りんご/赤 |
| 「りんご-赤」 | 1 | 2項目に分けられません → 結果表示せず終了 |
| 「りんご-赤,みかん」 | 1 | 全角カンマでは分割されず、件数確認で終了 |
| 「りんご-赤,みかん,ぶどう」 | 3 | 2項目に分けられません → 結果表示せず終了 |
| 「␠␠␠,みかん」 | 2 | Trim後は空欄 → 先頭項目が空欄です → 終了 |
| 「␠りんご␠-赤␠,みかん」 | 2 | りんご␠/赤 → 途中の空白は残る |
| 「りんご--赤,みかん」 | 2 | りんご//赤 → ハイフンをすべて置換 |
表は設定から考えられる期待値です。サイト上では文字処理を実行せず、実際のPower Automateフローを実行して確認した結果ではありません。実際の表示名・配置はバージョンにより異なる場合があります。
設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。
2実際の設定内容
入力する値・操作手順を確認する10ステップの設定と確認方法
- 1
準備:WindowsのPower Automate for desktopで、Power Fxをオフにした練習用フローを作ります。ファイルやアプリへの書き込みはせず、固定の文字を画面に表示する例です。入力は半角カンマ1個で区切った2項目とし、整形するのは先頭項目だけです。
- 2
変数の設定:変数名=SourceText、値=「 りんご-赤 ,みかん」。先頭とカンマの直前に半角スペースを1個ずつ入れます。「」は説明用なので入力しません。図の ␠ も説明用で、実際には半角スペースを入力します。
- 3
テキストの分割:分割するテキスト=%SourceText%、区切り記号の種類=カスタム、カスタム区切り記号=半角の ,、正規表現=オフ、生成された変数=Parts。Partsは文字列ではなくリストになり、この例の %Parts.Count% は2、%Parts[0]% は最初、%Parts[1]% は2番目の項目です。
- 4
最初のIf:最初のオペランド=%Parts.Count%、演算子=等しくない(<>)、2番目のオペランド=数値の 2。内側にメッセージ「2項目に分けられません」と「フローを停止」を置き、停止方法を「正常に終了」にします。EndでIfを閉じます。2件でなければ、Parts[0]を使う後続処理には進みません。
- 5
最初のEndの後にテキストのトリミング(Trim text)を置きます。対象=%Parts[0]%、「先頭と末尾の空白文字」を削除、出力=TrimmedText。この例では「りんご-赤」になります。空白を除去するTrim textを選び、目印の前後を切り出すCrop textとは区別します。
- 6
2つ目のIf:最初のオペランド=%TrimmedText%、演算子=空である(Is empty)。内側にメッセージ「先頭項目が空欄です」と、停止方法が「正常に終了」の「フローを停止」を置きます。Endで閉じます。空欄なら置換・結果表示を行いません。
- 7
2つ目のEndの後にテキストを置換する(Replace text)を置きます。解析するテキスト=%TrimmedText%、検索するテキスト=半角の -、置換後の文字=全角の /、検索と置換に正規表現を使う=オフ、エスケープシーケンスの有効化=オフ、出力=CleanText。同じハイフンが複数あればすべて置き換わります。
- 8
最後のメッセージを表示:本文=%CleanText%。この例の表示は「りんご/赤」です。途中の確認用を含め、各メッセージのボタン=OK、自動的に閉じる=オフにします。表示を確認してOKを押すと次へ進みます。
- 9
確認A:保存して最初から実行し、基本例が「りんご/赤」になることを確認します。次にSourceTextだけを表の例へ変え、その都度保存して最初から実行します。半角カンマがない例・全角カンマの例・3項目の例は件数確認で止まり、半角スペース3個+「,みかん」は空欄確認で止まる想定です。表の「」と ␠ は入力しません。
- 10
確認B:文字の途中に半角スペースを入れた例ではその空白が残り、ハイフンが2個の例では2個とも置き換わることを確認します。想定と違う場合は分割直後で一時停止し、変数一覧のPartsの件数と各項目を確認。カンマの全角・半角、正規表現の設定、PartsとTrimmedTextの取り違えを調べます。確認後は基本例へ戻して保存します。
- 対象環境
- Power Automate for desktop(Windows)
- 更新日
- 2026年10月13日