2025年8月8日金曜日

PowerAutomateで正規表現を使う方法

  1. エクセルで入力テーブルと出力テーブルを作る。
  2. 出力テーブルに、入力テーブルを参照して、目的の出力が得られるように式を作る。
  3. PowerAutomateでエクセルの行の更新で入力テーブルを更新して、行の取得で出力テーブルを取得する。

タイムラグが心配だったが、トラブルは起きていない。


入力用 (青い部分が入力テーブル)
Index Subject Body
1 【システム】予約 (ID:12345678) 予約のお知らせ

品目: いろはにほへと
日時: 2025/8/1 10:00

以上


出力用 (青い部分が出力テーブル)
カラム Subject Subject Body Body
正規表現 ^.*】(.*) \(ID:(.*)\)$ ^.*】(.*) \(ID:(.*)\)$ ^[\s\S]*品目:[  ]*(.*)\n[\s\S]*日時:[  ]*(.*)\n[\s\S]*$ ^[\s\S]*品目:[  ]*(.*)\n[\s\S]*日時:[  ]*(.*)\n[\s\S]*$
位置 1 2 1 2
Index Class Id 品目 時刻
1 予約 12345678 いろはにほへと 2025/8/1 10:00


出力テーブルの値を得る抽出式は、 = REGEXREPLACE(INDIRECT("入力テーブル[@"& INDEX(2:2, COLUMN()) &"]"), INDEX(3:3, COLUMN()), "\" & INDEX(4:4, COLUMN()))

Excelでタイムゾーンを変更する方法

日付表記法の、2025-08-08T05:06:06+00:00といったようなISO 8601形式の表記をエクセルの認識できる日付に変換するための数式。

= LET(Arry,TEXTSPLIT(SUBSTITUTE(SUBSTITUTE(A3,"T"," "), "Z", ""), "+"), VALUE(CHOOSECOLS(Arry, 1)) + VALUE(IFERROR(CHOOSECOLS(Arry, 2), 0))) + VALUE("9:00"))

  • 20250808T050606には対応しない。