2025/01/28

アドバンスド

実務において役立つ関数④

※本記事は11/28開催セミナー「TIBCO Spotfire活用セミナー 実務において役立つ関数 -文字列操作-」で紹介した内容です。

このコンテンツでは、セミナー内で取り上げた関数をご紹介します。過去の記事「実務において役立つ関数①」、「実務において役立つ関数②」、「実務において役立つ関数③」で紹介済みの関数は割愛しております。
利用したバージョンは、Spotfire Analyst 14.0です。ご利用環境によって、一部画面構成が異なる場合がありますので、ご了承ください。

はじめに

本コンテンツでは、データの前処理・可視化において頻出の「関数」をご紹介いたします。Spotfireには、計算カラムやカスタム演算式の中で利用できる「関数」が多数用意されています。文字列操作で使えるテキスト関数を活用することで、新しいカラムの作成や複雑な集計が可能となるため、Spotfireで分析する上で欠かせない機能になっています。
本コンテンツで紹介する関数一覧は下記の通りです。

カテゴリ 関数 説明
基本的な関数 Upper/Lower 文字列を大文字のみ または 小文字のみに置換
Mid 任意の位置から指定した文字数分を抽出
& 文字列の結合
Len 文字列の長さを返す
Repeat 指定した回数だけ文字列を繰り返す
応用的な関数 RXExtract 文字列内の正規表現パターンに一致する部分を検索または抽出
RXReplace 正規表現に従って文字列内の特定の部分を置換
表の続き →

各関数の紹介

本コンテンツでは、各関数の説明・表記方法を下記に統一しています。
引数を示す際は、式の左から順に「Arg1」、「Arg2」のように表記します。
例:Sum([Arg1], [Arg2])

基本的な関数

Upper/Lower

文字列を大文字のみ または 小文字のみに置換

使用方法

Upper(Arg1) 、Lower(Arg1)

  • Arg1:対象の文字列
使用例

年、エラーコード、型番が含まれる文字列を大文字または小文字に置換します。
黄色の点線で囲まれている箇所が関数の適用結果を表します。

大文字に置換する式:Upper([年-エラーコード-型番])

小文字に置換する式:Lower([[年-エラーコード-型番])

Mid

任意の位置から指定した文字数分を抽出

使用方法

Mid(Arg1, Arg2, Arg3)

  • Arg1:対象の文字列
  • Arg2:切り取る最初のインデックスを指定
  • Arg3:Arg2から切り取る文字数を指定
使用例

型番、シリアル番号が含まれる文字列からシリアル番号を抽出します。

式:mid([型番] - [シリアル番号],4,6)

&

文字列の結合

使用方法

Arg1 & Arg2

  • Arg1:結合したい文字列
  • Arg2:結合したい文字列
使用例

型番とシリアル番号の文字列を連結します。

式:[型番] & ”-” & [シリアル番号]

Len

文字列の長さを返す

使用方法

Len(Arg1)

  • Arg1:対象の文字列
使用例

携帯の電話番号の桁数を確認し、IF文を組み合わせ13桁か判定しています。

桁数を確認する式:Repeat(”0”,7-Len([シリアル番号])) & [シリアル番号]

携帯番号が13桁か確認する式:If(Len([携帯電話の番号])=13,”Valid Number”,”Invalid Number”)

Repeat

指定した回数だけ文字列を繰り返す

使用方法

Repeat(Arg1 , Arg2)

  • Arg1:対象の文字列
  • Arg2:繰り返す回数
使用例

シリアル番号の桁数を統一するため、必要に応じて文字列の”0”を追加します。

式:Repeat(”0”,7-Len([シリアル番号])) & [シリアル番号]

応用的な関数

RXExtract

指定した文字列の中から正規表現のパターンに一致する部分を検索/抽出

使用方法

RXExtract( [Arg1], [Arg2], [Arg3] )

  • Arg1:対象の文字列
  • Arg2:検索する任意の文字列 または 正規表現のパターン
  • Arg3:何個目の一致を抽出するか決定
使用例

エラーコードデータにRXExtract関数を適用して、エラーコードの抽出および、”ERROR”が含まれるか確認します。

エラーコードを抽出する式:RXExtract([エラーコード],”ERROR:([0-9]+)”,1)

“ERROR” が含まれるか確認する式:RXExtract([エラーコード],”ERROR”,1)

RXReplace

正規表現に従って文字列内の特定の部分を置換

使用方法

RXReplace(Arg1, Arg2, Arg3, Arg4)

  • Arg1:対象の文字列
  • Arg2:任意の文字列または検索する正規表現のパターン
  • Arg3:置き換える文字列。Arg2に一致する部分をArg3で置換。
  • Arg4:下記に記載のオプション設定あり。

    Arg4のオプション一覧
    “g”:複数の一致がある場合に全て置換
    “i” :大文字・小文字の区別を無視
    “s”:ピリオド (.) が改行を除くすべての文字に一致
    “  “:上記のオプションが不要な場合に設定
使用例

エラーコードデータにRXExtract関数を適用して、エラーコードの削除(空白に置換)および、”ERROR”を”ERROR_number”に置換します。

エラーコードを削除する式:RXReplace([エラーコード],”ERROR:\\d+”,” ”,”g”)

“ERROR_number”に置換する式:RXReplace([エラーコード],”ERROR”,”ERROR_number”,” ”)

RXExtract / RXReplaceの活用例

特定の文字列に基づいたローの分類

文字列内に“ERROR”が含まれる場合:”エラー”と表示
文字列内に“WARNING”が含まれる場合:”警告”と表示

式:case
    when RXExtract([エラーコード],”ERROR”,1) Is Not Null then “エラー”
    when RXExtractt([エラーコード],”WARNING”,1) Is Not Null then “警告”
    end

改行データの表示

改行が含まれるデータをSpotfireで読み込むと、改行後のデータは表示されませんが、RxReplaceを使うことで改行を削除して表示できます。

式:RXReplace([設備ログ],”\n”,””)

Spotfire活用セミナー
アーカイブ動画を配信中

【アドバンスド】記事一覧に戻る
全記事一覧に戻る