【UiPath応用】第5回:文字列操作~「¥」を消す、「苗字」だけ抜く、データを整形する技~

こんにちは!UiPath メンターです。

せっかくWebサイトから金額データを取ってきたのに、いざExcelで計算しようとしたら……
「¥1,980」

この「¥」や「,(カンマ)」がついているせいで、ロボットは「これは数字じゃなくて文字だ!」と判断し、計算エラーになってしまいます。
また、「受付番号:A-001」から「001」だけ欲しい時もありますよね。

今回は、取ってきたデータをロボットが扱いやすい形に加工する「文字列操作」のテクニックを学びます。
まるでハサミや糊を使って工作をするように、データを自由に操りましょう。

1. 余計な文字を消す・変える:.Replace

最もよく使うのがこれです。
WordやExcelの「置換(検索して置換)」と同じ機能です。

使い方

変数の後ろに .Replace("消したい文字", "新しい文字") をつけます。

実務での使用例:金額のクリーニング

変数 str_Price の中身が "¥1,980" だとします。
これを計算できる数字にするには、「¥」と「,」を消す(=空文字に置き換える)必要があります。

str_Price.Replace("¥", "").Replace(",", "")

解説:

  • .Replace("¥", "") で「¥」を「何もない(空)」に置き換えます。→ 結果 "1,980"
  • さらに続けて .Replace(",", "") で「,」を消します。→ 結果 "1980"

これで純粋な数字の文字列になりました!
あとは前回学んだ Cint() を使えば、足し算も引き算も自由自在です。

2. 指定した記号で分割する:.Split

次は、「田中 太郎」のような氏名を、「田中」と「太郎」に分けたい時です。
この場合、間にある「スペース(空白)」を目印に、ハサミでチョキンと切ります。

使い方

変数の後ろに .Split("区切り文字"c)(何番目か) をつけます。

実務での使用例:苗字の抽出

変数 str_Name の中身が "田中 太郎" だとします。

  • 苗字(左側)が欲しい:
    str_Name.Split(" "c)(0)
  • 名前(右側)が欲しい:
    str_Name.Split(" "c)(1)

解説:

  • " "c :「c」はChar(文字)の略で、UiPathのお作法としてつけます。
  • (0) :分割されたデータの「1つ目(0番目)」という意味です。

💡 メンターからのアドバイス:ファイル名にも使える!

ファイルパス "C:\Data\Report.xlsx" からファイル名の部分だけ欲しい場合、"\" マークで Split して、一番最後(Last)の要素を取る、という使い方もよくします。

3. 場所を指定して切り抜く:.Substring

最後は、「IDの先頭3桁だけ欲しい」といった場合です。
何文字目から、何文字分切り取るかを指定します。

使い方

変数の後ろに .Substring(開始位置, 文字数) をつけます。

実務での使用例:商品コードの抽出

変数 str_Code の中身が "2023-A01" だとして、先頭の「2023」が欲しい場合。

str_Code.Substring(0, 4)

解説:

  • 0 : 0文字目(一番最初)からスタート。
  • 4 : 4文字分ゲットする。

⚠️ 注意:文字数オーバーに注意

データが「ABC」しかない(3文字)のに、.Substring(0, 5) (5文字取れ!)と命令すると、ロボットは「文字が足りません!」とエラーで止まります。
文字数が固定されているデータ(日付やIDなど)以外で使う時は注意が必要です。

4. 隠れた敵を倒す:.Trim

最後にもう一つだけ。
Webスクレイピングをしていると、見た目は "100" なのに、実は " 100 " のように見えないスペースが前後についていることがよくあります。

このスペースのせいで、If条件分岐の = "100" が一致せずに不具合が起きます。
これを防ぐために、取得したデータにはとりあえず .Trim をつける癖をつけましょう。

str_Result.Trim

これだけで、前後の余計な空白をきれいに削除してくれます。

今回のまとめ

文字列操作の「三種の神器」を覚えましょう。

やりたいこと 使う呪文
文字を消す・変える .Replace "¥100".Replace("¥", "")
文字を分割する .Split "田中 太郎".Split(" "c)(0)
部分的に切り取る .Substring "12345".Substring(0, 3)
余白を削除 .Trim " 100 ".Trim

次回は、応用編 第6回「データテーブル操作」
Excelを開かずに、ロボットのメモリの中だけで「東京支店のデータだけに絞り込む(フィルタ)」や「データを結合する」といった高速処理を行う方法を学びます。
大量データを扱う業務には必須のスキルです!

タイトルとURLをコピーしました