タグ別アーカイブ: RIGHT

Power Automateでエクセル関数のように文字列(表示)操作をする方法

【Power Automateでもエクセルと同じように、関数を使いこなして文字列操作しよう!】

Power Automateを使用する際に、エクセルを使用している時と同じように「LEFT関数」や「RIGHT関数」を使いたい時があると思います

Power Automateでも関数は使えるのですが、エクセルとは少し勝手が違います

今回の記事では「エクセルとの勝手の違い」を交えながら、日付を含む文字列などの表示操作について解説していきたいと思います

文字列の切り取り

Power AutomateではLEFT関数やRIGHT関数はありません

ですので、エクセルで言えばMID関数に相当するSubstring関数を使用します

MID関数では文字位置を指定して、指定した長さを切り取ります

Power AutomateのSubstring関数も同様の機能です

Substring関数の文法は次のようになります

Substring(①対象文字列,②開始位置,③切り取り文字列の長さ)

LEFT関数

例えば、文字列「123456789」から左側4文字を切り取りたいとします

この場合、Substring関数の引数②開始位置を0で指定するのがポイントです

上の画像では変数:操作対象文字列に文字列「123456789」が設定されています

こちらを変数の設定アクション内でSubstring関数を使用し、左4文字を切り取ります

上の画像の式の中身は以下の通りとなります

substring(variables(‘操作対象文字列’),0,4)

「variables~文字列’)」の箇所は動的コンテンツで取得するのもよし、直接variablesと書いても大丈夫です

前述の通り、0で開始位置を指定し、第三引数で切り取りたい文字数を指定しています

これで下の画像のように、Power Automateを動かすと文字列1234が123456789から切り取りできます

RIGHT関数

LEFT関数と比べると少し難易度があがりますが、パターンは決まっています

LENGTH関数で文字列の長さを取得し、開始位置を指定します

開始位置は(文字列の長さ-切り取る長さ)となります

今回で言えば、9文字:123456789から4文字:6789を引いた5が開始位置になります

*この関数は0からカウントが始まります。ですので、エクセルで言えば6が開始位置です

但し、ここでエクセルとの違いがでてきます

エクセルにて引き算をする際は、ーを使用すればOKです

Power Automateの場合はSub関数を使用します

ここが少し面倒なところです

ですので、式は以下のようになります

substring(variables(‘操作対象文字列’),sub(length(variables(‘操作対象文字列’)),4),4)

上の式から第二引数を抜き出すと次の通りとなります

sub(length(variables(‘操作対象文字列’)),4)

length関数で「操作対象文字列」の長さを取得しているのは分かりやすいと思います

ここで取得した長さから4を引くのに、前述のsub関数の第二引数にて4を指定しています

これで下の画像のように、Power Automateを動かすと文字列6789が123456789から切り取りできます

数値の桁区切り

エクセルでは数値の桁区切りは関数で処理しません

画面上にメニューがちゃんとあります

Power Automateの場合は、関数で処理を行います

使用する関数はformatNumber関数です

エクセルとの違いは、formatNumber関数により文字列に変換されます

ここが注意点です

次が実際の式です

formatNumber(variables(①’操作対象文字列’),②’#,#’,③’ja-jp’)

①が操作対象です

こちらは整数形式のものを指定します

②で表示形式を指定し、③は固定の指定になります

これで数値の桁区切りになります

注意点

formatnumber関数にもし、0を入力した場合を見てみましょう!

結論としては、関数からの出力が空欄になってしまいます

こちらは次のフローで見てみます

「手動でフローをトリガーします」で入力したものを「変数を初期化する」アクションにおいて、formatnumber関数により桁区切りをしています

formatnumber(int(triggerBody()[‘text’]),’#,#’,’ja-jp’)

このフローのトリガーに0を入力してみます

そうすると下の画像のように、空欄になってしまいます

それではここから、対策について解説致します

if(equals(triggerBody()[‘text’],’0′),0, formatnumber(int(triggerBody()[‘text’]),’#,#’,’ja-jp’))

条件式にて値が「0」の場合は、0を出力するようにします

これでformatnumber関数からの空欄出力は回避できます

日付形式

Power Automate内でよく下の画像のような日付を見ることがあると思います

TやZが入っていいるのもあって、そのままでは表示データとしては使えません

ただし、この記事ではこれ以上はタイムゾーンに触れず、純粋にこの表示形式を変える方法を解説します

このTやZは、タイムゾーンと関連します

この日付表示を変えるにはformatDateTime関数を使用します

例えば、タイムゾーンに関係なくutcNowという関数で現在時刻を出したとします

この場合は前述のような表示になります

こちらをTやZがない「yyyy/MM/dd形式」にするには、次のようにformatDateTime関数を使用します

formatDateTime(①utcNow(),②’yyyy/MM/dd’)

①は変換対象です

②で表示形式を指定するのですが、シングルクオーテーションを使用します

ここがエクセルとの違いであり、注意点となります

文字列の発見

エクセルにはFIND関数という関数があり、文字列に含まれる指定文字列の位置を取得できます

Power automate でも同じような機能があります

関数ではないですが、ぜひこの記事で紹介しておきたいです

文字列で発見するには、「テキストの位置の検索」アクションを使用します

「テキストの位置の検索」アクションでは2つの項目を使用します

テキスト:操作対象文字列(123456789)

検索テキスト:検索文字列(6789)

上の画像では、テキストと検索テキストの内容は変数で事前に設定してあります

「テキストの位置の検索」アクション内では、動的コンテンツで設定した変数を参照しています

では、この「テキストの位置の検索」を実際に動かすとどうなるでしょうか?

上の画像では6ではなく「5」という結果になりました

これは0からカウント方法によります

このアクション内では1では0からカウントが始まるからです

<まとめ>

今回はPower Automateにて、文字列や表示を変換する方法を紹介しました

エクセルと方法が少し違いますが、違うパターンは決まっているのですぐに慣れていくと思います

特にSubstring関数はCSVを変換する時などよく使うので、今回を機会にぜひ慣れて頂くといいと思います

とにかくクラウド作業を省力化するにはPower Automateは欠かせません

ぜひ有効活用してみてください!

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

文字列の抽出~上級編17回

 エクセル関数で特定の文字列を抽出する場合には、RIGHT関数やLEFT関数、そしてMID関数が良く使われます。今回の解説では、Power Queryでこれらの関数と同じ様に特定の文字列を抽出する方法を解説します。

 また、特定の文字列の位置が不特定の場合、エクセル関数ではFIND関数やSEARCH関数が前述の関数と組み合わせて使用されます

Power Queryでは、特定の文字列の位置が不特定の場合でも一括で抽出できる裏技がありますので、そちらについても解説を行います

例えば、

 下のGIF画像のように、「-」が不規則に出現する文字列の中から「左から2つ目3つ目ハイフン」の文字列を抽出することもできます

では、Power Queryにて特定文字列を抽出する方法について詳細な解説をはじめます

 以降の解説は、全てPower Queryエディタ(以降、エディタ)を開いた状態から解説を行います

エディタ内で使用するタブは「変換タブ」、使用メニューは「抽出」になります

目次

1.左から指定した長さの文字数を抽出

2.右から指定した長さの文字数を抽出

3.位置を指定して文字列の途中から指定した長さを抽出

4.特定の文字列の前後の文字を抽出

5.「特定の文字列の間」の文字を抽出

<まとめ>

1.左から指定した長さの文字数を抽出

エクセル関数では、LEFT関数で行う内容です

こちらは、下の画像の「最初の文字」から抽出を行います

上の画像の「最初の文字」をクリックすると下の画像の画面が開くので、こちらで抽出する長さを指定します

OKボタンを押せば、下のGIFのように左から3文字が抽出されます

2.右から指定した長さの文字数を抽出

こちらはエクセル関数で言えば、RIGHT関数になります

下の画像にある「最後の文字」から指定します

1.の「左から指定した長さの文字数を抽出」と同じ様に、「最後の文字」をクリックした後に開くダイアログボックスにて抽出する長さを指定します

後の処理は、1.と同じです

続きを読む 文字列の抽出~上級編17回