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 2024-02-20

計算式プラグインで、ユーザー名からユーザー選択項目をセットします。

概要

文字列項目に指定されたユーザー名からログイン名を求め、ユーザー選択項目をセットします。

  • 1ユーザー名
  • 複数ユーザー名をカンマ区切りで指定

2024-02-20_08h50_40.png

計算式プラグイン設定

循環参照を許可、ユーザー情報をチェックします。

2024-02-20_08h55_20.png

全ユーザー名を取得し、指定されたユーザー名の位置で、全ログイン名から対象のログイン名を取得します。

.js
OPTION: 循環参照を許可, ユーザー情報

// ユーザー選択1 USER_SELECT
LET(name, ユーザー名,
  pos,INDEXOF(UINFO(,"name"),name),
  SET_CODE(NVL(ARRAY_GET(UINFO(,"code"),pos), ARRAY()))
)

// ユーザー選択2 USER_SELECT
LET(
  tnames, SPLIT(複数ユーザー名, ","), // 名前分割
  unames, UINFO(, "name"),        // 全ユーザー名
  ucodes, UINFO(, "code"),        // 全ユーザーコード
  tcodes, ARRAY_MAP(tnames, x,
    LET(
      pos, INDEXOF(unames, TRIM(x)), // 位置検索
      ARRAY_GET(ucodes, pos)         // コード取得
    )
  ),
  codes, ARRAY_FIL(tcodes, x, x),   // 空フィルタ
  SET_CODE(codes)                    // コードセット
)

ユーザー名からログイン名の求め方

全ユーザー名を取得し、指定されたユーザー名の位置で、全ログイン名から対象のログイン名を取得します。

全ユーザー名を取得

UINFO(,"name") で、全ユーザー名をユーザーID 順に配列で取得します。
計算式ツールで、関数の実行結果を確認することができます。

2024-02-20_09h00_52.png

全ログイン名を取得

UINFO(,"code") で、全ログイン名をユーザーID 順に配列で取得します。

2024-02-20_09h03_27.png

計算式

INDEX 関数で、全ユーザー名での配列位置を求めることができます。
ARRAY_GET 関数で、全ログイン名の配列位置の値を取得すると、対象のログイン名です。
SET_CODE 関数で、ユーザー選択項目にセットする形式へ変換されます。

.js
// ユーザー選択1 USER_SELECT
LET(name, ユーザー名,
  pos,INDEXOF(UINFO(,"name"),name),
  SET_CODE(NVL(ARRAY_GET(UINFO(,"code"),pos), ARRAY()))
)

2024-02-20_09h15_47.png

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?