← 手順一覧へ戻る
Power Automate Desktop文字・日付

文字列を分割・置換する(リストの位置・空白・区切りを図解)

カンマ区切りの文字を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. アクション 1変数の設定SourceText に練習用の文字を設定
  2. アクション 2テキストの分割半角カンマで分けて Parts を作成
  3. アクション 3IfParts.Count が 2 と等しくない
  4. アクション 4メッセージを表示2項目に分けられません
  5. アクション 5フローを停止正常に終了。置換へ進まない
  6. アクション 6End件数確認のIfを閉じる
  7. アクション 7テキストのトリミングParts[0] の先頭・末尾の空白を除去
  8. アクション 8IfTrimmedText が空である
  9. アクション 9メッセージを表示先頭項目が空欄です
  10. アクション 10フローを停止正常に終了。置換へ進まない
  11. アクション 11End空欄確認のIfを閉じる
  12. アクション 12テキストを置換するTrimmedText の - を / に置換
  13. アクション 13メッセージを表示CleanText を表示

図で見る処理のイメージ

概念図

1つの文字列 → リスト2項目 → 先頭項目だけを整形、という変化を追います。␠ は半角スペースを見えるようにした記号です。

文字とリストを分けて見る

1 · SourceText / 文字列␠りんご-赤␠,みかん␠ = 半角スペース。カンマは半角

テキストの分割

2 · Parts / リストParts.Count = 2

Parts[0] · 最初の項目␠りんご-赤␠この文字だけを整形
Parts[1] · 2番目の項目みかんこの例では使わない
件数を確認2件なら下へ ↓2件でなければ案内を表示し、フローを終了
3 · TrimmedText / 文字列りんご-赤Parts[0]の先頭・末尾の空白だけを除去
空欄を確認文字があれば下へ ↓空欄なら案内を表示し、フローを終了
4 · CleanText / 表示する文字列りんご/赤半角の - を全角の / へ置換

元のリストはそのままTrimmedTextとCleanTextは別の出力変数です。Parts[0]には、空白やハイフンを含む元の項目が残ります。

基本例が両方の確認を通る場合の変化です。下方向は処理の順番を表します。入力不備の終了は正常終了の設定で、実行エラーとは別です。実際の設定画面や実行結果ではありません。
結果の例

基本例では「りんご/赤」だけを表示します。区切り方が想定と違う入力や先頭項目が空白だけの入力は、結果表示へ進めません。

狭い画面では、表を横にスクロールして入力と結果を比べられます。

入力だけを変える7ケースの期待値(␠ は半角スペース)
SourceTextの例Partsの件数結果・確認すること
「␠りんご-赤␠,みかん」2りんご/赤
「りんご-赤」12項目に分けられません → 結果表示せず終了
「りんご-赤,みかん」1全角カンマでは分割されず、件数確認で終了
「りんご-赤,みかん,ぶどう」32項目に分けられません → 結果表示せず終了
「␠␠␠,みかん」2Trim後は空欄 → 先頭項目が空欄です → 終了
「␠りんご␠-赤␠,みかん」2りんご␠/赤 → 途中の空白は残る
「りんご--赤,みかん」2りんご//赤 → ハイフンをすべて置換

表は設定から考えられる期待値です。サイト上では文字処理を実行せず、実際のPower Automateフローを実行して確認した結果ではありません。実際の表示名・配置はバージョンにより異なる場合があります。

設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。

2実際の設定内容

入力する値・操作手順を確認する10ステップの設定と確認方法
  1. 1

    準備:WindowsのPower Automate for desktopで、Power Fxをオフにした練習用フローを作ります。ファイルやアプリへの書き込みはせず、固定の文字を画面に表示する例です。入力は半角カンマ1個で区切った2項目とし、整形するのは先頭項目だけです。

  2. 2

    変数の設定:変数名=SourceText、値=「 りんご-赤 ,みかん」。先頭とカンマの直前に半角スペースを1個ずつ入れます。「」は説明用なので入力しません。図の ␠ も説明用で、実際には半角スペースを入力します。

  3. 3

    テキストの分割:分割するテキスト=%SourceText%、区切り記号の種類=カスタム、カスタム区切り記号=半角の ,、正規表現=オフ、生成された変数=Parts。Partsは文字列ではなくリストになり、この例の %Parts.Count% は2、%Parts[0]% は最初、%Parts[1]% は2番目の項目です。

  4. 4

    最初のIf:最初のオペランド=%Parts.Count%、演算子=等しくない(<>)、2番目のオペランド=数値の 2。内側にメッセージ「2項目に分けられません」と「フローを停止」を置き、停止方法を「正常に終了」にします。EndでIfを閉じます。2件でなければ、Parts[0]を使う後続処理には進みません。

  5. 5

    最初のEndの後にテキストのトリミング(Trim text)を置きます。対象=%Parts[0]%、「先頭と末尾の空白文字」を削除、出力=TrimmedText。この例では「りんご-赤」になります。空白を除去するTrim textを選び、目印の前後を切り出すCrop textとは区別します。

  6. 6

    2つ目のIf:最初のオペランド=%TrimmedText%、演算子=空である(Is empty)。内側にメッセージ「先頭項目が空欄です」と、停止方法が「正常に終了」の「フローを停止」を置きます。Endで閉じます。空欄なら置換・結果表示を行いません。

  7. 7

    2つ目のEndの後にテキストを置換する(Replace text)を置きます。解析するテキスト=%TrimmedText%、検索するテキスト=半角の -、置換後の文字=全角の /、検索と置換に正規表現を使う=オフ、エスケープシーケンスの有効化=オフ、出力=CleanText。同じハイフンが複数あればすべて置き換わります。

  8. 8

    最後のメッセージを表示:本文=%CleanText%。この例の表示は「りんご/赤」です。途中の確認用を含め、各メッセージのボタン=OK、自動的に閉じる=オフにします。表示を確認してOKを押すと次へ進みます。

  9. 9

    確認A:保存して最初から実行し、基本例が「りんご/赤」になることを確認します。次にSourceTextだけを表の例へ変え、その都度保存して最初から実行します。半角カンマがない例・全角カンマの例・3項目の例は件数確認で止まり、半角スペース3個+「,みかん」は空欄確認で止まる想定です。表の「」と ␠ は入力しません。

  10. 10

    確認B:文字の途中に半角スペースを入れた例ではその空白が残り、ハイフンが2個の例では2個とも置き換わることを確認します。想定と違う場合は分割直後で一時停止し、変数一覧のPartsの件数と各項目を確認。カンマの全角・半角、正規表現の設定、PartsとTrimmedTextの取り違えを調べます。確認後は基本例へ戻して保存します。

Microsoft公式ページで確認する

設定を確認できる公式資料