0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

rex0220 計算式プラグイン 文字列を抜き出す

Last updated at Posted at 2025-05-15

計算式プラグインで、ドロップダウンから文字列を抜き出す例です。

概要

ドロップダウンの文字列から、"【】"で囲まれた文字列を抜き出してみます。
FIND 関数、REPLACERE 関数、MATCH 関数を使った例です。

ドロップダウンの設定値なら、例外になる値は無いと思いますが、
例外として"【】"で囲まれていないケースも試してみます。

2025-05-15_10h34_19.png

計算式プラグイン設定

"【】"で囲まれた文字列を抜き出すには、MATCH 関数が簡潔に記述できるようです。

2025-05-15_10h40_51.png

  • 文字列1:FIND 関数
    • 【】の位置を取得して文字列を抜き出す
  • 文字列2:REPLACERE 関数
    • 正規表現で【】で囲まれている文字を抜き出す
    • "【】"で囲まれている文字が無いと不要な文字を出力
  • 文字列3:REPLACERE 関数(例外処理追加)
    • 【】が無いケースを除外
  • 文字列4:MATCH 関数
OPTION: 

// テーブル.文字列1 SINGLE_LINE_TEXT
LET(
  s, ドロップダウン,
  p1, FIND(s, ""),
  p2, FIND(s, ""),
  IF(AND(p1 >= 0, p2 > p1),
    SUBSTR(s, p1 + 1, p2 - p1 - 1),
    ""
  )
)

// テーブル.文字列2 SINGLE_LINE_TEXT
REPLACERE(ドロップダウン, ".*【(.*?)】.*", "g", "$1")

// テーブル.文字列3 SINGLE_LINE_TEXT
LET(
  s, ドロップダウン,
  IFS(TESTRE(s, ".*【(.*?)】.*"),
    REPLACERE(s, ".*【(.*?)】.*", "g", "$1"),
    "" // 対象外は空文字
  )
)

// テーブル.文字列4 SINGLE_LINE_TEXT
ARRAY_GET(MATCH(ドロップダウン, "【(.*?)】"), 1)

REPLACERE 関数解説

REPLACERE(文字列, 正規表現, フラグ, 置換文字列)
正規表現にマッチした文字列を、指定した置換文字列に変換します。
$1 は 正規表現内の1番目のキャプチャグループを意味します。

REPLACERE("【A01】ABC", ".*【(.*?)】.*", "g", "$1") -> "A01"
// " .*【(.*?)】.* ":正規表現(対象のパターン)
// "g": フラグ(全体一致、今回は省略可)
// "$1"	置換後の文字列(キャプチャ1)
  • 正規表現" .【(.?)】.* "の意味:
    • 「どこかに【...】が含まれていれば、その中の文字列を抜き出す」**という意味
      • .*:任意の文字列(0文字以上、できるだけ多く)
      • 【(.*?)】:【 と 】:リテラルの角カッコ
        • (.*?):非貪欲に中の文字をキャプチャ(これが $1)
      • .*:後続の任意の文字列

MATCH 関数解説

MATCH(文字列, 正規表現) は、正規表現に一致する文字列と、キャプチャグループを含む配列を返します。
g フラグをつけないと、最初にマッチした1件のみが対象になります。

MATCH("【A01】ABC", "【(.*?)】") -> ["【A01】","A01"]
// "【A01】"	正規表現全体に一致した文字列(マッチ全体)
// "A01"	(.*?) のキャプチャグループ1の中身(【と】の間)

ARRAY_GET(MATCH("【A01】ABC", "【(.*?)】"), 1) -> "A01"
// MATCH の結果を ARRAY_GET(..., 1) のように使えば、キャプチャグループ1(中身)だけを取得できます。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?