findif 関数

説明

配列の中から指定条件に一致するものを探します。

1番目の引数に配列を受け取って、2番目の引数で指定した比較演算子で3番目の引数と比較します。そして4番目の引数である配列から条件に一致する位置の値を取り出します。

3番目の引数は単一の値でも配列でもどちらでも構いません。配列の場合は1番目の配列と同じ位置の間で比較します。

比較する配列間で要素数が異なる場合は、最も要素数が少ない配列に合わせられます。

元の配列は変更しません。

引数

  • 引数1 ... 元データになる配列
  • 引数2 ... 比較演算子の文字列
    • =, !=, <>, <, <=, >, >= のいずれか。
  • 引数3 ... 比較値
  • 引数4 ... 一致した場合の値

使用例

以下の例の表記で、「(結果)⇒XXX」はその式を実行した結果を表します。実際には「(結果)⇒XXX」は式に入力しないでください。

= findif(
  [1, 2, 3, 4, 5], ">=", 3,
  ["A", "B", "C", "D", "E"]
)
(結果)⇒ ["C", "D", "E"]
= findif(
  [1, 2, 3, 4, 5], 
  "=",
  [1, 0, 3, 0, 5],
  ["A", "B", "C", "D", "E"]
)
(結果)⇒ ["A", "C", "E"]

より具体的な例として、アクション1番の結果値として以下のレコードが入っているとします。

予算 支払
100 120
110 90
120 100
130 200

findif を使って、支払が予算内に収まっているレコードを抽出することができます。

= findif($1.予算, ">=", $1.支払, $1)
(結果)⇒
予算 | 支払
-----|------
110  | 90
120  | 100

更に sum 等の集計関数を組み合わせると、sumif のような計算が可能です。以下の例は予算内に収まっている支払の合計を計算します。

= sum(
  findif($1.予算, ">=", $1.支払, $1).支払
)
(結果)⇒ 190

Copyright © R3 institute. All rights reserved.

Powered by Everysite