データを変換する理由

「2022-02-07」という文字列を「2022年2月7日」という文字列に変換する場合を考えてみよう。現在主流の比較的抽象度の高いプログラミング言語の経験がある場合、日付や日時を表現する構造体や型、オブジェクトなどにデータを変換し、そこからフォーマットを指定して文字列データを出力する、といった流れを考えるだろう。

プログラミングの経験がなければ、「2022-02-07」を「2022年2月7日」に変換するなら、「-0を-に変してから、1つ目の-を年に置換し、2つ目の-を日に変換する」といった変換方法を考えるのではないだろうか。

今回のケースではこの変換で十分だが、この方法では、ほかの形式に変換する場合に、全部自分で変換方法を考える必要が出てくる。都度作ればいいじゃないかと思うかもしれないが、こうした機能は既に用意されていることが多い。なるべく手は抜きたい。

Power Automateは一度datetimeに変換することが、「手抜き」に相当する。datetime になったデータは、そこから形式を指定して文字列に変換することができる。プログラミングの経験がないと、そのほうが面倒でわかりにくいと感じるかもしれない。

datetime は汎用的な仕組みになっており、利用する国が日本からフランスに変わった場合、自動的にフランスの日付形式にして出力するといったことをしてくれる。実感が湧かないかもしれないが、現在のソフトウェアはこのような仕組みを利用することで、米国で開発されたソフトウェアがほぼそのまま日本でも利用できるといったことを実現している。長いものには巻かれろであり、こうした仕組みを使って作っておくと、なにかと便利なのである。

アクション:データの変換

そんなわけでデータ変換を行う。データ変換はテキストを datetime に変換するアクションと、datetime をテキストに変換するアクションの2つで完成する。まず、テキストを datetime に変換するアクションを追加する。アクションを「datetime」で検索して、「テキストを datetime に変換」というアクションを追加する。

  • 「datetime」でアクションを検索し、「テキストを datetime に変換」をダブルクリックする

    「datetime」でアクションを検索し、「テキストを datetime に変換」をダブルクリックする

変換する元となるテキストに「%UserInput%」と入力する。詳しい説明は次回行うとして、ここでは「変換するテキスト」の「{x}」をクリック、表示される候補から「UserInput」を選択すればよい。

  • 「変換するテキスト」の「{x}」をクリック

    「変換するテキスト」の「{x}」をクリック

  • 表示される候補から「UserInput」を選択

    表示される候補から「UserInput」を選択

これで、以下のように「変換するテキスト」に「%UserInput%」が表示される。

  • 「変換するテキスト」に「%UserInput%」が表示される

    「変換するテキスト」に「%UserInput%」が表示される

次に「日付はカスタム書式で表されます」をオンにして、カスタム形式に「yyyy-MM-dd」と指定する。「yyyy-MM-dd」というのは「2022-02-07」といったようにハイフン区切りで日付を入力するということを意味している。これで「保存」をクリックする。

  • 「日付はカスタム書式で表されます」をオンにして、カスタム形式に「yyyy-MM-dd」と指定

    「日付はカスタム書式で表されます」をオンにして、カスタム形式に「yyyy-MM-dd」と指定

続いて、「datetime をテキストに変換」のアクションを追加する。

  • 「datetime をテキストに変換」のアクションを追加

    「datetime をテキストに変換」のアクションを追加

今度は「変換する datetime」に「%TextAsDateTime%」を指定し、「使用する形式」に「標準」を、「標準形式」に「長い日付形式」を指定する。

  • 「変換する datetime」に「%TextAsDateTime%」を、「使用する形式」に「標準」を、「標準形式」に「長い日付形式」を指定

    「変換する datetime」に「%TextAsDateTime%」を、「使用する形式」に「標準」を、「標準形式」に「長い日付形式」を指定

以上の作業を完了すると、フロー編集ウィンドウの表示は次のようになる。

  • フロー表示ウィンドウ

    フロー表示ウィンドウ

これでデータ変換は完了だ。